Subject: [Teas] Updates in draft-ietf-teas-yang-te-topo-19

From: Xufeng Liu <[email-masked]>
Date: Thu, 7 Mar 2019 09:10:38 -0500

As discussed in previous IETF meeting sessions, the YANG module ietf-te-types
has been moved from draft-ietf-teas-yang-te to draft-ietf-teas-yang-te-types.
Such a change allows us to move draft-ietf-teas-yang-te-topo forward
without waiting for draft-ietf-teas-yang-te, even though
draft-ietf-teas-yang-te-topo depends on the module ietf-te-types. We have
just updated draft-ietf-teas-yang-te-topo with
https://tools.ietf.org/html/draft-ietf-teas-yang-te-topo-19 to use the
module ietf-te-types in draft-ietf-teas-yang-te-types instead of
draft-ietf-teas-yang-te. The changes are:

- Used te-types:te-topology-identifier
  The grouping te-topology-identifier is now defined in ietf-te-types.
ietf-te-topology now uses this grouping for consistency.

- Used te-types:link-protection-type
  The identify link-protection-type has been defined in ietf-te-types.
ietf-te-topology now uses this new identity instead of defining its own
enumeration.

- Used te-types:objective-function-type
  The identify te-optimization-criterion in ietf-te-types has been renamed
to objective-function-type. ietf-te-topology now uses this new identity.

In addition, authors have received some implementation feedback regarding
the information-source in the model. There were use-cases where the
TE-topology is learned via different instances of the same source protocol
(different instances of the same IGP). We have introduced the following
changes in the model:

- Fixed information-source, by adding an additional leaf to indicate the
instance of the information source.

The differences introduced in the YANG model file are:
--- [email-masked]    2018-06-16 22:11:58.304834200 -0400
+++ [email-masked]    2019-02-08 12:16:04.591228810 -0500
@@ -17,8 +17,8 @@
   import ietf-te-types {
     prefix "te-types";
     reference
-      "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic
-       Engineering Tunnels and Interfaces";
+      "I-D.ietf-teas-yang-te-types: Traffic Engineering Common YANG
+       Types";
   }

   import ietf-network {
@@ -61,7 +61,7 @@
     "TE topology model for representing and manipulating technology
      agnostic TE Topologies.

-     Copyright (c) 2018 IETF Trust and the persons identified as
+     Copyright (c) 2019 IETF Trust and the persons identified as
      authors of the code.  All rights reserved.

      Redistribution and use in source and binary forms, with or
@@ -74,7 +74,7 @@
      This version of this YANG module is part of RFC XXXX; see the
      RFC itself for full legal notices.";

-  revision "2018-06-15" {
+  revision "2019-02-07" {
     description "Initial revision";
     reference "RFC XXXX: YANG Data Model for TE Topologies";
   // RFC Ed.: replace XXXX with actual RFC number and remove
@@ -243,7 +243,14 @@
       type te-info-source;
       config false;
       description
-        "Indicates the source of the information.";
+        "Indicates the type of the information source.";
+    }
+    leaf information-source-instance {
+      type string;
+      config false;
+      description
+        "The name indicating the instance of the information
+         source.";
     }
     container information-source-state {
       config false;
@@ -270,7 +277,14 @@
       type te-info-source;
       config false;
       description
-        "Indicates the source of the information.";
+        "Indicates the type of the information source.";
+    }
+    leaf information-source-instance {
+      type string;
+      config false;
+      description
+        "The name indicating the instance of the information
+         source.";
     }
     container information-source-state {
       config false;
@@ -785,25 +799,8 @@
     uses te-types:label-set-info;

     leaf link-protection-type {
-      type enumeration {
-        enum "unprotected" {
-          description "Unprotected.";
-        }
-        enum "extra-traffic" {
-          description "Extra traffic.";
-        }
-        enum "shared" {
-          description "Shared.";
-        }
-        enum "1-for-1" {
-          description "One for one protection.";
-        }
-        enum "1-plus-1" {
-          description "One plus one protection.";
-        }
-        enum "enhanced" {
-          description "Enhanced protection.";
-        }
+      type identityref {
+        base te-types:link-protection-type;
       }
       description
         "Link Protection Type desired for this link.";
@@ -952,7 +949,7 @@
     }
     uses information-source-per-link-attributes;
     list information-source-entry {
-      key "information-source";
+      key "information-source information-source-instance";
       config false;
       description
         "A list of information sources learned, including the one
@@ -1338,7 +1335,7 @@
     }
     uses information-source-per-node-attributes;
     list information-source-entry {
-      key "information-source";
+      key "information-source information-source-instance";
       config false;
       description
         "A list of information sources learned, including the one
@@ -1604,26 +1601,12 @@
   grouping te-topology-augment {
     description
       "Augmentation for TE topology.";
-    leaf provider-id {
-      type te-types:te-global-id;
-      description
-        "An identifier to uniquely identify a provider.";
-    }
-    leaf client-id {
-      type te-types:te-global-id;
-      description
-        "An identifier to uniquely identify a client.";
-    }
-    leaf te-topology-id {
-      type te-types:te-topology-id;
-      description
-        "It is presumed that a datastore will contain many
-         topologies. To distinguish between topologies it is
-         vital to have UNIQUE topology identifiers.";
-    }
+    uses te-types:te-topology-identifier;

     container te {
-      must "../provider-id and ../client-id and ../te-topology-id";
+      must "../te-topology-identifier/provider-id"
+        + " and ../te-topology-identifier/client-id"
+        + " and ../te-topology-identifier/topology-id";
       presence "TE support.";
       description
         "Indicates TE support.";
@@ -1655,7 +1638,7 @@
     }
     leaf optimization-criterion {
       type identityref {
-        base te-types:te-optimization-criterion;
+        base te-types:objective-function-type;
       }
       description
         "Optimization criterion applied to this topology.";

Thanks,
- Xufeng