Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21

"Eric Voit (evoit)" <evoit@cisco.com> Wed, 13 February 2019 15:14 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 6540A126C7E; Wed, 13 Feb 2019 07:14:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level:
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, 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 hpN2tNyHDihr; Wed, 13 Feb 2019 07:14:17 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 92B4B1200D7; Wed, 13 Feb 2019 07:14:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=9489; q=dns/txt; s=iport; t=1550070857; x=1551280457; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=D5Gciy9deB6LvLQjCjTENBoUOhl6YJQe4NJ84MbD1BE=; b=m6qH6pJ70SlewqSF6SggGxp6oLdjzyifIP0Q/LbE7M9AZRsadwv3Q/N6 a/t9Sj8sXlX0fh7Bt7yg2s2JyfhxA5dnvq0C+4v/XpRaTjvQOaqfTGiAg qrFwVA21BOWUmjnAN6rG0iDN5unto10pXmG3MqPFFG9u2go3c7XHGlv/x E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ADAACkM2Rc/5NdJa1jGQEBAQEBAQEBAQEBAQcBAQEBAQGBUQQBAQEBAQsBgVopZ4EDJwqMFYtzgg18lxeBewsBARgLhANGAoNZIjQJDQEDAQECAQECbRwMhUoBAQEEAQE4LQcJAgwEAgEIEQQBAQENEQULJwsdCAIEAQ0FCIJRTIIBD6sHiicFjEQXgUA/gRGCXTWDHgEBgUuFVCICiV8SOId0kQoJAoslhyQhgW2FUoswijWRaAIRFIEnHziBVnAVO4JsgigXE4hMhT4BQTGOYYEfAQE
X-IronPort-AV: E=Sophos;i="5.58,365,1544486400"; d="scan'208";a="514819906"
Received: from rcdn-core-11.cisco.com ([173.37.93.147]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2019 15:14:16 +0000
Received: from XCH-RTP-012.cisco.com (xch-rtp-012.cisco.com [64.101.220.152]) by rcdn-core-11.cisco.com (8.15.2/8.15.2) with ESMTPS id x1DFEFdg023513 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 13 Feb 2019 15:14:16 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-012.cisco.com (64.101.220.152) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 13 Feb 2019 10:14:15 -0500
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.1395.000; Wed, 13 Feb 2019 10:14:15 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Per Hedeland <per@hedeland.org>, Martin Bjorklund <mbj@tail-f.com>
CC: "draft-ietf-netconf-subscribed-notifications.all@ietf.org" <draft-ietf-netconf-subscribed-notifications.all@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
Thread-Topic: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
Thread-Index: AQHUrG6+nBjZ9hMl8U25QTRsXd0ZC6Ww36AggANDEICAARW3EIAAAXJggAU/bACAAWWKIIABCD+A///v5GCAAKn4AP//skVAgAGV2gD//60SYAANQ54AAApn7nD//7rBgIAATO5Q///xy4CAAB+zwIAAwVMA///xWjCAAIE3gIAAU4mQ///b6QAACBjB0AABYKaAAA0Zy7D/42BDsA==
Date: Wed, 13 Feb 2019 15:14:15 +0000
Message-ID: <211de3a325d943f9bfdebb5aa8c73240@XCH-RTP-013.cisco.com>
References: <83b12adbb7234a84a56ac3ec00bb0673@XCH-RTP-013.cisco.com> <20190125.093938.375156009332209799.mbj@tail-f.com> <adb990ccef2e4fa78d2ad7c12323617e@XCH-RTP-013.cisco.com> <20190125.162941.2222352349671950038.mbj@tail-f.com> <9d4bbc12ddb448ca98fd8560a02565c5@XCH-RTP-013.cisco.com> <2b60239e-979e-3627-e3c5-62b264811f18@hedeland.org> <e6e5a75f9f9c4f12b8f2dd4069b53cf0@XCH-RTP-013.cisco.com> <8d1ab4ac-97ab-ee69-2f1a-4a8a828ccd18@hedeland.org> <9c54bd929e07463f89f3f71fe0a3bbf4@XCH-RTP-013.cisco.com>
In-Reply-To: <9c54bd929e07463f89f3f71fe0a3bbf4@XCH-RTP-013.cisco.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.226]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.152, xch-rtp-012.cisco.com
X-Outbound-Node: rcdn-core-11.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/9Ug8Qdw_fG-x42K2bWkv8vSjRsc>
Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-subscribed-notifications-21
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG 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, 13 Feb 2019 15:14:20 -0000

Thanks again for the review.  I believe the latest version just posted now reflects the results from the thread.  If anything else is needed, please let us know.

Eric

> -----Original Message-----
> From: Eric Voit (evoit) <evoit@cisco.com>
> Sent: Friday, January 25, 2019 4:38 PM
> To: Per Hedeland <per@hedeland.org>; Martin Bjorklund <mbj@tail-f.com>
> Cc: draft-ietf-netconf-subscribed-notifications.all@ietf.org; netconf@ietf.org;
> yang-doctors@ietf.org
> Subject: RE: [netconf] [yang-doctors] Yangdoctors last call review of draft-ietf-
> netconf-subscribed-notifications-21
> 
> > From: Per Hedeland, January 25, 2019 4:32 PM
> > To: Eric Voit (evoit) <evoit@cisco.com>; Martin Bjorklund
> > <mbj@tail-f.com>
> > Cc: draft-ietf-netconf-subscribed-notifications.all@ietf.org;
> > netconf@ietf.org; yang-doctors@ietf.org
> > Subject: Re: [netconf] [yang-doctors] Yangdoctors last call review of
> > draft-ietf-
> > netconf-subscribed-notifications-21
> >
> > On 2019-01-25 22:15, Eric Voit (evoit) wrote:
> > >> From: Per Hedeland, January 25, 2019 1:20 PM
> > >>
> > >> On 2019-01-25 16:41, Eric Voit (evoit) wrote:
> > >>>> From: Martin Bjorklund, January 25, 2019 10:30 AM
> > >>>>
> > >>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > >>>>>> From: Martin Bjorklund, January 25, 2019 3:40 AM
> > >>>>>>
> > >>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > >>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > >>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > >>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 9:40 AM
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > >>>>>>>>>>>>>> From: Martin Bjorklund, January 24, 2019 8:17 AM
> > >>>>>>
> > >>>>>> [...]
> > >>>>>>
> > >>>>>>>>>>>>>> Thinking some more, what is supposed to happen if the
> > >>>>>>>>>>>>>> client on the same session sends first an
> > >>>>>>>>>>>>>> establish-subscription with dscp 42, and then another
> > >>>>>>>>>>>>>> establish-
> > >>>>>> subscription with dscp 10?
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> This would be allowed.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> On linux at least this is a sockopt, i.e., the option
> > >>>>>>>>>>>> applies to the socket, which means all packets on the
> > >>>>>>>>>>>> session.  So how is this supposed to be implemented if
> > >>>>>>>>>>>> different messages on the session should have different
> > >>>>>>>>>>>> dscp
> > values?
> > >>>>>>>>>>>> Or is the
> > >>>>>>>>>>>> idea that you send the msg, flush all data from ssh/tls
> > >>>>>>>>>>>> to tcp, then flush the tcp buffers (not that easy...)?
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Even if there's just one establish-subscription with a
> > >>>>>>>>>>>> dscp value, since it applies to the session it means that
> > >>>>>>>>>>>> all normal rpcs on this session will get the same dscp value.
> > >>>>>>>>>>>> It is not clear that this is the intention?
> > >>>>>>>>
> > >>>>>>>> Did you miss these questions?
> > >>>>>>>
> > >>>>>>> With NETCONF, one DSCP will apply to single TCP session.  So
> > >>>>>>> there is no
> > >>>>>> issue.
> > >>>>>>
> > >>>>>> The problem is if a client sends two establish-subscriptions
> > >>>>>> with different values for dscp on the same session.  Or even if
> > >>>>>> the client sends one
> > >>>>>> establish-
> > >>>>>> subscription with som dscp value, then the dscp will be applied
> > >>>>>> to all packets from other rpcs as well.
> > >>>>>>
> > >>>>>> ... and even worse, with SSH channels you can have multiple
> > >>>>>> NETCONF session on the same TCP session, which means that the
> > >>>>>> dscp value applies to all packets in all NETCONF sessions
> > >>>>>> sharing the same TCP session.
> > >>>>>>
> > >>>>>> I don't know what the right thing to do is.  Probably first
> > >>>>>> agree that this is in fact a problem, then maybe simply
> > >>>>>> document this somehow.
> > >>>>>
> > >>>>> I hadn't thought about multiple NETCONF SSH channels.  I agree
> > >>>>> something to guide developers is needed here.  The easiest fix
> > >>>>> is to recommend not supporting feature "dscp" with NETCONF.  (It
> > >>>>> shouldn't be absolutely prohibited as DSCP related RFC's such as
> > >>>>> RFC7657 embed text like "a single DSCP should be used for all
> > >>>>> packets in a TCP
> > >>>>> connection".)
> > >>>>>
> > >>>>> Here is the text I suggest is put into
> > >>>>> draft-ietf-netconf-netconf-event-notifications, Section 5:
> > >>>>>
> > >>>>> "The feature "dscp" SHOULD NOT be supported over NETCONF.  This
> > >>>>> will avoid the potential for out-of-order packet delivery of the
> > >>>>> set of all traffic within the TCP session."
> > >>>>
> > >>>> I think this is a bit too limiting.  For configured subscriptions
> > >>>> it can be perfectly fine, since the server can ensure that
> > >>>> there's a single TCP session to the receiver in this case.  (I
> > >>>> know we don't support
> > >> configured subscriptions at the moment).
> > >>>>
> > >>>> Perhaps we can say in the SN document:
> > >>>>
> > >>>>     If a server that supports the "dscp" feature cannot guarantee that
> > >>>>     the only packets sent on an underlying transport session are from
> > >>>>     the subscription, then it should reject the subscription with a
> > >>>>     "dscp-unavailable" error.  This will avoid the potential for
> > >>>>     out-of-order packet delivery of the set of all traffic within the
> > >>>>     TCP session.
> > >>>
> > >>> This works for me.    I will put this in Section 2.3, directly after the
> > sentence:
> > >>>
> > >>>      If the publisher supports the "dscp" feature, then a subscription
> > >>>      with a "dscp" leaf MUST result in a corresponding [RFC2474] DSCP
> > >>>      marking being placed within the IP header of any resulting
> > >>>      notification messages and subscription state change notifications.
> > >>>
> > >>>    unless I hear any objections on this thread.
> > >>
> > >> I'm not sure why the "avoid out-of-order" rationale was presented.
> > >> There is no order "of the set of all traffic within the TCP session"
> > >> to be out-of. Regardless of DSCP, SSH peers will send data on the
> > >> channels (NETCONF sessions) in an order that depends, among other
> > >> things, on the rate of consumption of that data. They will preserve
> > >> order on any given channel, but will not consider order with
> > >> respect to other channels (arguably, not having to do that is the
> > >> whole point of
> > having flow control at the SSH level).
> > >
> > > Hi Per,
> > >
> > > What you say is absolutely true.  You likely know this, but Martin
> > > asked to
> > include the out-of-order rationale because if a TCP session carries
> > traffic consisting of a set of DSCP values, then the network elements
> > between the publisher and receiver might reorder the packets.
> >
> > Hm, from the e-mail thread, it seems that the issue of reordering was
> > introduced by you, and Martin's text just copied your text regarding
> > that issue, while relaxing the requirement from completely forbidding
> > the use of the DSCP parameter to disallowing it where it could have
> undesired effects.
> >
> > > While the order might be restored at the receiver (per your point),
> > > this might
> > also be seen as loss.  The result to the application is that higher
> > priority dscp packets will be seen no faster those with lower
> > priority.  Again you likely know this, but there is more on this general topic in
> places like RFC-7657, Section 5.2.
> > >
> > > To cover what Martin wants, and reduce the non-normative text, how
> > > about
> > the following?...
> > >
> > > "Where TCP is used, a publisher which supports the "dscp" feature
> > > SHOULD
> > ensure that a subscription's notification messages are returned within
> > a single TCP transport session where all traffic shares the subscription's
> requested
> > "dscp" leaf value.   Where this cannot be guaranteed, any "establish
> > subscription" RPC request SHOULD be rejected with a "dscp-unavailable"
> > error."
> >
> > This seems fine to me. The point, as far as I can see, is that a DSCP
> > parameter must not be applied to a session (or subscription) that
> > didn't "ask" for it. This is enough of a rationale IMHO, no need to go
> > into the details of what the result may or may not be as far as reordering of
> packets goes.
> 
> Thanks Per, this works for me.
> 
> Eric
> 
> > --Per
> >
> > > Eric
> > >
> > >> I suggest simply dropping the "This will avoid ..." sentence.
> > >>
> > >> --Per
> > >>
> > >>> Eric
> > >>>
> > >>>> I think such text belongs to the SN document, since it may apply
> > >>>> to other transports than just NETCONF.
> > >>>>
> > >>>>
> > >>>> /martin
> > >>>>
> > >>>>
> > >>>>
> > >>>>> With this text, a RESTCONF publisher can support the feature dscp.
> > >>>>> And if someone attempts to use dscp with a NETCONF subscription
> > >>>>> to the same publisher, the error "dscp-unavailable" can be sent.
> > >>>>>
> > >>>>> Eric
> > >>>>>
> > >>>>>
> > >>>>> ...
> > >>>>>> /martin
> > >>>>>
> > >>>
> > >>> _______________________________________________
> > >>> netconf mailing list
> > >>> netconf@ietf.org
> > >>> https://www.ietf.org/mailman/listinfo/netconf
> > >>>
> > >