Re: [netmod] "A YANG Data Model for Routing Management" Modifications

Martin Bjorklund <mbj@tail-f.com> Tue, 31 May 2016 21:02 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3FEE12D8E6 for <netmod@ietfa.amsl.com>; Tue, 31 May 2016 14:02:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.327
X-Spam-Level:
X-Spam-Status: No, score=-3.327 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.426, 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 bSh_yAMcbp4r for <netmod@ietfa.amsl.com>; Tue, 31 May 2016 14:02:42 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 611DD12D8DA for <netmod@ietf.org>; Tue, 31 May 2016 14:02:42 -0700 (PDT)
Received: from localhost (h-186-70.a165.priv.bahnhof.se [109.228.186.70]) by mail.tail-f.com (Postfix) with ESMTPSA id 6E5CC1AE018B; Tue, 31 May 2016 23:02:41 +0200 (CEST)
Date: Tue, 31 May 2016 23:02:41 +0200
Message-Id: <20160531.230241.1831955717429467771.mbj@tail-f.com>
To: acee@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D3736BBF.62D4B%acee@cisco.com>
References: <D36DD139.5D526%yiqu@cisco.com> <m2y46raeuu.fsf@birdie.labs.nic.cz> <D3736BBF.62D4B%acee@cisco.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: base64
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/bCvy4uSru-K5dIFbscq3GiTOuIM>
Cc: netmod@ietf.org
Subject: Re: [netmod] "A YANG Data Model for Routing Management" Modifications
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 31 May 2016 21:02:46 -0000

"Acee Lindem (acee)" <acee@cisco.com> wrote:
> Hi Lada, 
> If we can’t get YANG to do what we need, can we just support a choice with
> a special value of “unspecified” for the interface and address?

Yes, you can make these keys be unions of interface-ref and an enum
'unspecified', and an ip-address and enum 'unspecified'.

> Additionally, we’d need a constraint that enforces the fact that both
> interface and address cannot be “unspecified”.

   must 'key1 != "unspecified" or key2 != "unspecified"';


/martin



> 
> Thanks,
> Acee 
> 
> On 5/30/16, 8:51 AM, "Ladislav Lhotka" <lhotka@nic.cz> wrote:
> 
> >"Yingzhen Qu (yiqu)" <yiqu@cisco.com> writes:
> >
> >> Hi Lada,
> >>
> >> The ³multi-next-hop² is using the combination of interface and address
> >>as
> >> the list key. I know key can¹t be empty, but for next hop it¹s possible
> >> that only either interface or address is used. I¹ve been trying to
> >>figure
> >> out a better way to present this, any suggestion?
> >
> >Optional list keys were proposed for YANG 1.1:
> >
> >https://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/issues.html#sec-10
> >
> >The reason that the issue Y09 was eventually rejected was that many
> >people thought it was a relatively far-reaching change. This means we
> >are left with the same options as in YANG 1.0, none of them being very
> >pretty:
> >
> >- Add a dummy opaque key, e.g.
> >
> >  list next-hop-entries {
> >    key id;
> >    leaf id {
> >      type uint16;
> >    }
> >    unique interface address;
> >    ...
> >  }
> >
> >- Use special value, such as empty string, to indicate that either
> >  interface or address isn't present. But since inet:ipv[46]-address
> >  cannot be empty, we would need to define the type of "address" as a
> >  union of empty string and inet:ipv[46]-address.
> >
> >Lada
> >
> >>
> >> If there is anything I can help with the modification, please let me
> >>know.
> >>
> >> Thanks,
> >> Yingzhen
> >>
> >> On 5/27/16, 4:14 AM, "Acee Lindem (acee)" <acee@cisco.com> wrote:
> >>
> >>>Hi Lada, 
> >>>
> >>>On 5/27/16, 5:42 AM, "Ladislav Lhotka" <lhotka@nic.cz> wrote:
> >>>
> >>>>Hi Acee,
> >>>>
> >>>>I have a couple of questions:
> >>>>
> >>>>1. I changed "routing-protocol" -> "control-plane-protocol" (this is
> >>>>   already in GitHub). As for identities, I introduced a new base
> >>>>   identity "control-plane-protocol", and derived "routing-protocol"
> >>>>   from it. So the idea is that routing protocols will still use
> >>>>   "routing-protocol" as their base. Is it OK?
> >>>
> >>>Yes - as long as there is a single list. I¹ll pull the source today.
> >>>
> >>>>
> >>>>2. We could define identities for route types but I am still not
> >>>>   convinced that route-type should be added to ietf-routing because
> >>>>   then we can't limit the set of types for each protocol, so that, for
> >>>>   example, OSPF routes could carry IS-IS Level [12] routes.
> >>>
> >>>Do you mean that OSPF would install the wrong type of route? I would see
> >>>this as a bug but not something the model itself should enforce.
> >>>
> >>>Note that OSPF can ³carry² any type of route if it is imported into OSPF
> >>>and advertised as an AS External route.
> >>>
> >>>>
> >>>>3. The "multi-next-hop" case in rib-extend-01 uses interface and
> >>>>address
> >>>>   as keys. This means that for every next-hop *both* parameters have
> >>>>to
> >>>>   be given. Is it really intended?
> >>>
> >>>No - either or both must be specified but both are not required. I¹ll
> >>>leave this to you YANG experts.
> >>>
> >>>Thanks,
> >>>Acee
> >>>
> >>>
> >>>
> >>>>
> >>>>Thanks, Lada
> >>>>
> >>>>"Acee Lindem (acee)" <acee@cisco.com> writes:
> >>>>
> >>>>> Hi Lada, 
> >>>>>
> >>>>>
> >>>>> On 5/23/16, 8:30 AM, "Ladislav Lhotka" <lhotka@nic.cz> wrote:
> >>>>>
> >>>>>>"Acee Lindem (acee)" <acee@cisco.com> writes:
> >>>>>>
> >>>>>>> Hi Lada, 
> >>>>>>>
> >>>>>>> I thought I go through the impetus for the changes I discussed in
> >>>>>>>my
> >>>>>>>last
> >>>>>>> E-mail. I believe we should make these changes and then freeze the
> >>>>>>> specification other than possible modifications based on the
> >>>>>>>consensus
> >>>>>>>for
> >>>>>>> the NETMOD operational state direction.
> >>>>>>
> >>>>>>I agree.
> >>>>>>
> >>>>>>>
> >>>>>>> The request to merge draft
> >>>>>>> https://www.ietf.org/id/draft-acee-rtgwg-yang-rib-extend-01.txt is
> >>>>>>>based
> >>>>>>> on the comments we received in the RTG WG meeting at IETF 95. The
> >>>>>>> consensus in the room was that the proposed next-hop additions were
> >>>>>>>pretty
> >>>>>>> standard in a networking device supporting routing. We were careful
> >>>>>>>not
> >>>>>>>to
> >>>>>>> include any MPLS or other tunneling technologies. If you feel that
> >>>>>>>some
> >>>>>>>of
> >>>>>>> these are not applicable to hosts, we could make them features.
> >>>>>>
> >>>>>>I don't think that many home routers support these features either
> >>>>>>(except ECMP). I still think they should be added as augments, and,
> >>>>>>as
> >>>>>>you know, ietf-routing was previously modified to enable it. Another
> >>>>>>advantage of doing so is that it will be more future-proof: it will
> >>>>>>be
> >>>>>>easier to replace their definitions with something else, which may be
> >>>>>>impossible if they are an integral part of ietf-routing, because of
> >>>>>>the
> >>>>>>rigid rules for updating published YANG modules.
> >>>>>
> >>>>> Lou and I had a lengthy discussion on this and we agreed that the
> >>>>>base
> >>>>> should support ECMP and a metric per-path (like Linux).
> >>>>>
> >>>>> I also think we could route-type and tag to the operational state as
> >>>>>long
> >>>>> as they have default value of ³unspecified² and ³none² respectively.
> >>>>>This
> >>>>> would address the E-mail Helen Chen sent to NETMOD today.
> >>>>>
> >>>>> As for configuration of the tag and the backup path, we can keep
> >>>>>these
> >>>>>as
> >>>>> augmentations.
> >>>>>
> >>>>>>
> >>>>>>>
> >>>>>>> The request to change the name of routing-protocols to
> >>>>>>> control-plane-protocols is in support of
> >>>>>>> https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-04.txt.
> >>>>>>>This
> >>>>>>> informative model was always had a control-plane-protocols list. If
> >>>>>>>we
> >>>>>>> don¹t put a standards-based control-plane-protocols list here, we
> >>>>>>>will
> >>>>>>> need to have one list for routing-protocols (i.e., RIB clients) and
> >>>>>>> another list for non-RIB clients. While the name is somewhat more
> >>>>>>>general
> >>>>>>> than the scope of routing-cfg, it seems like a very good trade-off
> >>>>>>>to
> >>>>>>>put
> >>>>>>> it here rather than have two lists and have to move protocols
> >>>>>>>between
> >>>>>>> lists if they suddenly add a capability that allows the protocol to
> >>>>>>>modify
> >>>>>>> the RIB.
> >>>>>>
> >>>>>>I don't mind changing the name, but I was a bit concerned that this
> >>>>>>may
> >>>>>>induce other changes, e.g. in the definition of RIBs. Lou already
> >>>>>>told
> >>>>>>me it was not the case, so we can change the name.
> >>>>>
> >>>>>
> >>>>> Great. 
> >>>>>
> >>>>> Thanks,
> >>>>> Acee 
> >>>>>
> >>>>>
> >>>>>>
> >>>>>>Lada
> >>>>>>
> >>>>>>>
> >>>>>>> If you are amenable to these modifications, we can confirm them on
> >>>>>>>the
> >>>>>>> NETMOD list.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Acee 
> >>>>>>>
> >>>>>>
> >>>>>>-- 
> >>>>>>Ladislav Lhotka, CZ.NIC Labs
> >>>>>>PGP Key ID: E74E8C0C
> >>>>>
> >>>>
> >>>>-- 
> >>>>Ladislav Lhotka, CZ.NIC Labs
> >>>>PGP Key ID: E74E8C0C
> >>>
> >>
> >
> >-- 
> >Ladislav Lhotka, CZ.NIC Labs
> >PGP Key ID: E74E8C0C
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod