Thank you for taking on these drafts, Adrian and for a thorough review of L2NM.
Joe On 11/18/21 13:25, Adrian Farrel wrote: > I have done my review of draft-ietf-opsawg-l2nm based on revision -10 of > the draft. Sorry it took so long, but there are a few pages of text that > needed to be read. > > I have to congratulate the authors on this substantial piece of work. A > lot of time and effort must have gone into it. > > It seems to be in pretty reasonable shape to me. Of course, it would be > a surprise if such a long document didn't have a few issues, but most of > what I have below is just nits. > > Please feel free to ask for clarification or to refute anything I have > said. > > Thanks, > > Adrian > > ==== > > I see "layer 2" and "Layer 2" etc. I think in the context of L2VPN, > L2NM, etc., "Layer 2" is fine. But others "like Layer 2 connection" > are used inconsistently. > > --- > > Abstract doesn't need "(VPN)" > > --- > > Abstract > > s/providers/provider/ > s/Also, the document/Also, this document/ > s/that defines/that define/ > > --- > > 1. > > OLD > [RFC8466] defines an L2VPN Service Model (L2SM) YANG data model that > can be used for Layer 2 Virtual Private Network (L2VPN) service > ordering matters between customers and service providers. > NEW > [RFC8466] defines an L2VPN Service Model (L2SM) YANG data model that > can be used between customers and service providers for ordering > Layer 2 Virtual Private Network (L2VPN) services. > END > > --- > > 1. > > s/providers network/provider's network/ > s/Also, the document/Also, this document/ > s/rather than be limited/rather than being limited/ > > --- > > 2. Service orchestrator > > s/responsible of the CE-PE/responsible for the CE-PE/ > > --- > > 2. > > You might put "VPN node" before "VPN network access" to resolve the > reference. > > --- > > 2. Layer 2 VPN Service Network Model (L2NM) > > s/providers network/provider's network/ > > --- > > Figure 1 > > It is unclear what +++++++ > + AAA + > +++++++ means, and I don't see any text about it. > > Is "Bearer Connection" identical to "Ethernet Segment"? See the > definition of "bearer" in "VPN network access" in section 2. If they are > the same, why use two terms? If they are different, please define bearer > connection. > > --- > > Section 6 and the Ethernet Segment YANG Module comes as a bit of a > surprise. There is just one mention of that module (in Section 5). > > I think the Abstract and Introduction should at least mention the ES > module. > > --- > > Figure 3 appears to have some rather random whitespace. Needs tidying? > Perhaps tabs were used in the original. > > Figures 7, 8, 9, 11, 12, 13, 15 are pretty bad, too. > > Figures 6, 14, and 22 have this a little. > > Figure 17 is pretty much OK, but I don't know that "enumeration" needs > to be on a separate line each time. > > --- > > Section 5 > > s/is meant to manage L2VPN services/is used to manage L2VPN services/ > > --- > > Section 6 > > In reference to the structure shown in Figure 3, the following data > nodes can be included: > > Too much passive voice. Can be included: > - where? > - by whom? > - under what circumstances are they included or left out? > > --- > > Section 6 > > 'name' s/with a service/within a service/ > > 'esi-redundancy-mode' Not sure, should you... > s/Single-Active/'single-active'/ > s/All-Active/'all-active/ > > There are a number of data nodes shown in Figure 3 that don't have > explanations in the text. Is that intentional? It would seem to me that > they should be described in the same way as the other nodes. If you mean > to leave them out, perhaps say so and point at the YANG for definitive > descriptions of the other nodes. > > --- > > Section 7 > > s/is meant to manage L2VPNs/is used to manage L2VPNs/ > > --- > > Section 7.2 > > 'forwarding-profile-identifier': > Such policies may consist, for example, at applying Access > Control Lists (ACLs). > > Can't parse this. Maybe "...may consist, for example, of applying..." > > --- > > Section 7.3 > > s/Such 'vpn-id' is/Such a 'vpn-id' is/ > > > 'signaling-type': Indicates the signaling that is used for setting > s/setting/setting up/ > > s/l2tp-signaling'/'l2tp-signaling'/ > > --- > > Section 7.3 > 'underlay-transport' > (e.g., an identifier of a VPN+ instance, a virtual network > identifier, or a network slice name) > I don't know why you have "identifier" for the first two, but "name" for > a network slice. Wouldn't "identifier" serve better for all three cases > as... > (e.g., an identifier of a VPN+ instance, virtual network, or > network slice) > > 'status' > s/provision/provisioning/ > > 'vpn-node' > s/various 'description' data node/various 'description' data nodes,/ > > --- > > Section 7.3 > > Table 1: Valid Signaling Options per VPN > Service Type > > Maybe delete "Valid" > > --- > > Section 7.4 > > I think PCP needs to expanded here. (Especially since you don't mean > Port Control Protocol.) > > --- > > Section 7.5.1 > > s/'bgp-auto-discovery' container/The 'bgp-auto-discovery' container/ > > --- > > Section 7.5.2.1 > > s/this is VLAN-based/a this is VLAN-based/ > > --- > > Section 7.5.2.1 > > The value of the 'pw- > encapsulation-type' are taken from the IANA-maintained "iana-bgp- > l2-encaps" module. > > A reference to Section 8.1 would be good. > > --- > > Section 7.5.2.2 > > s/include a an/include an/ > > --- > > Section 7.5.2.3 > > The PW type ('pseudowire-type') value is taken from the > IANA-maintained "iana-pseudowire-types" module. > > A reference to Section 8.2 would be good. > > --- > > 7.6 > > As such, every 'vpn-network-access' MUST belong to > one and only one 'vpn-node'. > > I'm not sure how to interpret this. The vpn-network-access part of the > tree is anchored under vpn-node. So it cannot be in two places at once. > > Maybe this is saying that the value of the 'id' node must not appear > twice across the whole instantiation of the data model? > > --- > > Section 7.6 > > s/' global-parameters-profile'/'global-parameters-profile'/ > > --- > > Section 7.6.1 > > s/OAM 802.3 ah/OAM 802.3ah/ > > --- > > Section 7.6.4 > > 'svc-pe-to-ce-bandwidth' and 'svc-ce-to-pe-bandwidth' are missing colons > > --- > > Section 8.1 > > The "iana-bgp-l2-encaps" YANG module (Section 8.1) is designed to > echo the registry available at [IANA-BGP-L2]. > > This *is* Section 8.1 > Instead of "is designed to echo" say "echoes" > > --- > > Section 8.1 > > Appendix B lists the > initial values included in the "iana-bgp-l2-encaps" YANG module. > > Initial values of what? I think you are saying that the YANG model is > populated according to the state of the registry at the time of > publication of this document (and that new entries to the registry > should be matched with additional nodes in this model). > > So, I would be inclined to leave this out. > > And actually, I'd omit Appendix B which doesn't add anything. > > --- > > 8.1 and other subsections > > It is useful to help resolve references and import clauses by placing > some text before the <CODE BEGINS> to say something like... > > This module makes imports from [RFCaaaa], and makes references to > [RFCbbbb] and [RFCcccc]. > > --- > > Section 8.1 > > I believe the correct postal details are: > > Internet Assigned Numbers Authority (IANA) > 12025 Waterfront Drive, Suite 300 > Los Angeles CA 90094 > USA > > +1-424-254-5300 (phone) > > --- > > 8.1 and 8.2 > identity layer-2-transport { > base foo; > description > "IP Layer 2 Transport."; > reference > "RFC 3032: MPLS Label Stack Encoding"; > } > > I don't quite get this. Is the reference wrong? Is the name of the > identity and the description wrong? > > --- > > Section 8.2 > > The comments about the introductory paragraphs of 8.1 apply to 8.2. > Also the comment about the contact address. > > --- > > Section 8.2 > > Why don't atm-aal5 and atm-vp-virtual-trunk have reference clauses? > > --- > Section 8.4 > > I don't find any explanation or reference for the color-type identities > or the color-type leaf. Maybe a description for Figure 20, or a > description clause for the leaf or the base identity. > > --- > > Section 8.4 > > I'm puzzled as to which leaf nodes qualify for a default clause and > which don't. > > For example, ccm-interval and ccm-holdtime have default values. That > seems reasonable. But message-period and measurement-interval do not. > > Similarly, mac-loop-prevention and frequency have defaults, retry-timer > does not. > > Can you say how you decided which leaf nodes don't merit a default > value? Can you check that you have assigned a default everywhere one is > needed? > > --- > > Section 8.4 > > leaf ce-vlan-preservation { > type boolean; > description > "Preserve the CE-VLAN ID from ingress to egress,i.e., > CE-VLAN tag of the egress frame are identical to > those of the ingress frame that yielded this egress > service frame. If All-to-One bundling within a site > > s/,i.e.,/, i.e.,/ > s/are identical/is identical/ > s/those/that/ > > --- > > Section 8.4 > > leaf ne-id { > type string; > description > "Indicates the node's IP address."; > } > > But 7.5 had > 'ne-id': Includes a unique identifier of the network element where > the VPN node is deployed. > ...and 8.3 had > leaf ne-id { > type string; > description > "Unique identifier of the network element where the ES > is configured with a service provider network."; > > Now, I know that a node's IP address is usually used as the unique > identifier of the node, but 7.5 and 8.3 make it look like you could use > something else so long as it is unique. > > Additionally, "unique" is probably stronger than you mean, since you are > probably happy with a certain domain of uniqueness. > > Compare and contrast with > > leaf router-id { > type rt-types:router-id; > description > "A 32-bit number in the dotted-quad format that is > used to uniquely identify a node within an > autonomous system (AS). "; > } > > --- > > Section 8.4 > leaf pw-description { > type string; > description > "Includes an interface description used to > send a human-readable administrative > string describing the interface to the > remote."; > > To the remote what? > Actually, to be completely clear, are you saying that the interface > description is used to send a string to the remote? Or is this garbled? > > Could be... > Includes a human-readable description of the interface. This may be used > when communicating with remote administrative processes to identify the > interface. > > --- > > Section 8.4 > > There is a set of three members of the container 'connection' that are > of type string : l2-termination-point, local-bridge-reference, and > bearer-reference. The description classes are clear up to a point, but > "a reference to" doesn't really tell me what I should put in these > objects. > > --- > > Section 8.4 > leaf port-speed { > type uint32; > description > "Port speed."; > } > > This is missing a units clause. And I would be slightly worried that > uint32 might not be future-proof with some possible units. > > --- > > Section 8.4 > > leaf ce-id { > type uint16; > description > "The PE must know the set of virtual > circuits connecting it to the CE and a > CE ID identifying the CE within the VPN."; > > The first part of the description ("set of VCs connecting to the CE") is > true, but is it relevant to this leaf? > > --- > > Section 9 > > The YANG modules specified in this document defines schema for data > that is designed to be accessed via network management protocols such > as NETCONF [RFC6241] or RESTCONF [RFC8040] . The lowest NETCONF layer > > s/defines schema/define schemas/ > s/that is/that are/ > s/] ./]./ > > --- > > I think 10.2 and 10.3 should make it clearer that IANA is requested to > maintain the two YANG models. > > --- > > Thanks for all the examples. They are helpful. > > --- > > A.1 > > s/used to configured/used to configure/ > > --- > > A.4 > > s/depictes/depicts/ > > --- > > A.4 > > In Figure 29 is it intentional that the left-hand end of the Emulated > Service is at the edge of the CE, but the right-hand end is in the > middle of the CE. > > --- > > A.6 > > s/In such as configuration/In such a configuration/ > > --- > > I'm unclear of the purpose of Appendixes B and C. They seem to repeat > information that is found in the relevant IANA registries. > > _______________________________________________ > OPSAWG mailing list > OPSAWG@ietf.org > https://www.ietf.org/mailman/listinfo/opsawg > _______________________________________________ OPSAWG mailing list OPSAWG@ietf.org https://www.ietf.org/mailman/listinfo/opsawg