# Documents

Module ietf-layer0-types
Common YANG Data Types for Layer 0 Networks
https://www.ietf.org/id/draft-ietf-ccamp-rfc9093-bis-12.html

Module ietf-te-types
Module ietf-te-packet-types
Common YANG Data Types for Traffic Engineering
https://datatracker.ietf.org/doc/html/draft-ietf-teas-rfc8776-update-13

Module ietf-te
Module ietf-te-device
A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths and Interfaces
https://www.ietf.org/archive/id/draft-ietf-teas-yang-te-37.html

Review Module ietf-wdm-tunnel
A YANG Data Model for WDM Tunnels
https://www.ietf.org/archive/id/draft-ietf-ccamp-wdm-tunnel-yang-03.html

# Summary

The '/te' subtree is massive and complex.
Reading the drafts that contain modules used by ietf-wdm-tunnel was
quite helpful to understand this draft.

The ietf-wdm-tunnel module augments the ietf-te module using 95 separate augment
statements.  Some of these statements augment the same node
in the '/te' subtree.  There are 11 groupings used to define many of the nodes
that are augmenting this subtree.

Although complex, a developer familiar with all relevant standards documents should
be able to implement this module.


# Minor Issues

1) No 'prefixes in data nodes' section

See example in ietf-te draft
https://www.ietf.org/archive/id/draft-ietf-teas-yang-te-37.html#name-prefixes-in-data-node-names

2) YANG Tree section

This huge list of augment summaries is difficult to understand.
Suggestions:

-  combine augments-stmts where the same target is referenced
-  break into different sections (e.g. globals, tunnels, lsps)
-  move YANG tree to an appendix at the end of the document

3) Use of comments instead of description-stmt

Tools often strip YANG comments.  The comments should be moved
into the description-stmt. The comments are better than the
terse descriptions.

Example:

  /*
   * Transceiver constraints for secondary reverse path
   * Applicable to starting, terminating and regenerator
   * transceivers.
   */
  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE secondary reverse path with transceiver
       configurations.";

    uses path-transceiver-config;
  }


4) Lack of descriptions and references

The ietf-te-types and ietf-te modules provide excellent examples
of good usage of descriptions and references.
Only one object 'line-coding-bitrate' has a reference-stmt.
Some descriptions contain only the leaf name without any dashes.

5) Commented out definitions

There are several places where the specified data is within a comment.
There are no explanations at all why these are in the module.
Add explanations or preferably remove objects that are commented out

Example:

    /*
    leaf inverse-multiplexing-mode {
      //type l0-types:inverse-multiplexing-mode;
      type string;
      description
        "The inverse multiplexing mode.";
    }
    */