Mohamed Boucadair has entered the following ballot position for
draft-ietf-ospf-sr-yang-34: Discuss

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 
https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
for more information about how to handle DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-ospf-sr-yang/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

Hi Yingzhen, Acee, Jeffrey, and Helen,

Thank you for the effort put into this specification, especially for your
perseverance to progress the spec for almost ten years. I hope we could produce
device YANG modules quicker.

The augmentations are overall adhering to the base specifications defined in
RFC8665/RFC8666. There are minor issues (but many, though) that can be easily
fixed. I found it unfortunate that we are mixing message format vs. what can be
managed (e.g., data nodes are mirroring TLVs, etc.).

I will be definitely balloting “Yes” for this specification, but I’d like to
DISCUSS some few points.

# Lack of narrative text

I would expect a minimum of narrative text to explain the set of management
function supported by the model. For example, I can’t tell whether we can store
the algo capabilities of adj SR routers, etc.

Please remember that RFC8407 says the following:

3.5.  Narrative Sections

   The narrative part MUST include an overview section that describes
   the scope and field of application of the module(s) defined by the
   specification and that specifies the relationship (if any) of these
   modules to other standards, particularly to standards containing
   other YANG modules.  The narrative part SHOULD include one or more
   sections to briefly describe the structure of the modules defined in
   the specification.

# Implicit SID types

CURRENT:
       container sid-sub-tlv {
         description
           "Used to advertise the SID/Label associated with a
            prefix or adjacency.";
         leaf length {
           type uint16;
           description
             "Length of the SID value. YANG model specification
              is necessary since it dictates the semantics of the
              SID.";
         }
         leaf sid {
           type uint32;
           description
             "Segment Identifier (SID) - A 20 bit label or
              32 bit SID. If the length is set to 3, then the
              20 rightmost bits represent a label.  If the length
              is set to 4, then the value represents a 32-bit SID.";

It is unfortunate to mix the wire encoding vs manageability function. Why a
type is not used here instead of implicitly inferring it form a length?

BTW, should that type (or length in the current version) be mandatory?
especially that the description says "is necessary"?

# Ordering control of SID/Label

How to control the order of SID/Label to follow this part from RFC8665?

  *  The originating router decides the order in which the set of SID/
      Label Range TLVs are advertised inside the Router Information
      Opaque LSA.

# Overlapping prefixes

RFC8665 states that:
  The originating router MUST NOT advertise overlapping ranges.

How the model enforces this check on SID/Label Range?

# SR capabilities

It seems that this is defined only for OSPFv3 in the module, but
rfc8665#section-3 says the following:

   These SR capabilities are advertised in the Router Information Opaque
   LSA (defined in [RFC7770]).  The TLVs defined below are applicable to
   both OSPFv2 and OSPFv3; see also [RFC8666].

Maybe I’m missing something.


----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

# Abstract: “configure” is covered by “manage” (remember the FCAPS functions)

OLD:
   This document defines a YANG data module that can be used to
   configure and manage OSPF Extensions for Segment Routing for the MPLS
   data plane.

NEW :
   This document defines a YANG data module that can be used to
   manage OSPF Extensions for Segment Routing (SR) for the MPLS
   data plane.

# Introduction: Simplify + remove “configure” as this is covered by “manage”

OLD:
   This document defines a YANG data model [RFC7950] that can be used to
   configure and manage OSPFv2 extensions for Segment Routing [RFC8665]
   and OSPFv3 extensions for Segment Routing [RFC8666] for the MPLS data
   plane.  It is an augmentation to the OSPF YANG data model [RFC9129].

NEW:
   This document defines a YANG data model [RFC7950] that can be used to
   manage Segment Routing (SR) for OSPFv2 [RFC8665]
   and OSPFv3 [RFC8666] for the MPLS data
   plane.  It is an augmentation to the OSPF YANG data model [RFC9129].

# Section 2

## (redundant) I would delete the following as this was stated few lines above.

CURRENT:
   It is an augmentation of the OSPF base model.

## The module is not only for configuration, but for state retrieval. The
document says that it adheres to the NMDA ;-)

Please update the following accordingly:

CURRENT:
   The OSPF SR YANG module requires support for the base segment routing
   module [RFC9020], which defines the global segment routing
   configuration independent of any specific routing protocol
   configuration, and support of OSPF base model [RFC9129] which defines
   basic OSPF configuration and state.

## Long tree diagram

Please move the full tree to an appendix but consider snippets to help readers
go through the model.

Refer to Section 3.4 of 8407bis for more guidance.

# Section 2.1: Check references

CURRENT:
   [RFC2328], [RFC4750], [RFC4915], [RFC5340], [RFC5643], [RFC5838],
   [RFC6991], [RFC8102], [RFC8294], [RFC8343], [RFC8476], [RFC8349],
   [RFC9587], and [I-D.ietf-rtgwg-segment-routing-ti-lfa] are referenced
   in the YANG data model.

For example, I failed to find where these ones are cited [RFC4750],  [RFC5643],
[RFC5838], [RFC8343 ], [RFC8476].

# Section 2.2

## Please use the template at
https://datatracker.ietf.org/doc/html/draft-ietf-netmod-rfc8407bis-22#name-template-for-ietf-modules

## Description issues

CURRENT:
        This YANG module defines the generic configuration
        and operational state for OSPF Segment Routing (SR), which
        is common across all of the vendor implementations. It is
        intended that the module will be extended by vendors to
        define vendor-specific OSPF Segment Routing configuration
        and operational parameters for the MPLS data plane.

* How you checked this part “is common across all of the vendor
implementations”?

* I would remove the last sentence. It is weird to make assumption about what
proprietary extensions in a STD spec!

## Consistent referencing style: The module include a mix of styles for the
reference statements. Please update accordingly. For example,

OLD: "RFC 6991 - Common YANG Data Types";
NEW: "RFC 6991: Common YANG Data Types";

## Lack of references:

For example, consider adding the following for all prefix-sid-flag

NEW:
    reference
       "RFC 8665: OSPF Extensions for Segment Routing, Section 5
        RFC 8666: OSPFv3 Extensions for Segment Routing, Section 6";

## Some description are copied from the base spec, while the statement does not
make sense for a given type.

For example, the following is included for an identity, but 'if set, ..' does
not make sense for an identity. This is not a flag bit. An example is provided
below (but other similar constructs are included in the module)

OLD:
      "Inter-Area flag. If set, advertisement is of
        inter-area type.";
NEW:
       "Inter-Area flag.";

## Lack of mapping between some identities and the flag names as defined in the
base spec. For example, the description for vi-flag should indicate that this
corresponds to the V-Flag as there is no VI-Flag in 8665/8666:

OLD:
       "Value/Index flag.";

NEW:
       "Value/Index flag. Corresponds to the Adj-SID V-Flag.";
     reference
       "RFC 8665: OSPF Extensions for Segment Routing, Section 6.1
        RFC 8666: OSPFv3 Extensions for Segment Routing, Section 7.1";

Idem, please indicate that lo-flag corresponds to the L-Flag defined in
8665/8666 as there is no LO-Flag in 8665/8666.

OLD:
      "Local/Global flag.";

NEW:
       "Local/Global flag. Corresponds to the Adj-SID L-Flag.";
     reference
       "RFC 8665: OSPF Extensions for Segment Routing, Section 6.1
        RFC 8666: OSPFv3 Extensions for Segment Routing, Section 7.1";

## No need to repeat the parent node prefix. There are many occurrences of this
in the module.

OLD: list prefix-sid-sub-tlv {
NEW: list prefix-sid {

OLD: list extended-prefix-range-tlv {
NEW: list extended-prefix-range {

OLD: container extended-prefix-range-flags {
NEW: container flags {

Etc.

## Use Singular for list/leaf-list per rfc8407bis, for example:

OLD: leaf-list flags {
NEW: leaf-list flag {

There are many occurrences in the text.

## Defaults: Please provide an authoritative reference where the default is
defined + indicate the meaning of this default.

For example, it is not clear for the definition the meaning of this value:

CURRENT:
          leaf priority {
             type uint8;
             default "128";

## Restrict using range: restrict the range rather than having this in the
description.

CURRENT:
        leaf mt-id {
           type uint8;
           description
             "Multi-topology ID. Topologies range from 0-127 and
              return of any other value would indicate an error.";

# Section 3: Security template

Please follow the template defined in
https://datatracker.ietf.org/doc/html/draft-ietf-netmod-rfc8407bis-22#name-security-considerations-sect

# Section 5: Indicate whether this is maintained by IANA or not

OLD:
         name: ietf-ospf-sr-mpls
         namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-sr-mpls
         prefix: ospf-sr-mpls
         reference: RFC XXXX

NEW:
         name: ietf-ospf-sr-mpls
         namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-sr-mpls
         prefix: ospf-sr-mpls
         maintained by IANA? N
         reference: RFC XXXX

# Section 6: Issues with classifying references

RFC6241, RFC6242, RFC8040, RFC8343, RFC8446, and RFC8476 are cited as
normative, while they shouldn’t. Please move those to be listed as Informative.

# Appendix

## Redundant examples

Do we really need to have the xml example given that the JSON encoding for the
same example is provided?

## Broken JSON example

Please validate the example using yanglint, etc.

OLD:
   {
     "routing": {
       "router-id": "1.1.1.1",
       "control-plane-protocols": {
         "control-plane-protocol": {
           "type": "ospf:ospfv2",
           "name": "OSPFv2",
           "ospf": {
             "areas": {
               "area": {
                 "area-id": "0.0.0.0",
                 "interfaces": {
                   "interface": {
                     "name": "eth0",
                     "segment-routing": {
                       "adjacency-sid": {
                         "adj-sids": {
                           "value": 3888
                         }
                       }
                     }
                   }
                 }
               }
             },
             "segment-routing": {
               "enabled": true
             },
             "protocol-srgb": {
               "srgb": {
                 "lower-bound": 4000,
                 "upper-bound": 5000
               }
             }
           }
         }
       }
     }
   }

NEW:
   {
     "ietf-routing:routing": {
       "router-id": "1.1.1.1",
       "control-plane-protocols": {
         "control-plane-protocol": {
           "type": "ietf-ospf:ospfv2",
           "name": "OSPFv2",
           "ietf-ospf:ospf": {
             "areas": {
               "area": {
                 "area-id": "0.0.0.0",
                 "interfaces": {
                   "interface": {
                     "name": "eth0",
                     "ietf-ospf-sr-mpls:segment-routing": {
                       "adjacency-sid": {
                         "adj-sids": {
                           "value": 3888
                         }
                       }
                     }
                   }
                 }
               }
             },
             "ietf-ospf-sr-mpls:segment-routing": {
               "enabled": true
             },
             "ietf-ospf-sr-mpls:protocol-srgb": {
               "srgb": {
                 "lower-bound": 4000,
                 "upper-bound": 5000
               }
             }
           }
         }
       }
     }
   }

Cheers,
Med



_______________________________________________
Lsr mailing list -- lsr@ietf.org
To unsubscribe send an email to lsr-le...@ietf.org

Reply via email to