Re: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2

"Alberto Gonzalez Prieto (albertgo)" <albertgo@cisco.com> Wed, 28 October 2015 23:08 UTC

Return-Path: <albertgo@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C4D7B1B5EC5 for <netconf@ietfa.amsl.com>; Wed, 28 Oct 2015 16:08:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -13.91
X-Spam-Level:
X-Spam-Status: No, score=-13.91 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, J_CHICKENPOX_46=0.6, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
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 GjL08huCTxZz for <netconf@ietfa.amsl.com>; Wed, 28 Oct 2015 16:08:21 -0700 (PDT)
Received: from alln-iport-3.cisco.com (alln-iport-3.cisco.com [173.37.142.90]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9F0BC1B5EC0 for <netconf@ietf.org>; Wed, 28 Oct 2015 16:08:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=23236; q=dns/txt; s=iport; t=1446073701; x=1447283301; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=i1PHwDGcvF944+osHn6MkaElWHq5P+G93HDAUTs9XW8=; b=KztJst40JmNLfcV5s6hOBKPGLG2Q1OFUyKFUWQIqFYt49TxdkdlXmBV7 HOJEEGH2P50KI41kvT1KiuYXSRc055k+GFFc0Pr0V2ky2NLsN+VJyWNyQ KdCINMdnEBS1cxfaXJo/8/xXuHMfBXXntBPz/YRXnGkpwC1W/HBj4NzSX k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0D3AQCqVDFW/4YNJK1egmlNVG8GvxkBDYFaFwEJhTBKAoEsOBQBAQEBAQEBgQqENQEBAQQBAQFrCxACAQgRAwEBAQ4aByEGCxQJCAIEDgUJiBIDEg3Aew2ETwEBAQEBAQEBAQEBAQEBAQEBAQEBARiLdYJTgWsBAS4RDQQGAQaEKAWHR4seg1gBiy2BdoFZkguBAYNfg28BHwEBQoQEcgGEPDqBBgEBAQ
X-IronPort-AV: E=Sophos;i="5.20,212,1444694400"; d="scan'208,217";a="202341924"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by alln-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 28 Oct 2015 23:08:20 +0000
Received: from XCH-ALN-004.cisco.com (xch-aln-004.cisco.com [173.36.7.14]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id t9SN8K3g024256 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 28 Oct 2015 23:08:20 GMT
Received: from xch-aln-003.cisco.com (173.36.7.13) by XCH-ALN-004.cisco.com (173.36.7.14) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Wed, 28 Oct 2015 18:07:54 -0500
Received: from xch-aln-003.cisco.com ([173.36.7.13]) by XCH-ALN-003.cisco.com ([173.36.7.13]) with mapi id 15.00.1104.000; Wed, 28 Oct 2015 18:07:54 -0500
From: "Alberto Gonzalez Prieto (albertgo)" <albertgo@cisco.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2
Thread-Index: AdEGMYYuBt91fZS4QJ2ekMkkyW+o9wK4PTAAAAEP8oAAAPqjgAANgmkAACMlxYD//87+gA==
Date: Wed, 28 Oct 2015 23:07:54 +0000
Message-ID: <D25691AF.52A62%albertgo@cisco.com>
References: <203b7493c8b0494fa6c266cebe37381e@XCH-ALN-013.cisco.com> <047b01d110e8$92e3ba30$b8ab2e90$@ndzh.com> <FA854546-4B96-48DE-81EA-3F490A6F95ED@juniper.net> <CABCOCHTB-Nzyn-ZrzVqy_9VeY7UMeu5WAFbNRcVsuj+C33CMMQ@mail.gmail.com> <D255D6BE.52759%albertgo@cisco.com> <CABCOCHRQec_AUFzk5+uUg1tSDCi9T_U6L6Sn_WuycmZrio5scQ@mail.gmail.com>
In-Reply-To: <CABCOCHRQec_AUFzk5+uUg1tSDCi9T_U6L6Sn_WuycmZrio5scQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.5.7.151005
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.156.48.39]
Content-Type: multipart/alternative; boundary="_000_D25691AF52A62albertgociscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netconf/R5R017s1Gg4auo4nnbYbrNiH4RU>
Cc: "netconf@ietf.org" <netconf@ietf.org>, Alia Atlas <akatlas@gmail.com>
Subject: Re: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.15
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, 28 Oct 2015 23:08:25 -0000

Thanks Andy,

Agreed.

For the example below, using a periodic subscription on the list of interfaces would result in ~100k entries.
Alternatively, using an on-change subscription would result in a single entry on the wire (I.e., just the config delta).
How efficient the delta computation (on the publisher) would be is implementation-specific.
A publisher implementation has the option of not accepting/supporting on-change subscriptions. A reason for not accepting an on-change subscription is a high  computational cost for serving it.
That is, there are trade-offs that publishers can control wrt computational cost, space requirements, generated traffic.

Thanks,

Alberto

From: Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Date: Wednesday, October 28, 2015 at 12:03 PM
To: Alberto Gonzalez Prieto <albertgo@cisco.com<mailto:albertgo@cisco.com>>
Cc: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>, "netconf@ietf.org<mailto:netconf@ietf.org>" <netconf@ietf.org<mailto:netconf@ietf.org>>, Alia Atlas <akatlas@gmail.com<mailto:akatlas@gmail.com>>
Subject: Re: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2

Hi,

The issue wrt/ PUT vs. PATCH is really a matter of context
and priorities.  If you delete 1 interface out of 100,000, and you
need to send the updated parent container, instead of just
sending "delete interface X", the message could be 10,000
times bigger on-the-wire.  The internal processing could be much
higher (e.g., compare 99,999 interfaces to the saved values
to determine there were no changes).  If efficiency is of
no concern, then updating the parent resource is probably OK.


Andy






On Wed, Oct 28, 2015 at 2:16 AM, Alberto Gonzalez Prieto (albertgo) <albertgo@cisco.com<mailto:albertgo@cisco.com>> wrote:
Thanks for the input Andy.

In the NETCONF draft, for on-change updates, we consider the operations in RFC6241 for edit-config, including merge, and delete.
(when using json encoding, the changes are encoded based on yang-patch)
Does that address the PUT/PATCH inefficiencies you mention?

FWIW, we do not explicitly include yang:insert from RFC6020. It makes sense to me including it since not using would lead to inefficiencies, as you correctly point out.
It also makes sense to me adding “move” to the list of operations in on-change updates.  Thanks for bringing this up.


For periodic updates, the updates contain a snapshot of the current state. That is analogous to a PUT. The rationale was that to compute the deltas, we would need (a potentially sizable) per-subscription state.
E.g., a subscription for fast-changing oper data subtrees with a large number of descendants. Such data may not be versioned and its incremental deltas may not be tracked. In such cases, the state to keep would be a replica of the snapshot used for the last update.

Thanks,

Alberto


From: Netconf <netconf-bounces@ietf.org<mailto:netconf-bounces@ietf.org>> on behalf of Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Date: Tuesday, October 27, 2015 at 12:50 PM
To: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>
Cc: "netconf@ietf.org<mailto:netconf@ietf.org>" <netconf@ietf.org<mailto:netconf@ietf.org>>, Alia Atlas <akatlas@gmail.com<mailto:akatlas@gmail.com>>
Subject: Re: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2

Hi,

I support the feature in general as an optional addition to NETCONF or RESTCONF.
I was looking at the details a bit, and I don't think it covers all YANG operations
(such as insert, move, delete).

I am implementing a datastore replication protocol based on deltas
represented with YANG Patch.  This looks much more efficient in practice
than sending complete updates of resource representations to the client,
especially for delete, insert, and move.  You basically end up with PUT
instead of PATCH, with all the inefficiencies that involves.

I think the subscription and push control in the yang-push draft is great,
but the messages on the wire should be more efficient.


Andy


On Tue, Oct 27, 2015 at 12:22 PM, Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>> wrote:

I think it important that whatever we do in NETCONF we can also do in RESTCONF.   To that end, I support the WG defining "yang-push” for both protocols.

Actually, I’m a little surprised that we’re discussing this.  Maybe it’s just me, but when the WG adopted draft-ietf-netconf-yang-push, I thought that it would cover both protocols eventually.   Perhaps that a separate draft has been produced is another surprise here - do we really need another draft?

Kent

From: Netconf <netconf-bounces@ietf.org<mailto:netconf-bounces@ietf.org>> on behalf of Susan Hares <shares@ndzh.com<mailto:shares@ndzh.com>>
Date: Tuesday, October 27, 2015 at 2:52 PM
To: "'Eric Voit (evoit)'" <evoit@cisco.com<mailto:evoit@cisco.com>>, "netconf@ietf.org<mailto:netconf@ietf.org>" <netconf@ietf.org<mailto:netconf@ietf.org>>
Cc: 'Alia Atlas' <akatlas@gmail.com<mailto:akatlas@gmail.com>>
Subject: Re: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2

NETCONF:

These drafts is important to the I2RS pub/sub.   Is the RESTCONF draft going to be adopted (draft-voit-restconf-yang-push-00.txt)?

It would be really helpful.

Sue Hares
I2RS WG chair

From: Netconf [mailto:netconf-bounces@ietf.org] On Behalf Of Eric Voit (evoit)
Sent: Tuesday, October 13, 2015 11:37 PM
To: netconf@ietf.org<mailto:netconf@ietf.org>
Subject: [Netconf] New YANG PubSub drafts for NETCONF, RESTCONF, HTTP/2

There are a couple new drafts posted in NETCONF:

(1)  Subscribing to YANG datastore push updates
http://www.ietf.org/id/draft-clemm-netconf-yang-push-02.txt
As per earlier NETCONF discussions<http://www.ietf.org/mail-archive/web/netconf/current/msg10432.html> we are expecting this draft to become draft-ietf-netconf-yang-push in the coming days (once the NETCONF charter is approved).  Look for an OpenDaylight client in the Beryllium release (Feb).

(2) Restconf subscription and HTTP push for YANG datastores
http://www.ietf.org/id/draft-voit-restconf-yang-push-00.txt
Extends draft-clemm-netconf-yang-push in the following ways:

·     proposes Restconf subscription and push mechanisms to continuously stream information from YANG datastores over HTTP

·     provides a mechanism to support static subscriptions so that an operator can stream updates over HTTP without Restconf

·     provides YANG model extensions to leverage HTTP/2 so that individual subscriptions can get custom treatment via their own HTTP streams.

Thanks for your interest, and we look forward to the discussions!

- Alexander Clemm, Eric Voit, Alberto Gonzalez Prieto, Ambika Prasad Tripathy, & Einar Nilsen-Nygaard





_______________________________________________
Netconf mailing list
Netconf@ietf.org<mailto:Netconf@ietf.org>
https://www.ietf.org/mailman/listinfo/netconf