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

"Eric Voit (evoit)" <evoit@cisco.com> Sat, 18 August 2018 19:02 UTC

Return-Path: <evoit@cisco.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 40343130EF7 for <netconf@ietfa.amsl.com>; Sat, 18 Aug 2018 12:02:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level:
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 i_vDU7axEH3R for <netconf@ietfa.amsl.com>; Sat, 18 Aug 2018 12:02:42 -0700 (PDT)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EDE60130F29 for <netconf@ietf.org>; Sat, 18 Aug 2018 12:02:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=25650; q=dns/txt; s=iport; t=1534618959; x=1535828559; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=R2uKZHSMYDyTQqGZ/x5gJoNLevveoghYiOqbZrT5O1M=; b=SYOJFk6Qd9TRM4w7NCqER0NMGKRtqfNvRLvpsUivpB4FSnqde6bYgs5H 72fDRRP3HmrFvy2H5TgMWwdelS752Vgg+1Gl+NEhxcEQyrugsapiS393e IR3/ZpsvLthqR3fqb3JoUfh22trMxUlq0x2QGxAw+BSWqaB+PAwMDGr/L s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CyAADKbHhb/5RdJa1TCRkBAQEBAQEBAQEBAQEHAQEBAQGCV3hjfygKg2WICowagg2QbIUrgXoLhGwCF4MvITQYAQIBAQIBAQJtKIU3AQEBAQIBIwpMBQsCAQgRBAEBAQ0aAwICAjAUCQgCBAENBQiDG4EdXAioBoEuilmJGBeBQT+EJIMbBIE1FEyCS4JXAox3hUmIPAkCiRqGPB2BPox6iC6KUwIRFIEkHTgmgSxwFYMkkFNvAYt9K4EBgRsBAQ
X-IronPort-AV: E=Sophos;i="5.53,257,1531785600"; d="scan'208,217";a="158723226"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Aug 2018 19:02:38 +0000
Received: from XCH-RTP-013.cisco.com (xch-rtp-013.cisco.com [64.101.220.153]) by rcdn-core-12.cisco.com (8.15.2/8.15.2) with ESMTPS id w7IJ2beL026466 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Sat, 18 Aug 2018 19:02:37 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-013.cisco.com (64.101.220.153) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Sat, 18 Aug 2018 15:02:36 -0400
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1320.000; Sat, 18 Aug 2018 15:02:36 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, Martin Bjorklund <mbj@tail-f.com>, "alex@clemm.org" <alex@clemm.org>
CC: Netconf <netconf@ietf.org>
Thread-Topic: [Netconf] yang-push-17 on-change subscriptions
Thread-Index: AQHUNYrrYY6ak73XnEaGYzSznDnmOaTC1vHAgAD+YoCAAA99AIAAWpgAgAHIq4D//9ixAA==
Date: Sat, 18 Aug 2018 19:02:36 +0000
Message-ID: <760093d9d9b74417a13eaae07117da06@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> <20180817.160806.1319182991643096746.mbj@tail-f.com> <CABCOCHQcCJ05H0pGhBqPJ2gmfJ__6Yzb=akFHu9mss3KKk3Yag@mail.gmail.com>
In-Reply-To: <CABCOCHQcCJ05H0pGhBqPJ2gmfJ__6Yzb=akFHu9mss3KKk3Yag@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.234]
Content-Type: multipart/alternative; boundary="_000_760093d9d9b74417a13eaae07117da06XCHRTP013ciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.153, xch-rtp-013.cisco.com
X-Outbound-Node: rcdn-core-12.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/hx7eQZoisTeK-3ACXAuL-VIzaow>
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 19:02:49 -0000

Agree this change should be made.

Eric

From: Andy Bierman <andy@yumaworks.com>
Sent: Saturday, August 18, 2018 1:23 PM
To: Martin Bjorklund <mbj@tail-f.com>
Cc: Eric Voit (evoit) <evoit@cisco.com>; Netconf <netconf@ietf.org>
Subject: Re: [Netconf] yang-push-17 on-change subscriptions

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<mailto:mbj@tail-f.com>> wrote:
Hi,

"Eric Voit (evoit)" <evoit@cisco.com<mailto:evoit@cisco.com>> wrote:
> > From: Martin Bjorklund, August 17, 2018 3:48 AM
> >
> > Hi,
> >
> > "Eric Voit \(evoit\)" <evoit=40cisco.com@dmarc.ietf.org<mailto: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<mailto:netconf-bounces@ietf.org>> On Behalf Of Andy Bierman
> > > Sent: Thursday, August 16, 2018 1:59 PM
> > > To: Netconf <netconf@ietf.org<mailto: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
> > >