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

Martin Bjorklund <mbj@tail-f.com> Fri, 17 August 2018 14:08 UTC

Return-Path: <mbj@tail-f.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 CC60E127B92 for <netconf@ietfa.amsl.com>; Fri, 17 Aug 2018 07:08:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 7TErbpRjVsCv for <netconf@ietfa.amsl.com>; Fri, 17 Aug 2018 07:08:09 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id EA816126DBF for <netconf@ietf.org>; Fri, 17 Aug 2018 07:08:08 -0700 (PDT)
Received: from localhost (h-80-27.A165.priv.bahnhof.se [212.85.80.27]) by mail.tail-f.com (Postfix) with ESMTPSA id E53931AE018A; Fri, 17 Aug 2018 16:08:06 +0200 (CEST)
Date: Fri, 17 Aug 2018 16:08:06 +0200
Message-Id: <20180817.160806.1319182991643096746.mbj@tail-f.com>
To: evoit@cisco.com
Cc: andy@yumaworks.com, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <6e228976514f4e4c9e5fb7b3ff36a0ed@XCH-RTP-013.cisco.com>
References: <80ca22045b7045fe9b72b3b90ac2610b@XCH-RTP-013.cisco.com> <20180817.094825.1996509847038799743.mbj@tail-f.com> <6e228976514f4e4c9e5fb7b3ff36a0ed@XCH-RTP-013.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/FkNZ9o3sXvmWTyVfHB992Z8Y2_Q>
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: Fri, 17 Aug 2018 14:08:11 -0000

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
> > >