Subject: [OPSAWG] Rtgdir early review of draft-ietf-opsawg-l2nm-01

From: Yingzhen Qu via Datatracker <[email-masked]>
Date: Sun, 20 Dec 2020 16:44:33 -0800

Reviewer: Yingzhen Qu
Review result: Has Issues

I have been selected as the Routing Directorate reviewer for this draft. The
Routing Directorate seeks to review all routing or routing-related drafts as
they pass through IETF last call and IESG review, and sometimes on special
request. The purpose of the review is to provide assistance to the Routing ADs.
For more information about the Routing Directorate, please see
http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir

Although these comments are primarily for the use of the Routing ADs, it would
be helpful if you could consider them along with any other IETF Last Call
comments that you receive, and strive to resolve them through discussion or by
updating the draft.

Document: draft-ietf-opsawg—l2nm-01
Reviewer: Yingzhen Qu
Review Date: Dec 18, 2020
IETF LC End Date: N/A (early review)
Intended Status: Standards Track

Summary:

There are some issues that should be at least considered prior to publication.

Comments:

Thanks for working on this draft. This is a big piece of work, and there are
lots of details to be studied/verified. As an early review, I think the draft
is heading to the right direction.

I’ll continue to follow this draft (didn't have enough time to review the QoS
part) and may provide more comments later.

Regarding some of the open questions, here are my thoughts:

- Per RFC4448, control-word is missing
The function of control word is to sequence individual frames. RFC 4448 was
defined more than 10 years ago, and most of today’s applications can support
packets delivered out of order. I did a quick research, and it seems that most
vendors still support the configuration of control word. But I’m wondering
whether this should be in device model? If the authors want to include it in
this network model, I’d suggest to add it with a default value.

- Missing the option to re-write dot1q information received in access.
  - Should we see this as network level parameter or device level configuration
  parameters?
This leads to a more general question. What’s the line between a network model
and device models? It’s up to the authors and the WG to decide what to include
in the model.

Issues:

Please add examples in appendix.

What’s the relationship between vpn-svc-type and the type under
signaling-options of vpn-node? They both are identityref of
“vpn-common:vpn-signaling-type”. What will happen if they’re different values?

Same for “container connection”, there is a “encapsulation-type”, then
“l2-access-type” under “container dot1q-interface”, the relationship between
these two types needs to be clarified.

Section 4.2, the relation with network topology is a bit confusing. I know
there is an expired draft:
https://tools.ietf.org/html/draft-ogondio-opsawg-uni-topology-01, not sure
whether it’s about this draft. So some clarifications will help.

The following is actually imported from vpn-common module, but I see the
authors are overlapping. If the admin-status is meant to be the enable and
disable the VPN service since it is “rw”, I’d suggest to change the name to
admin-state instead of status, this is confusing with the real status, and it’s
typically “ro”. Also the “last-updated” may not be necessary for admin-status.

        uses vpn-common:service-status;
           +--rw status
           |  +--rw admin-status
           |  |  +--rw status?         identityref
           |  |  +--rw last-updated?   yang:date-and-time
           |  +--ro oper-status
           |     +--ro status?         identityref
           |     +--ro last-updated?   yang:date-and-time

I feel the text/description in this draft could be improved and cleaned up, but
I’m not a native speaker. Maybe RFC editor will help with this? There are names
started with capital letter, but it’s not consistent in the draft, for example:
service provider.

Nits for your consideration:

There are names started with capital letter, but it’s not consistent in the
draft, for example: service provider.

For IETF models, list name is normally plural.
          list vpn-node {
            key "vpn-node-id ne-id";
            leaf vpn-node-id {
              type vpn-common:vpn-id;
              description                                       <—— Please add
              a description here
                "";
            }

Typically list names are plural, so I’d suggest change “list vpn-service” to
“list vpn-services”, same for “vpn-node”.

“leaf Interface-mtu” should be “leaf interface-mtu”

Typo in section 3.3.3.2.2, “This container is usedd to indicate”.

The following list can be changed to a leaf-list:
                      list peer-list {
                        key "peer-ip";
                        leaf peer-ip {
                          type inet:ip-address;
                          description
                            "Peer IP";
                        }
                        description
                          "List for peer IP";
                      }

An extra “will” at section 4.3: Creating services in the l2vpn-ntw module will
will lead at some