Re: [Netconf] Comments on draft-ietf-netconf-yang-push-18

Andy Bierman <andy@yumaworks.com> Tue, 04 September 2018 16:42 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 4871E130F61 for <netconf@ietfa.amsl.com>; Tue, 4 Sep 2018 09:42:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 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, URIBL_BLOCKED=0.001] 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 kKFZX6FD4NaX for <netconf@ietfa.amsl.com>; Tue, 4 Sep 2018 09:42:36 -0700 (PDT)
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) (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 D8603130F52 for <netconf@ietf.org>; Tue, 4 Sep 2018 09:42:35 -0700 (PDT)
Received: by mail-lj1-x22b.google.com with SMTP id y17-v6so3720962ljy.8 for <netconf@ietf.org>; Tue, 04 Sep 2018 09:42:35 -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=SOT12eDZWiWtOWkHGNVdkMwkiyT1QoKmDSfZIUA6ymg=; b=U5mkAkviZbhRpCx3b7aXJfiEd/hRGm5xC2K2OSHZ9Lkunok+eRr4JA2hw/hWW9lGRn Fy/EaQh/YxAW3Jss8395cAuJeEM2xLwgSaULt+XdS+0o1e1yIADi23svtDawwIoQxuM8 jLKNDub3jzoK7zXXA8zmqaAhXNHyut1KDtRCquozSge+5gWfy9le+LVNxrwKirIldB/x YiMdf5jVNCTyDK1w9JL1saStrSCB+VueUY6SjBHuC4KW3XJlrZVIi3Iy7GdvBZnOGhia NRWzXOmyLrAues65SsnyOMKXtV608SYTdmeUESlut7hvYCR28BJHNb9s4alK0gmhtPdM MI2g==
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=SOT12eDZWiWtOWkHGNVdkMwkiyT1QoKmDSfZIUA6ymg=; b=o0/l7C0DuKZ1/sV0ZdRUfcmFUz5cx7TGDkLXiZAwuqhelHooDMju0KL3m1ObL1MOt0 mAwhpxrrRqbiwMCZhgRT4h0B/gbMZ+o9e9wEAUjC08oPYrWn2A+y7NPmEPMEbIZnbDNO rDcrJUWa+kZgtvt2gpMfEyHut0sknJOpOt19ck/SB6KZ/VKbtDerC/G5FyJspkA3g0ry cHfzhvltThwWxPwz3NYQOJR62+cwPEtJGb6f6xxSMftjz7D6mUeCA7DYiyvUw8+/ZAyi URo0r9AM6MXkL5XbG6k0blwd733sq/q/jsATXwd3SjFCExz9PBTGPsn1DrDikwBLfec2 WVUg==
X-Gm-Message-State: APzg51DyGuR1b19Fhz+c8m09LClNW+eQpmueot0SWd8MGQeixn4VJgYP KLSJEZ/XEuMauXLXM1SNbuBVj2FosM4fE+Rk/Du729FIXzo=
X-Google-Smtp-Source: ANB0VdazetPV48exmWK7c4KiTjQId8X6+lQRjAAB9G3gEW1nkb65ihufW5HBZ/uc8YgqHK1qucMhc0/fBp/Lfi0xRrg=
X-Received: by 2002:a2e:8652:: with SMTP id i18-v6mr17907732ljj.43.1536079353969; Tue, 04 Sep 2018 09:42:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:5116:0:0:0:0:0 with HTTP; Tue, 4 Sep 2018 09:42:32 -0700 (PDT)
In-Reply-To: <35FF0D51C8DAB54B95B0426331F984FF52045B7E@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>
From: Andy Bierman <andy@yumaworks.com>
Date: Tue, 04 Sep 2018 09:42:32 -0700
Message-ID: <CABCOCHSJPNw0yYzwcHQm+Y-azyyfK=mGB_z5R3F2zUsfzudZYA@mail.gmail.com>
To: "Yutianpeng (Tim)" <yutianpeng@huawei.com>
Cc: Martin Bjorklund <mbj@tail-f.com>, "netconf@ietf.org" <netconf@ietf.org>, "rwilton=40cisco.com@dmarc.ietf.org" <rwilton=40cisco.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000003dae9105750e580f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/lJWKoLUy5k6T4jxHOsbkSfUxUj0>
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: Tue, 04 Sep 2018 16:42:40 -0000

On Tue, Sep 4, 2018 at 9:20 AM, Yutianpeng (Tim) <yutianpeng@huawei.com>
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.
> </Tim>
>
>

You are assuming the code that changed the configuration is also the code
that implements
the YP subscriber function, and there is some internal optimization to
update the data maintained
by the subscriber.

The standard imposes no such requirement -- the subscriber code can be
completely independent
of all other network management -- this goes for server-side as well.


Andy



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