Re: [i2rs] Benjamin Kaduk's No Objection on draft-ietf-i2rs-yang-l2-network-topology-14: (with COMMENT)

Benjamin Kaduk <> Thu, 09 July 2020 22:53 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1D9993A095D; Thu, 9 Jul 2020 15:53:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id SIO1ozMTFFeu; Thu, 9 Jul 2020 15:53:49 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A17883A095C; Thu, 9 Jul 2020 15:53:48 -0700 (PDT)
Received: from ([]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by (8.14.7/8.12.4) with ESMTP id 069Mrbx5031842 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 9 Jul 2020 18:53:39 -0400
Date: Thu, 09 Jul 2020 15:53:36 -0700
From: Benjamin Kaduk <>
To: Qin Wu <>
Cc: The IESG <>, "" <>, "" <>, "" <>
Message-ID: <>
References: <>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <>
User-Agent: Mutt/1.12.1 (2019-06-15)
Archived-At: <>
Subject: Re: [i2rs] Benjamin Kaduk's No Objection on draft-ietf-i2rs-yang-l2-network-topology-14: (with COMMENT)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Interface to The Internet Routing System \(IRS\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 09 Jul 2020 22:53:51 -0000

Hi Qin,

On Tue, Jul 07, 2020 at 01:40:23PM +0000, Qin Wu wrote:
> Hi, Ben:
> -----邮件原件-----
> 发件人: Benjamin Kaduk via Datatracker [] 
> 发送时间: 2020年7月7日 9:35
> 收件人: The IESG <>
> 抄送:;;
> 主题: Benjamin Kaduk's No Objection on draft-ietf-i2rs-yang-l2-network-topology-14: (with COMMENT)
> Benjamin Kaduk has entered the following ballot position for
> draft-ietf-i2rs-yang-l2-network-topology-14: No Objection
> When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.)
> Please refer to
> for more information about IESG DISCUSS and COMMENT positions.
> The document, along with other ballot positions, can be found here:
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> Why is the "management-address" for a l2-node an IP address?  Does that exclude any potential use of this data model for non-IP networks?
> [Qin]: No, it doesn't. management address is used to setup management channel and provide management interface for the administrator.

Ah, I think I see.
So it would only be a problem if the device didn't speak IP on its
management channel, which can be different from what L2 data-plane
technology it switches.  And if the device doesn't speak IP on that
channel, it's probably not going to have much use for this YANG module...

> Section 3
>    o  Links in the "ietf-network-topology" module are augmented as well
>       with a set of Layer 2 parameters, allowing to associate a link
>       with a name, a set of Layer 2 link attributes, and flags.
> Interesting that names for links were not part of the core network-topology module.  Are there any potential issues if other ntework types also specify a link name and there is disagreement between them?
> [Qin]: core network-topology module defined in RFC8345 doesn't specify name but specify link-id, link-id should be unique among different network types,
> For name defined in L2 topo, we follow the same design style for L3 topo, i.e., specify name for each L2 link which is optional attribute.

Okay, so if everything is using the link-id as the primary key then there's
no real issues with having name collisions.

> Section 4
> It reads a little oddly to use the flag-identity as the base type of a typedef before the identity itself is declared, but I am way out of my league here and defer to the YANG experts.
> [Qin]: pyang tool doesn't complain about this. If needed, we can change the order.

I saw the same ordering in draft-ietf-pim-igmp-mld-snooping-yang (also on
this week's telecha), so I expect that this is fine to leave as-is.

>        description
>          "VXLAN Network Identifier or VXLAN Segment ID.
>           It allows up to 16 M VXLAN segments to coexist
>           within the same administrative domain.
>           The use of value '0' is implementation-specific.";
> Is this intended as a nod to the use of 0 for the management VLAN?/ (I seem to recall this topic raising to some level of controversy in the discussions around draft-ietf-bfd-vxlan.)
> [Qin]: See Martin's reply, thanks Martin.
>      /*
>       * Features
>       */
> nit: there seems to be a spurious blank line here.
>      grouping l2-node-attributes {
>          [...]
>          leaf sys-mac-address {
>            type yang:mac-address;
>            description
>              "System MAC address.";
>          }
> Is there only one "System MAC address" per node?
> [Qin]:Yes, your are correct.
>          leaf delay {
>            type uint32;
>            units "microseconds";
>            description
>              "Link delay in microseconds.";
> I guess we don't expect to use this model for deep-space links :)
> [Qin] Correct.
>        container l2-termination-point-attributes {
>          description
>            "Containing L2 termination point attributes.";
>          leaf description {
>            type string;
>            description
>              "Port description.";
> Is a termination point always a "port", or should the description be modified?
> [Qin]: I think port and l2 termination point is equivalent, we could change to layer 2 termination point description.

It's probably good to have the descriptions be consistent if there's not an
actual difference to emphasize.

>              list qinq {
>                [...]
>                leaf svlan-id {
>                  type dot1q-types:vlanid;
>                  description
>                    "SVLAN ID.";
>                }
>                leaf cvlan-id {
>                  type dot1q-types:vlanid;
>                  description
>                    "CVLAN ID.";
> Could we perhaps expand "service" and "customer"?
> [Qin]: Sure, will do as you suggested.
>            }
>            //case ethernet
> RFC 6020 suggests that YANG comments are "C++-style", which would seem to indicate that the single-line comment could start on the same line as the closing brace.  This, in turn, would save some confusion since the block comments apply to the content after the comment, but these comments apply to the content before the comment.
> (Also later on as well.)
> [Qin]: Okay, will move single line comment to the end of closing brace.

Thanks.  (draft-ietf-pim-igmp-mld-snooping-yang already used the style with
the comment on the same line as the closing brace.)

>          leaf tp-state {
>            [...]
>              enum others {
>                value 4;
>                description
>                  "The termination point is in other state.";
>              }
> Is there a plan for how substructure of these "others" states might be added in the future?
> [Qin]: Others means unknown termination point state.

Right.  Suppose in 10 years there have accumulated five (picking an
arbitrary number) specific possible termination point states that have been
identified in addition to the four already listed here.  If we wanted to
differentiate between those (or some other, yet-unknown state), is there a
way to use or extend this model to make such a distinction possible?

> Section 6
> Thank you for updating the privacy considerations in response to the secdir review!
>    In the case of a topology that is configured, i.e. whose origin is
>    "intended", the undesired configuration could become effective and be
> Perhaps toss the word "datastore" in here somewhere to remind the less-clueful reader (i.e., me) that origin is an NMDA concept?  Though if it's sufficiently obvious, no need to do it just for me.
> [Qin] Correct, will add.
>    reflected in the operational state datastore, leading to disruption
>    of services provided via this topology might be disrupted.  For those
> nit: deduplicate "disruption"/"disrupted".
> [Qin]:Good catch.
>    reasons, it is important that the NETCONF access control model is
>    vigorously applied to prevent topology misconfiguration by
>    unauthorized clients.
> Should we condense "NACM" here since we provided the acronym at the start of the paragraph?
> [Qin]: Okay.
>    o  l2-node-attributes: A malicious client could attempt to sabotage
>       the configuration of important node attributes, such as the name
>       or the management-address.
> I don't feel a need for a text change here (since "such as" suffices), but would a change to the node's MAC address be similarly impactful?
> [Qin]: Yes, we could add if you think it needed.

It's probably okay to leave this as-is.

>    Some of the readable data nodes in this YANG module may be considered
>    sensitive or vulnerable in some network environments.  It is thus
>    important to control read access (e.g., via get, get-config, or
>    notification) to these data nodes.  In particular, the YANG model for
>    layer 2 topology may expose sensitive information, for example the
>    MAC addresses of devices.  Unrestricted use of such information can
> I think I've been told that in some environments the topology itself (especially VLAN/VXLAN identifiers) can be considered sensitive.  What's written here is consistent with that, and I don't insist on a change to the text, but wondered if that was seen as a common enough thing to be worth mentioning.
> [Qin]: I think we could mention VLAN and VXLAN identifiers as sensitive information example.
> Section 8.1
> RFC 3688 could arguably be demoted to informative, as could RFC 7951.
> Section 8.2
> If we use types defined in [IEEE802.1Qcp], that seems like a normative reference to me.
> Noting the discussion at
> about even optional features still being normative references, I think RFC 7348 would be better placed as a normative reference.  Note that there is not a process/downref issue in doing so, since it is already listed at
> I could go either way (informative or normative) for RFC 8342; presumably there's a convention to stick to.
> [Qin]: Thanks, will see how to fix these references, thanks.
> Appendix B
> I was going to reference
> and suggest IPv6 addresses as example management-addresses, but I have a lingering memory that the IPv4 form is still used to identify nodes even in v6-only environments.  Do the right thing, of course.
> [Qin]: Okay, will add IPv6 support in the JSON example.

Sounds good, thanks for the explanations and updates!