Re: [Netconf] Comments on draft-ietf-netconf-yang-push-18
"Yutianpeng (Tim)" <yutianpeng@huawei.com> Wed, 05 September 2018 08:45 UTC
Return-Path: <yutianpeng@huawei.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 4CB79130DC5 for <netconf@ietfa.amsl.com>; Wed, 5 Sep 2018 01:45:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=unavailable 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 AVk6MFxq1AwP for <netconf@ietfa.amsl.com>; Wed, 5 Sep 2018 01:45:36 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B5B1F128B14 for <netconf@ietf.org>; Wed, 5 Sep 2018 01:45:35 -0700 (PDT)
Received: from LHREML710-CAH.china.huawei.com (unknown [172.18.7.107]) by Forcepoint Email with ESMTP id B0BB0E3960B4E; Wed, 5 Sep 2018 09:45:32 +0100 (IST)
Received: from LHREML523-MBS.china.huawei.com ([169.254.9.45]) by LHREML710-CAH.china.huawei.com ([10.201.108.33]) with mapi id 14.03.0399.000; Wed, 5 Sep 2018 09:45:25 +0100
From: "Yutianpeng (Tim)" <yutianpeng@huawei.com>
To: Alexander Clemm <alexander.clemm@huawei.com>, Robert Wilton <rwilton=40cisco.com@dmarc.ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Comments on draft-ietf-netconf-yang-push-18
Thread-Index: AdQ/rOk2O9B1aMu7RrSnvHTptxxrnQErdiaAAAAqBoAAADdugAACTR5QAAB+cIAAEinCgAARH4Yw
Date: Wed, 05 Sep 2018 08:45:24 +0000
Message-ID: <35FF0D51C8DAB54B95B0426331F984FF52045F77@lhreml523-mbs.china.huawei.com>
References: <35FF0D51C8DAB54B95B0426331F984FF520433B2@lhreml523-mbs.china.huawei.com> <fe3b3e33-f5f8-36f2-77df-4c9fd0059d54@cisco.com> <CABCOCHRFcOciHrS3t69EueFw1QES6GAkqyb2WTNh7K4a3f-_ng@mail.gmail.com> <20180904.173343.771736120417698474.mbj@tail-f.com> <35FF0D51C8DAB54B95B0426331F984FF52045B7E@lhreml523-mbs.china.huawei.com> <3855125a-3b54-3fa0-1762-dea1f45d6a75@cisco.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0EB5C72E@sjceml521-mbs.china.huawei.com>
In-Reply-To: <644DA50AFA8C314EA9BDDAC83BD38A2E0EB5C72E@sjceml521-mbs.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.203.126.98]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/eUij6KUSwJaVm-KTBtkC2R62Bi0>
Subject: Re: [Netconf] Comments on draft-ietf-netconf-yang-push-18
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 05 Sep 2018 08:45:39 -0000
Thanks Alex Agree, it could be minor. Let's keep current push unchanged. Thanks Tim -----Original Message----- From: Alexander Clemm Sent: 05 September 2018 02:34 To: Robert Wilton <rwilton=40cisco.com@dmarc.ietf.org>; Yutianpeng (Tim) <yutianpeng@huawei.com>; netconf@ietf.org Subject: RE: [Netconf] Comments on draft-ietf-netconf-yang-push-18 +1 on all accounts. Tim, as explained, let us not introduce this change. It makes implementation more complex and may even introduce other issues. Eliminating "double-reporting" of changes to a client application that is making changes to datastore nodes to whose updates it has also subscribed is a minor optimization. If you really have a need for this feature, it can be augmented into the model and be described in a separate draft. Thanks --- Alex > -----Original Message----- > From: Netconf [mailto:netconf-bounces@ietf.org] On Behalf Of Robert > Wilton > Sent: Tuesday, September 04, 2018 9:54 AM > To: Yutianpeng (Tim) <yutianpeng@huawei.com>; netconf@ietf.org > Subject: Re: [Netconf] Comments on draft-ietf-netconf-yang-push-18 > > Hi Tim, > > Please see inline ... > > > On 04/09/2018 17:20, Yutianpeng (Tim) wrote: > > Hi, > > Thanks for reply. > > Some explanations as below, please check. > > Tim > > > > -----Original Message----- > > From: Netconf [mailto:netconf-bounces@ietf.org] On Behalf Of Martin > > Bjorklund > > Sent: 04 September 2018 16:34 > > To: andy@yumaworks.com > > Cc: netconf@ietf.org; rwilton=40cisco.com@dmarc.ietf.org > > Subject: Re: [Netconf] Comments on draft-ietf-netconf-yang-push-18 > > > > Andy Bierman <andy@yumaworks.com> wrote: > >> On Tue, Sep 4, 2018 at 8:22 AM, Robert Wilton < > >> rwilton=40cisco.com@dmarc.ietf.org> wrote: > >> > >>> Hi Tim, > >>> > >>> Please see comments (as a non author) inline ... > >>> > >>> On 29/08/2018 16:28, Yutianpeng (Tim) wrote: > >>> > >>> Hi, > >>> > >>> Some comments as below: > >>> > >>> > >>> > >>> ------------------------------ > >>> > >>> There is one point missing in the draft so far I think: what if > >>> the subscriber is the initiator of the configuration changes? > >>> > >>> In this case, the subscriber is aware of configuration changes > >>> initiated by itself without relying on the push mechanism. > >>> Introducing push mechanism will dramatically impact the > >>> performance of > the system in this case. > >>> > >>> My suggestion is: > >>> > >>> 3.3. On-Change Considerations > >>> > >>> 5. If the resulting patch record is non-empty, and it > >>> contains the records not initiated by the subscriber, select these > >>> records and send to corresponding subscriber. > >>> > >>> We can have further discussion on this to make it optional instead > >>> of mandatory. > >>> > >>> I'm not keen on this change. This does not seem like a good > >>> separation of concerns. Besides, I'm not convinced why this > >>> should really be a performance issue given that config changes are > >>> relatively rare compared to all the operational state in the > >>> system that may > be changing. > >>> > >>> > >> +1 -- this change should not be made. > >> This is not a useful optimization. > > +1 > > > > <Tim> > > I might haven't explain the main concerns on this clearly. > > When I see Yang-push, I find it very useful as it really solves > > problems all > NMS/controllers are facing. But I do have a concern on the point I mentioned. > > Let me give an example that Yang-Push can be used: > > Before Yang-push: > > NMS is using Netconf yang to manage a router NMS is using polling > > mechanism to sync config Anyone make changes not through NMS, e.g. > > CLI, NMS is not aware of the change in time. > > > > After Yang-push: > > NMS is using Netconf yang to manage a router NMS is using Yang-push > > mechanism to sync configuration. In order to make sure all database > > in sync state, <running> database is subscribed --- I believe this > > could be a widely > use case In case anyone make changes not through the NMS, changes will > be notified to NMS via push mechanism. > > With yang push solution, it solves restriction of polling mechanism pretty well. > > But as I explained, yang push mechanism has an obvious drawback, > > each > configuration from NMS will have a push message back to NMS, which is > not needed in many use scenarios. This behavior actually impact performance a lot. > > If this msg can be filtered directly without going through all > > Netconf +SSH/TLS > + TCP process, the performance of the subscriber will improve a lot I believe. > > Based on my understanding yang-push is to solve polling latency, but > > it should > not have significant performance impact on existing applications. If > NMS configure a device with 1000 changes and the device push 1000 > changes back to NMS, I don't think this is an elegant implementation > when Netconf has already provide enough transaction mechanism itself. > The impact of push mechanism is it impact performance of 99% of > scenario (normal NMS->device configure > process) to solve 1% of use case (configuration not sync in time). > > I understand the difficulty of introducing big changes at this > > stage, but I really > wish we can have an elegant push mechanism. Appreciate any comments on > this. > > (1) I'm not convinced that this will be a performance problem, > particularly if dampening is applied to the subscription, or a > periodic subscription is used instead. I.e. I see that YANG push > performance should be no worse than polling, and I anticipate that it will be significantly better. > (2) The YANG push draft is already 4 years old. I think that we must > just finish what we are working on now, then we can discuss > extensions/future work. If we keep churning the requirements and > solution then we just end up with no solution, and the market looks > elsewhere (as is already happening) > > So, my pragmatic suggestion is: > - we collectively try not to get side-tracked discussing this in > detail now, > - implement it as it is defined in the draft, > - benchmark it to see how it performs (perhaps also compare to > performance if JSON, or CBOR is used as an encoding as well), > - if it really performs poorly (that is not due to implementation), > then write up an ID describing the problem (including why > dampening/periodic subscriptions don't help), with figures to back it > up, etc, > - the WG can then evaluate whether this is really a problem that > needs to be solved, and if it does then someone can write a draft > proposing an appropriate solution. > > Does that seem reasonable? > > Thanks, > Rob > > > > </Tim> > > > >>> > >>> ----------------------------- > >>> > >>> Both “subscriber” and “receiver” are used, bit confusing sometimes. > >>> Shall we only use “subscriber” > >>> > >>> They are different entities, the definitions are in > >>> draft-ietf-netconf-subscribed-notifications: > >>> > >>> Receiver: A target to which a publisher pushes subscribed event > >>> records. For dynamic subscriptions, the receiver and subscriber are > >>> the same entity. > >>> > >>> Subscriber: A client able to request and negotiate a contract for the > >>> generation and push of event records from a publisher. For dynamic > >>> subscriptions, the receiver and subscriber are the same entity. > >>> > >>> > >>> > >>> > >>> > >>> ------------------------ > >>> > >>> 3.11.1. Robustness and reliability > >>> > >>> Note: It is perfectly acceptable to have a series of > >>> "push-change- > >>> > >>> update" notifications (and even "push update" notifications) > >>> serially > >>> > >>> queued at the transport layer awaiting transmission. It is > >>> not > >>> > >>> required to merge pending update records. I.e., the dampening > >>> period > >>> > >>> applies to update record creation, not transmission. > >>> > >>> My suggestion is: > >>> > >>> The publisher should increase dampening period automatically in > >>> case the message queue reaches a limit. > >>> > >>> This is to avoid notifications lost due to queue limit in case > >>> subscriber is busy or temporarily unreachable. > >>> > >>> I don't think that this is how the dampening that is currently > >>> defined should work, since it is expected to provide a strong > >>> guarantee that it will either deliver the notifications to the > >>> receiver, or otherwise notify to the receiver that some updates > >>> [may] have > been lost. > >>> > >>> I could imagine that another, softer type of dampening, could > >>> potentially be defined in future as a separate > >>> extension/augmentation, but I don't think that should go into this > >>> document, because it would massively slow it down, and the > >>> industry > already needs this standard now. > >>> > >>> > >> +1 -- the server does what it is told and does not decide to change > >> +the > >> subscription on its own > > +1 > > > > > > /martin > > > >> > >> > >>> > >>> ----------------------------- > >>> > >>> It would be appreciated if suggestions can be given on how push > >>> shall be used on running, startup and candidate datastores > >>> > >>> It should work the same way as YANG push on any other datastore. > >>> The mechanism described in the draft seems to be entirely > >>> datastore > agnostic. > >>> In what way do you think it may behave differently? > >>> > >>> Although I could imagine that implementations may not support > >>> subscriptions on startup or candidate, in which case I would > >>> expect that the subscription would be rejected. > >>> > > <Tim> > > Thanks Rob. > > I think you understand my concerns. The whole yang push mechanism is > datastore agnostic. > > But my position is: if we follow this draft, I am pretty sure > > implementation of > yang push later will be different across all vendors. Someone will > accept subscription on startup but others will reject. Some will > support pushing changes on candidate but others not. > > I believe the original intention of Netconf to provide a > > standardized > mechanism and we are all working to scandalized as much as possible to > allow different vendors to have interoperability with each other. > > If IETF working group can give instructions on how push mechanism > > can be > adopted to different datastores instead of let vendors make decisions > themselves, I believe we have a solution easier get interoperated. > > </Tim> > > > > > >>> Thanks, > >>> Rob > >>> > >>> > >>> > >> Andy > >> > >> > >>> > >>> ------------------------------- > >>> > >>> > >>> > >>> Regards, > >>> > >>> Tim > >>> > >>> > >>> _______________________________________________ > >>> Netconf mailing > >>> listNetconf@ietf.orghttps://www.ietf.org/mailman/listinfo/netconf > >>> > >>> > >>> > >>> _______________________________________________ > >>> Netconf mailing list > >>> Netconf@ietf.org > >>> https://www.ietf.org/mailman/listinfo/netconf > >>> > >>> > > _______________________________________________ > > Netconf mailing list > > Netconf@ietf.org > > https://www.ietf.org/mailman/listinfo/netconf > > _______________________________________________ > Netconf mailing list > Netconf@ietf.org > https://www.ietf.org/mailman/listinfo/netconf
- [Netconf] Comments on draft-ietf-netconf-yang-pus… Yutianpeng (Tim)
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Alexander Clemm
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Robert Wilton
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Andy Bierman
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Martin Bjorklund
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Yutianpeng (Tim)
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Andy Bierman
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Robert Wilton
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Yutianpeng (Tim)
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Alexander Clemm
- Re: [Netconf] Comments on draft-ietf-netconf-yang… Yutianpeng (Tim)