Skip to main content

A YANG Data Model for Network Topologies
draft-clemm-i2rs-yang-network-topo-01

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Alexander Clemm , Jan Medved , Tony Tkacik , Robert Varga , Nitin Bahadur , Hariharan Ananthakrishnan
Last updated 2014-10-10
Replaces draft-clemm-netmod-yang-network-topo
Replaced by draft-ietf-i2rs-yang-network-topo, RFC 8345
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-clemm-i2rs-yang-network-topo-01
quot;;
        leaf topo-ref {
          type leafref {
            path "/network-topology/topology/topology-id";
          }
          description
            "This leaf identifies a topology which is forms a part
             of this topology's underlay. Reference loops, where
             a topology identifies itself as its underlay, either
             directly or transitively, are not allowed.";
        }
        description
          "Identifies the topology, or topologies, that this topology
           is dependent on.";
      }
      list node {
        key "node-id";

Clemm, et al.            Expires April 13, 2015                [Page 12]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

        leaf node-id {
          type node-id;
          description
            "The identifier of a node in the topology.
             A node is specific to a topology to which it belongs.";
        }
        description
          "The list of network nodes defined for the topology.";
        list termination-point {
          key "tp-id";
          description
            "A termination point can terminate a link.
            Depending on the type of topology, a termination point
        could, for example, refer to a port or an interface.";
          leaf tp-id {
            type tp-id;
            description
              "Termination point identifier.";
          }
          list supporting-termination-point {
            key "topo-ref node-ref tp-ref";
            description
              "The leaf list identifies any termination points that
          the termination point is dependent on, or maps onto.
              Those termination points will themselves be contained
              in a supporting node.
              This dependency information can be inferred from
              the dependencies between links.  For this reason,
              this item is not separately configurable.  Hence no
              corresponding constraint needs to be articulated.
              The corresponding information is simply provided by the
              implementing system.";
            leaf topo-ref {
              type leafref {
                path "../../../supporting-node/topo-ref";
              }
              description
                "This leaf identifies in which topology the
        supporting termination point is present.";
            }
            leaf node-ref {
              type leafref {
                path "../../../supporting-node/node-ref";
              }
              description
                "This leaf identifies in which node the supporting
                 termination point is present.";
            }

Clemm, et al.            Expires April 13, 2015                [Page 13]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

            leaf tp-ref {
              type leafref {
                path "/network-topology/topology[topology-id=current()"+
                     "/../topo-ref]/node[node-id=current()" +
                     "/../node-ref]/termination-point/tp-id";
              }
              description
                "Reference to the underlay node, must be in a
                different topology";
            }
          }
        }
        list supporting-node {
          key "topo-ref node-ref";
          description
            "This list defines vertical layering information for
        nodes.
            It allows to capture for any given node, which node (or
        nodes) in the corresponding underlay topology it maps
        onto.
            A node can map to zero, one, or more nodes below it;
            accordingly there can be zero, one, or more elements in
        the list.
            If there are specific layering requirements, for example
            specific to a particular type of topology that only
        allows for certain layering relationships, the choice
            below can be augmented with additional cases.
            A list has been chosen rather than a leaf-list in order
            to provide room for augmentations, e.g. for
            statistics or priorization information associated with
            supporting nodes.";
          leaf topo-ref {
            type leafref {
              path "../../../supporting-topology/topo-ref";
            }
            description
              "This leaf identifies in which underlay topology
          supporting node is present.";
          }
          leaf node-ref {
            type leafref {
              path "/network-topology/topology[topology-id=current()" +
                   "/../topo-ref]/node/node-id";
            }
            description
              "Reference to the underlay node, must be in a
              different topology";
          }

Clemm, et al.            Expires April 13, 2015                [Page 14]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

        }
      }
      list link {
        key "link-id";
        leaf link-id {
          type link-id;
          description
            "The identifier of a link in the topology.
             A link is specific to a topology to which it belongs.";
        }
        description
          "A Network Link connects a by Local (Source) node and
          a Remote (Destination) Network Nodes via a set of the
          nodes' termination points.
          As it is possible to have several links between the same
          source and destination nodes, and as a link could
      potentially be re-homed between termination points, to
      ensure that we would always know to distinguish between
      links, every link is identified by a dedicated link
      identifier.
          Note that a link models a point-to-point link, not a
      multipoint link.
          Layering dependencies on links in underlay topologies are
          not represented as the layering information of nodes and of
          termination points is sufficient.";
        container source {
          description
            "This container holds the logical source of a particular
            link.";
          leaf source-node {
            type leafref {
              path "../../../node/node-id";
            }
            mandatory true;
            description
              "Source node identifier, must be in same topology.";
          }
          leaf source-tp {
            type leafref {
              path "../../../node[node-id=current()/../source-node]" +
                   "/termination-point/tp-id";
            }
            description
              "Termination point within source node that terminates
          the link.";
          }
        }
        container destination {

Clemm, et al.            Expires April 13, 2015                [Page 15]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

          description
            "This container holds the logical destination of a
        particular link.";
          leaf dest-node {
            type leafref {
              path "../../../node/node-id";
            }
            mandatory true;
            description
              "Destination node identifier, must be in the same
          topology.";
          }
          leaf dest-tp {
            type leafref {
              path "../../../node[node-id=current()/../dest-node]" +
                   "/termination-point/tp-id";
            }
            description
              "Termination point within destination node that
          terminates the link.";
          }
        }
        list supporting-link {
          key "topo-ref link-ref";
          description
            "Identifies the link, or links, that this link
            is dependent on.";
          leaf topo-ref {
            type leafref {
              path "../../../supporting-topology/topo-ref";
            }
            description
              "This leaf identifies in which underlay topology
          supporting link is present.";
          }
          leaf link-ref {
            type leafref {
              path "/network-topology/topology[topology-id=current()" +
                   "/../topo-ref]/link/link-id";
            }
            description
              "This leaf identifies a link which is forms a part
              of this link's underlay. Reference loops, where
              a link identifies itself as its underlay, either
              directly or transitively, are not allowed.";
          }
        }
      }

Clemm, et al.            Expires April 13, 2015                [Page 16]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

    }
  }
}
<CODE ENDS>

5.  Security Considerations

   The transport protocol used for sending the topology data MUST
   support authentication and SHOULD support encryption.  The data-model
   by itself does not create any security implications.

6.  Contributors

   The model presented in this paper was contributed to by more people
   than can be listed on the author list.  Additional contributors
   include:

   o  Ken Gray, Cisco Systems

   o  Tom Nadeau, Brocade

   o  Aleksandr Zhdankin, Cisco

7.  Acknowledgements

   We wish to acknowledge the helpful contributions, comments, and
   suggestions that were received from Martin Bjorklund, Ladislav
   Lhotka, Andy Bierman, Carlos Pignataro, Juergen Schoenwaelder, Alia
   Atlas and Benoit Claise.

8.  References

8.1.  Normative References

   [RFC1195]  Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
              dual environments", RFC 1195, December 1990.

   [RFC2328]  Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, December 2001.

   [RFC6020]  Bjorklund, M., "YANG - A Data Modeling Language for the
              Network Configuration Protocol (NETCONF)", RFC 6020,
              October 2010.

Clemm, et al.            Expires April 13, 2015                [Page 17]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

   [RFC6021]  Schoenwaelder, J., "Common YANG Data Types", RFC 6021,
              October 2010.

   [RFC6241]  Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
              Bierman, "Network Configuration Protocol (NETCONF)", RFC
              6241, June 2011.

8.2.  Informative References

   [I-D.ietf-netconf-restconf]
              Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", draft-ietf-netconf-restconf-02 (work in
              progress), October 2014.

   [I-D.ietf-netmod-yang-json]
              Lhotka, L., "JSON Encoding of Data Modeled with YANG",
              draft-ietf-netmod-yang-json-00 (work in progress), April
              2014.

   [RFC7223]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 7223, May 2014.

   [topology-use-cases]
              Medved, J., Previdi, S., Lopez, V., and S. Amante,
              "Topology API Use Cases", I-D draft-amante-i2rs-topology-
              use-cases-01, October 2013.

Authors' Addresses

   Alexander Clemm
   Cisco

   EMail: alex@cisco.com

   Jan Medved
   Cisco

   EMail: jmedved@cisco.com

   Tony Tkacik
   Cisco

   EMail: ttkacik@cisco.com

Clemm, et al.            Expires April 13, 2015                [Page 18]
Internet-Draft  draft-clemm-i2rs-yang-network-topo-01.txt   October 2014

   Robert Varga
   Cisco

   EMail: rovarga@cisco.com

   Nitin Bahadur
   Bracket Computing

   EMail: nitin_bahadur@yahoo.com

   Hariharan Ananthakrishnan
   Packet Design

   EMail: hanantha@juniper.net

Clemm, et al.            Expires April 13, 2015                [Page 19]