Re: [Netconf] yang-push-17 on-change subscriptions

Andy Bierman <andy@yumaworks.com> Sat, 18 August 2018 17:22 UTC

Return-Path: <andy@yumaworks.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A1E08130ED2 for <netconf@ietfa.amsl.com>; Sat, 18 Aug 2018 10:22:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j5G-HGn47zgs for <netconf@ietfa.amsl.com>; Sat, 18 Aug 2018 10:22:39 -0700 (PDT)
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2F3D130EA1 for <netconf@ietf.org>; Sat, 18 Aug 2018 10:22:38 -0700 (PDT)
Received: by mail-lj1-x229.google.com with SMTP id y17-v6so8658344ljy.8 for <netconf@ietf.org>; Sat, 18 Aug 2018 10:22:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Se7kAvLxF58QvUYmomNfbBE4NbOuvPpirplj3qtIXqk=; b=VYSzL0JcCxJQO53IeOJq8Qz8Bp4vMFPGIqNld6XikFNh5gMACqyqWc5V8ERbFHZ3IM 3FTTv5NLVM6Rp2JEixNHNCKpxrpCxgXj97Xxn4+KGod7RTC/xYHQyu7UUvaJjm36mB+H 2AkFrGlFgmQaIJt1iQ7cJunTDY/W6Pl4d3QjRxpAgxDvFpEwlSSlGWa+PPpywPq3ZKT+ pzxgXRpOalpLyplG7t5p922HftI5JSO1liT6nbOfJ0qdcfN7gH/92I5AGVy+0Q0G6SAG 0uT0Xwjhanx51OSnyXdgDqBZ6ook3kib4yq7+ZB6fRDNqEwMu92zvMUfZTpPp5gykS4N EFWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Se7kAvLxF58QvUYmomNfbBE4NbOuvPpirplj3qtIXqk=; b=ixlAwpA1ZHut0D/lF4W/1NNctsqb+9HXhywtIDoeFetElhIugnBEbJbcLw4gbDoeQi Caw+M4u/Hkq1zkS/cliFWBq8n1P0e4lAEmV1rLJUD3zRJN77DJDuyCa2OhUnLlUk196/ sZO5LRcPW+adfSg+yKWiyJ30jFZfXYERO1pJg/r9IeXnKn84/ZitLi5seiwcZc3yxLal MlgGw+yV6brusm3ja4KfaN+alPB+vM01ct7Iw6T0lCzQIXF7CN0rmk80/N2EPqlGu4Bv qaItS5Bv7cYmrImx4gd64m3I8UHF0M54oH7mYg22nZaQHaj23+ZHANv3/mycVTHvhqdu rOnA==
X-Gm-Message-State: AOUpUlEH/RCb8JG/BbyGwTZWM/WuQWpvuJVy0Y1KoKuAQG97CxE08JWh 7cs51SJqnNSVeHvQfNpi8UkzgBgAWatf4bHHaKWZ8Q==
X-Google-Smtp-Source: AA+uWPzCVmBKU3AznBwsm4o7mL9Jzieywp3bnEkB/+nillYi9770/JOd9poRNEv3hdQvN+qr3aElnQNy5GJ+H7g61BQ=
X-Received: by 2002:a2e:9f4d:: with SMTP id v13-v6mr26466301ljk.42.1534612956819; Sat, 18 Aug 2018 10:22:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:aa46:0:0:0:0:0 with HTTP; Sat, 18 Aug 2018 10:22:35 -0700 (PDT)
In-Reply-To: <20180817.160806.1319182991643096746.mbj@tail-f.com>
References: <80ca22045b7045fe9b72b3b90ac2610b@XCH-RTP-013.cisco.com> <20180817.094825.1996509847038799743.mbj@tail-f.com> <6e228976514f4e4c9e5fb7b3ff36a0ed@XCH-RTP-013.cisco.com> <20180817.160806.1319182991643096746.mbj@tail-f.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Sat, 18 Aug 2018 10:22:35 -0700
Message-ID: <CABCOCHQcCJ05H0pGhBqPJ2gmfJ__6Yzb=akFHu9mss3KKk3Yag@mail.gmail.com>
To: Martin Bjorklund <mbj@tail-f.com>
Cc: "Eric Voit (evoit)" <evoit@cisco.com>, Netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000028c46c0573b8ec1e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/TI9zi8phwW-M8gK8kdVasAGl9eo>
Subject: Re: [Netconf] yang-push-17 on-change subscriptions
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Aug 2018 17:22:42 -0000

Hi,

I would like to clarify sec. 3.3. para 5.
The text is confusing wrt/ the dampening period is per-object or
per-subscription.

   Once an update record for a given object is generated, no
   other updates for this particular subscription will be created until
   the end of the dampening period.  Values sent at the end of the
   dampening period are the current values of all changed objects which
   are current at the time the dampening period expires.



The first sentence makes me think the dampening period is per-object, but
the 2nd sentence
seems the say "the" dampening period (meaning 1 of them) applies to "all
changed objects".

Suggest:

OLD:

 Once an update record for a given object is generated,


NEW:

 Once an update record for any object in the subscription is generated,




Andy




On Fri, Aug 17, 2018 at 7:08 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Hi,
>
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > From: Martin Bjorklund, August 17, 2018 3:48 AM
> > >
> > > Hi,
> > >
> > > "Eric Voit \(evoit\)" <evoit=40cisco.com@dmarc.ietf.org> wrote:
> > > > A dampening period is optional
> > >
> > > How do you mean?  There is no if-feature on the "dampening-period",
> > > and no
> > > text indicating that a server can reject a request with a
> > > "dampening-period".
> > > AFAICT from the draft, the dampening feature must be implemented by a
> > > server.
> >
> > While the "dampening-period" object must be supported by the RPC, that
> > doesn't mean the platform needs to implement subscription dampening.
> > This can be accomplished by a dampening period of "0" being returned
> > as a hint.  (Per section 3.2: "Such hints include ... acceptable
> > dampening periods...". )  Using just the hint for conveying this info
> > rather than the hint plus advertisement of an option feature
> > "dampening" simplifies the interface.
> >
> > If you are ok with it, Alex could tweak the following text in the
> > draft:
> >
> > (1) For the definition of leaf 'period-hint' in the YANG model:
> >
> > OLD: "Returned when the requested time period is too short. This hint
> > can assert a viable period for either a periodic push cadence or an
> > on-change dampening interval.";
> >
> > NEW: "Returned when the requested time period cannot be
> > supported. This hint can assert a viable period for either a periodic
> > push cadence or an on-change dampening interval.  In the case of
> > dampening not being supported, a 'period-hint' of '0' must be
> > returned. ";
>
> Ok.  The definition of the "period-unsupported" identity should also
> be updated accordingly.
>
> BTW, I just realized that the yang-data structures have different
> names in the module and the text.  For example, in the module you have
> "establish-subscription-datastore-error-info" but the text uses
> "establish-subscription-error-datastore" (in some places).
>
>
> > (2) And in Section 3.1:
> >
> > OLD: In order to protect against that, a dampening period MAY be used
> > to specify the interval which must pass before successive update
> > records for the same subscription are generated for a receiver.
> >
> > NEW: In order to protect against that, on-change dampening MAY be
> > supported.  Where supported, a non-zero dampening period will specify
> > the interval which must pass before successive update records for the
> > same subscription are generated for a receiver.
>
> I suggest you keep the OLD text, but also add a sentence that explains
> that the server MAY not support the given dampening period, and that
> the period-hint can be used by the server to indicate an acceptable
> dampening period (which may be 0).
>
>
> > If you require more than these tweaks, Alex could also make an
> > optional dampening feature.  But this seems to me to be unnecessarily
> > heavyweight.
>
> I agree.
>
>
> /martin
>
>
> >
> > Eric
> >
> > > /martin
> > >
> > >
> > > (based on your earlier comments).  And
> > > > the dampening period is per subscription rather than per object.
> > > > Cisco doesn’t have code at this time for dampened changes.
> > > >
> > > > Eric
> > > >
> > > > From: Netconf <netconf-bounces@ietf.org> On Behalf Of Andy Bierman
> > > > Sent: Thursday, August 16, 2018 1:59 PM
> > > > To: Netconf <netconf@ietf.org>
> > > > Subject: [Netconf] yang-push-17 on-change subscriptions
> > > >
> > > > Hi,
> > > >
> > > >
> > > > I would like to know if anybody has implemented on-change
> > > > subscriptions yet.
> > > > The implementation requirements seem very complex when you consider
> > > > that every single data node instance in the subscription has its own
> > > > dampening timer.
> > > >
> > > > Edits are not reported sequentially as they occur.
> > > > Instead every node is tracked and the change may only reported after
> > > > the dampening period expires.  It seems quite possible that nodes can
> > > > interact (e.g., leafrefs) so that reporting edit Y can depend on
> > > > previous edit X, which cannot be reported until the end of its
> > > > dampening period, in the future. So edit Y will be reported before X,
> > > > and the patch will fail to validate, because the current state of X
> is
> > > > incorrect on the receiver..
> > > >
> > > > All the state tracking on the server is expensive to implement, and I
> > > > am not really sure it actually helps the client that much.
> > > >
> > > >
> > > > Andy
> > > >
>