Skip to main content

Early Review of draft-ietf-ippm-ioam-yang-03
review-ietf-ippm-ioam-yang-03-yangdoctors-early-bierman-2022-05-03-00

Request Review of draft-ietf-ippm-ioam-yang
Requested revision No specific revision (document currently at 13)
Type Early Review
Team YANG Doctors (yangdoctors)
Deadline 2022-05-16
Requested 2022-03-29
Requested by Tommy Pauly
Authors Tianran Zhou , Jim Guichard , Frank Brockners , Srihari Raghavan
I-D last updated 2022-05-03
Completed reviews Opsdir Last Call review of -11 by Will (Shucheng) LIU (diff)
Yangdoctors Early review of -03 by Andy Bierman (diff)
Assignment Reviewer Andy Bierman
State Completed
Request Early review on draft-ietf-ippm-ioam-yang by YANG Doctors Assigned
Posted at https://mailarchive.ietf.org/arch/msg/yang-doctors/LANgwB3cLuRJ9S2nZh-0CSqpxBo
Reviewed revision 03 (document currently at 13)
Result Ready w/issues
Completed 2022-05-03
review-ietf-ippm-ioam-yang-03-yangdoctors-early-bierman-2022-05-03-00
Draft: draft-ietf-ippm-ioam-yang-03
Module: ietf-ioam
Revision: 2022-01-25

Major Issues: none

Minor Issues:

1) when-stmts using identities

The preferred method is to use the 'derived-from-or-self'
https://datatracker.ietf.org/doc/html/rfc7950#section-10.4.2

OLD:

  when "../filter-type = 'ioam:acl-filter'";


NEW:

  when "derived-from-or-self(../filter-type, 'ioam:acl-filter')";

This correction allows for derived identities,
not just the specified identity.  The problem is that the
prefix to module mapping is only defined for the XPath function,
not for a plain string. The 'ioam' prefix must be resolved correctly
by the YANG compiler.

2)  /ioam/ioam-profiles/admin-config/enabled leaf description

        description
          "When true, IOAM configuration is enabled for the system.
           Meanwhile, the IOAM data-plane functionality is enabled.";

This object needs more clarification.

  - this object must be true before anything in the
    /ioam/ioam-profiles/ioam-profile subtree can be edited.
  - This means it cannot be changed in the same edit as the
    objects it affects.
  - if false, any config in place is used (is this true?)
  - The 2nd sentence is not clear how it relates to the YANG module.
  - Need to be clear (in terms of YANG datastore editing)
    what true or false exactly means.


3) Terse descriptions

A few description-stmts are too terse.
There must be something that can be said in a full sentence.

      leaf node-action {
        type ioam-node-action;
        description "node action";
      }

4) Use interface-ref data type

Object /ioam/ioam-info/available-interface/if-name

OLD:

     type leafref {
        path "/if:interfaces/if:interface/if:name";
     }

NEW:

     type if:interface-ref;

5) Use of ordered-by user

List /ioam/ioam-profiles/ioam-profile is user-ordered.
Describe all server processing requirements that are
related to the order of these list entries.

6) Use of plain 'string' as a list key

List key /ioam/ioam-profiles/ioam-profile/profile-name is
an unconstrained string.

Most servers do not allow corner-case string values
(such as an empty string).

Consider using yang:yang-identifier type or at least
length 1..max to disallow empty strings.

7) No mandatory functionality

There is a YANG feature for each profile so all profiles
are optional-to-implement.

Is this because there is no WG agreement on any mandatory
functionality?  Some explanation that a server is expected
to support at least one profile should be added in this case.


Nits
------

1) Some description text starts with a lowercase letter,
   and should be capitalized.

2) Some sentences start with 'And ...' which could be
   added to the previous sentence instead.

3) Remove the 'mandatory true;' statement in leaf profile-name.
   A list key leaf is already mandatory.