Re: [Netconf] [yang-doctors] YANG Doctor question: empty mandatory choice?

Martin Bjorklund <mbj@tail-f.com> Sun, 29 July 2018 15:59 UTC

Return-Path: <mbj@tail-f.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 D54E1130E6D; Sun, 29 Jul 2018 08:59:26 -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=ham 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 P551b0pb-edY; Sun, 29 Jul 2018 08:59:24 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 7DB27130E69; Sun, 29 Jul 2018 08:59:24 -0700 (PDT)
Received: from localhost (h-155-4-133-90.NA.cust.bahnhof.se [155.4.133.90]) by mail.tail-f.com (Postfix) with ESMTPSA id AFB101AE018A; Sun, 29 Jul 2018 17:59:23 +0200 (CEST)
Date: Sun, 29 Jul 2018 17:59:24 +0200 (CEST)
Message-Id: <20180729.175924.796235000508288738.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
Cc: evoit@cisco.com, yang-doctors@ietf.org, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20180727151922.ds74qzetcxiqg3is@anna.jacobs.jacobs-university.de>
References: <20180727060507.v7ljp6au4i46ezs3@anna.jacobs.jacobs-university.de> <643f32911e094f649c5007c5524112be@XCH-RTP-013.cisco.com> <20180727151922.ds74qzetcxiqg3is@anna.jacobs.jacobs-university.de>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/NF3r_uF8wGCYXKAR3b6PU22fetU>
Subject: Re: [Netconf] [yang-doctors] YANG Doctor question: empty mandatory choice?
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: Sun, 29 Jul 2018 15:59:27 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Fri, Jul 27, 2018 at 03:03:21PM +0000, Eric Voit (evoit) wrote:
> > 
> > I am fine either way if we incorporate the proposal or not.  Do you have the proposed construct is technically acceptable from the perspective of the YANG doctors?
> >
> 
> I understand Andy's comment not as a YANG issue but a more general question
> whether it is desirable to have a standard without a mandatory to implement
> standard transport. This goes beyond YANG syntax.

I agree.  But I think it is ok, since we cannot mandate NETCONF or
RESTCONF (and note that RESTCONF doesn't even mandate an encoding...)

> > Also below are some thoughts on your other points...
> > 
> > > From: Juergen Schoenwaelder, July 27, 2018 2:05 AM
> > > 
> > > On Thu, Jul 26, 2018 at 11:35:04PM +0000, Eric Voit (evoit) wrote:
> > > >
> > > > One transport for all receivers was a voted WG decision at IETF 101.
> > > Some of the reasons from threads like:
> > > > https://www.ietf.org/mail-archive/web/netconf/current/msg13875.html
> > > > https://www.ietf.org/mail-archive/web/netconf/current/msg14899.html
> > > >
> > > > include:
> > > > (1) Simpler YANG model
> > > > (2) Simpler implementation possible as a single configured
> > > > subscription need be connected to only one transport
> > > > (3) Simpler implementation in that there is no expectation set on the
> > > publisher that there will be no transport loss if the transport type is
> > > reconfigured for a particular receiver mid-subscription.
> > > > (4) Separation of implementation/troubleshooting concerns, as only one
> > > > transport is involved
> > > >
> > > 
> > > With the proposed choice construct, I think
> > > 
> > > (1) does not hold,
> > 
> > Agree.  
> > 
> > > (2) seems unclear (why are multiple identitical subscriptions for
> > >     different transports cheaper than one subscriptions with multiple
> > >     transports?)
> > 
> > Deep within the archived discussions, there were implementation consideration points made about managing content and security filtering across different transports and encodings for a single subscription.  (E.g., what happens if filtering happens after encoding and a change is made to the subscription or security filters, how do you ensure the all filtering is applied at the same event boundary?)
> 
> There is only one standard filtering mechanism (NACM) and that does
> not filter on the encoding (and it would be a bad layer violation to
> filter on the encoding). Since encodings may be negotiated by a
> transport, the single encoding argument falls apart as well.

I think that the idea is that if the config contains the encoding
"json", the server would advertise only "json" in the subscription
session.  This said, I also think this is a bad idea...


/martin


> > > (3) I do not understand
> > 
> > There are a set of implications which can be avoided.  For example controllers (which are receivers) will be consuming these events.  Controller based applications are less likely to have an expectation that there will no event replication for a single subscription-id for a publisher when that subscription-id transitions from one transport to another.
> 
> I am still clueless. What is a 'transitions of transport'? My naive
> understanding of a subscription with a receiver and two transport is
> that the data goes to both. Or is the idea that these serve has
> failover backups? But then this may interact with similar features in
> the call-home documents (I did not check again but I think there were
> some failover mechanisms in there some time ago).
> 
> > > (4) I do not understand (since you can easily distinguish the receiver
> > >     and label log messages by receiver)
> > > 
> > > If we would be serious about simplification to lower the point of entry, we
> > > would have only a single receiver for a configured subscription. Allowing
> > > multiple receivers as long as they use the same transport seems like an
> > > arbitrary CLR.
> > 
> > Yes, this was considered.  However there are use cases where identical event streams must be sent for receiver redundancy reasons.  The current design can support that possibility.  Beyond that, there are deployment proof points from oc-telemetry.yang that this is a desirable capability.
> >
> 
> OK. But then, I have not yet understood why the transports have to be
> the same in the model. (Which does not preclude that an implementation
> has a deviation that requires the multiple receivers of a subscription
> to use the same transport. And all this is only becoming an issue if
> an implementation does actually support multiple transports.)
> 
> /js
> 
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> 
> _______________________________________________
> yang-doctors mailing list
> yang-doctors@ietf.org
> https://www.ietf.org/mailman/listinfo/yang-doctors
>