diff options
Diffstat (limited to 'doc/rfc/rfc8346.txt')
| -rw-r--r-- | doc/rfc/rfc8346.txt | 1963 | 
1 files changed, 1963 insertions, 0 deletions
diff --git a/doc/rfc/rfc8346.txt b/doc/rfc/rfc8346.txt new file mode 100644 index 0000000..ce6db97 --- /dev/null +++ b/doc/rfc/rfc8346.txt @@ -0,0 +1,1963 @@ + + + + + + +Internet Engineering Task Force (IETF)                          A. Clemm +Request for Comments: 8346                                        Huawei +Category: Standards Track                                      J. Medved +ISSN: 2070-1721                                                    Cisco +                                                                R. Varga +                                               Pantheon Technologies SRO +                                                                  X. Liu +                                                                   Jabil +                                                      H. Ananthakrishnan +                                                           Packet Design +                                                              N. Bahadur +                                                       Bracket Computing +                                                              March 2018 + + +                A YANG Data Model for Layer 3 Topologies + +Abstract + +   This document defines a YANG data model for Layer 3 network +   topologies. + +Status of This Memo + +   This is an Internet Standards Track document. + +   This document is a product of the Internet Engineering Task Force +   (IETF).  It represents the consensus of the IETF community.  It has +   received public review and has been approved for publication by the +   Internet Engineering Steering Group (IESG).  Further information on +   Internet Standards is available in Section 2 of RFC 7841. + +   Information about the current status of this document, any errata, +   and how to provide feedback on it may be obtained at +   https://www.rfc-editor.org/info/rfc8346. + + + + + + + + + + + + + + + + +Clemm, et al.                Standards Track                    [Page 1] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +Copyright Notice + +   Copyright (c) 2018 IETF Trust and the persons identified as the +   document authors.  All rights reserved. + +   This document is subject to BCP 78 and the IETF Trust's Legal +   Provisions Relating to IETF Documents +   (https://trustee.ietf.org/license-info) in effect on the date of +   publication of this document.  Please review these documents +   carefully, as they describe your rights and restrictions with respect +   to this document.  Code Components extracted from this document must +   include Simplified BSD License text as described in Section 4.e of +   the Trust Legal Provisions and are provided without warranty as +   described in the Simplified BSD License. + +Table of Contents + +   1. Introduction ....................................................3 +   2. Key Words .......................................................3 +   3. Definitions and Acronyms ........................................4 +   4. Model Structure .................................................5 +   5. Layer 3 Unicast Topology Model Overview .........................6 +   6. Layer 3 Unicast Topology YANG Module ............................7 +   7. Interactions with Other YANG Modules ...........................15 +   8. IANA Considerations ............................................15 +   9. Security Considerations ........................................16 +   10. References ....................................................17 +      10.1. Normative References .....................................17 +      10.2. Informative References ...................................19 +   Appendix A.  Companion YANG Data Model for Implementations Not +                Compliant with NMDA ..................................20 +   Appendix B.  Extending the Model ..................................24 +     B.1.  Example OSPF Topology .....................................24 +       B.1.1.  Model Overview ........................................24 +       B.1.2.  OSPF Topology YANG Module .............................26 +   Appendix C.  An Example ...........................................29 +   Acknowledgments ...................................................34 +   Contributors ......................................................34 +   Authors' Addresses ................................................35 + + + + + + + + + + + + +Clemm, et al.                Standards Track                    [Page 2] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +1.  Introduction + +   This document introduces a YANG [RFC7950] [RFC6991] data model for +   Layer 3 (L3) network topologies, specifically Layer 3 Unicast.  The +   model allows an application to have a holistic view of the topology +   of a Layer 3 network, all contained in a single conceptual YANG +   datastore.  The data model builds on top of, and augments, the data +   model for network topologies defined in [RFC8345]. + +   This document also shows how the model can be further refined to +   cover different Layer 3 Unicast topology types.  For this purpose, an +   example model is introduced that covers OSPF [RFC2328].  This example +   is intended purely for illustrative purpose; we expect that a +   complete OSPF model will be more comprehensive and refined than the +   example shown in this document. + +   There are multiple applications for a topology data model.  A number +   of use cases have been defined in Section 6 of [USECASE-REQS].  For +   example, nodes within the network can use the data model to capture +   their understanding of the overall network topology and expose it to +   a network controller.  A network controller can then use the +   instantiated topology data to compare and reconcile its own view of +   the network topology with that of the network elements that it +   controls.  Alternatively, nodes within the network could propagate +   this understanding to compare and reconcile this understanding either +   amongst themselves or with help of a controller.  Beyond the network +   element itself, a network controller might even use the data model to +   represent its view of the topology that it controls and expose it to +   applications north of itself. + +   The data model for Layer 3 Unicast topologies defined in this +   document is specified in the YANG module "ietf-l3-unicast-topology". +   This YANG module augments the general network topology model defined +   in [RFC8345] with information specific to Layer 3 Unicast.  In this +   way, the general topology model is extended to be able to meet the +   needs of Layer 3 Unicast topologies. + +   Information that is kept in the Traffic Engineering Database (TED) +   will be specified in a separate model [YANG-TE] and is outside the +   scope of this specification. + +2.  Key Words + +   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", +   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and +   "OPTIONAL" in this document are to be interpreted as described in +   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all +   capitals, as shown here. + + + +Clemm, et al.                Standards Track                    [Page 3] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +3.  Definitions and Acronyms + +   This document defines a YANG data model and thus uses many terms +   defined in YANG [RFC7950] and NETCONF [RFC6241].  Some terms, such as +   "datastore" and "data tree", are repeated here for clarity and +   context. + +   Datastore:  A conceptual place to store and access information.  A +      datastore might be implemented, for example, using files, a +      database, flash memory locations, or combinations thereof.  A +      datastore maps to an instantiated YANG data tree (definition +      adopted from [RFC8342]). + +   Data subtree:  An instantiated data node and the data nodes that are +      hierarchically contained within it. + +   IS-IS:  Intermediate System to Intermediate System protocol + +   LSP:  Label Switched Path + +   NETCONF:  Network Configuration Protocol + +   NMDA:  Network Management Datastore Architecture + +   OSPF:  Open Shortest Path First (a link-state routing protocol) + +   URI:  Uniform Resource Identifier + +   TED:  Traffic Engineering Database + +   YANG:  YANG is a data modeling language used to model configuration +      data, state data, Remote Procedure Calls, and notifications for +      network management protocols [RFC7950]. + + + + + + + + + + + + + + + + + + +Clemm, et al.                Standards Track                    [Page 4] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +4.  Model Structure + +   The Layer 3 Unicast topology model is defined by YANG module +   "l3-unicast-topology".  The relationship of this module with other +   YANG modules is roughly depicted in the figure below. + +                      +-----------------------------+ +                      |  +-----------------------+  | +                      |  |      ietf-network     |  | +                      |  +----------^------------+  | +                      |             |               | +                      |  +-----------------------+  | +                      |  | ietf-network-topology |  | +                      |  +----------+------------+  | +                      +-------------^---------------+ +                                    | +                                    | +                       +------------^-------------+ +                       | ietf-l3-unicast-topology | +                       +------------^-------------+ +                                    | +                                    | +                        +-----------^-----------+ +                        | example-ospf-topology | +                        +-----------------------+ + +                     Figure 1: Overall Model Structure + +   YANG modules "ietf-network" and "ietf-network-topology" collectively +   define the basic network topology model [RFC8345].  YANG module +   "ietf-l3-unicast-topology" augments those models with additional +   definitions needed to represent Layer 3 Unicast topologies.  This +   module in turn can be augmented by YANG modules with additional +   definitions for specific types of Layer 3 Unicast topologies, such as +   OSPF and IS-IS topologies. + +   The YANG modules "ietf-network" and "ietf-network-topology" are +   designed to be used in conjunction with implementations that support +   the Network Management Datastore Architecture (NMDA) defined in +   [RFC8342].  Accordingly, the same is true for the YANG modules that +   augment it.  In order to allow implementations to use the model even +   in cases when NMDA is not supported, companion YANG modules (that +   SHOULD NOT be supported by implementations that support NMDA) are +   defined in Appendix A. + + + + + + + +Clemm, et al.                Standards Track                    [Page 5] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +5.  Layer 3 Unicast Topology Model Overview + +   The Layer 3 Unicast topology model is defined by YANG module +   "ietf-l3-unicast-topology".  Its structure is depicted in the +   following diagram.  The notation syntax follows [RFC8340].  For +   purposes of brevity, notifications are not depicted. + +   module: ietf-l3-unicast-topology +     augment /nw:networks/nw:network/nw:network-types: +       +--rw l3-unicast-topology! +     augment /nw:networks/nw:network: +       +--rw l3-topology-attributes +          +--rw name?   string +          +--rw flag*   l3-flag-type +     augment /nw:networks/nw:network/nw:node: +       +--rw l3-node-attributes +          +--rw name?        inet:domain-name +          +--rw flag*        node-flag-type +          +--rw router-id*   rt-types:router-id +          +--rw prefix* [prefix] +             +--rw prefix    inet:ip-prefix +             +--rw metric?   uint32 +             +--rw flag*     prefix-flag-type +     augment /nw:networks/nw:network/nt:link: +       +--rw l3-link-attributes +          +--rw name?      string +          +--rw flag*      link-flag-type +          +--rw metric1?   uint64 +          +--rw metric2?   uint64 +     augment /nw:networks/nw:network/nw:node/nt:termination-point: +       +--rw l3-termination-point-attributes +          +--rw (termination-point-type)? +             +--:(ip) +             |  +--rw ip-address*       inet:ip-address +             +--:(unnumbered) +             |  +--rw unnumbered-id?    uint32 +             +--:(interface-name) +                +--rw interface-name?   string + +   The module augments the original "ietf-network" and "ietf-network- +   topology" modules as follows: + +   o  A new network topology type is introduced, l3-unicast-topology. +      The corresponding container augments the network-types of the +      "ietf-network" module. + + + + + + +Clemm, et al.                Standards Track                    [Page 6] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +   o  Additional topology attributes are introduced, defined in a +      grouping that augments the "network" list of the network module. +      The attributes include a name for the topology and a set of flags +      (represented by a leaf-list).  Each type of flag is represented by +      a separate identity.  This allows additional flags to be +      introduced in augmenting modules using additional identities +      without needing to revise this module. + +   o  Additional data objects for nodes are introduced by augmenting the +      "node" list of the network module.  New objects include a set of +      flags and a list of prefixes.  Each prefix includes an IP prefix, +      a metric, and a prefix-specific set of flags. + +   o  Links (in the "ietf-network-topology" module) are augmented with a +      set of parameters that allow a link to be associated with a link +      name, another set of flags, and a link metric. + +   o  Termination points (in the "ietf-network-topology" module) are +      augmented with a choice of IP address, identifier, or name. + +   In addition, the module defines a set of notifications to alert +   clients of any events concerning links, nodes, prefixes, and +   termination points.  Each notification includes an indication of the +   type of event, the topology from which it originated, and the +   affected node, link, prefix, or termination point.  Also, as a +   convenience to applications, additional data of the affected node, +   link, prefix, or termination point is included.  While this makes +   notifications larger in volume than they need to be, it avoids the +   need for subsequent retrieval of context information that might have +   changed in the meantime. + +6.  Layer 3 Unicast Topology YANG Module + +   This YANG module makes reference to the following documents: +   [RFC2863] and [RFC8343]. + +   <CODE BEGINS> file "ietf-l3-unicast-topology@2018-02-26.yang" +   module ietf-l3-unicast-topology { +     yang-version 1.1; +     namespace +       "urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology"; +     prefix "l3t"; +     import ietf-network { +       prefix "nw"; +     } +     import ietf-network-topology { +       prefix "nt"; +     } + + + +Clemm, et al.                Standards Track                    [Page 7] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +     import ietf-inet-types { +       prefix "inet"; +     } +     import ietf-routing-types { +       prefix "rt-types"; +     } +     organization +       "IETF I2RS (Interface to the Routing System) Working Group"; +     contact +       "WG Web:    <https://datatracker.ietf.org/wg/i2rs/> +        WG List:   <mailto:i2rs@ietf.org> +        Editor:    Alexander Clemm +                   <mailto:ludwig@clemm.org> +        Editor:    Jan Medved +                   <mailto:jmedved@cisco.com> +        Editor:    Robert Varga +                   <mailto:robert.varga@pantheon.tech> +        Editor:    Xufeng Liu +                   <mailto:xufeng.liu.ietf@gmail.com> +        Editor:    Nitin Bahadur +                   <mailto:nitin_bahadur@yahoo.com> +        Editor:    Hariharan Ananthakrishnan +                   <mailto:hari@packetdesign.com>"; +     description +       "This module defines a model for Layer 3 Unicast +        topologies. + +        Copyright (c) 2018 IETF Trust and the persons identified as +        authors of the code.  All rights reserved. + +        Redistribution and use in source and binary forms, with or +        without modification, is permitted pursuant to, and subject +        to the license terms contained in, the Simplified BSD License +        set forth in Section 4.c of the IETF Trust's Legal Provisions +        Relating to IETF Documents +        (https://trustee.ietf.org/license-info). + +        This version of this YANG module is part of +        RFC 8346; see the RFC itself for full legal notices."; +     revision "2018-02-26" { +       description +         "Initial revision."; +       reference +         "RFC 8346: A YANG Data Model for Layer 3 Topologies"; +     } + +     identity flag-identity { +       description "Base type for flags"; + + + +Clemm, et al.                Standards Track                    [Page 8] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +     } + +     typedef l3-event-type { +       type enumeration { +         enum "add" { +           description +             "A Layer 3 node, link, prefix, or termination point has +             been added"; +         } +         enum "remove" { +           description +             "A Layer 3 node, link, prefix, or termination point has +             been removed"; +         } +         enum "update" { +           description +             "A Layer 3 node, link, prefix, or termination point has +             been updated"; +         } +       } +       description "Layer 3 event type for notifications"; +     } + +     typedef prefix-flag-type { +       type identityref { +         base "flag-identity"; +       } +       description "Prefix flag attributes"; +     } + +     typedef node-flag-type { +       type identityref { +         base "flag-identity"; +       } +       description "Node flag attributes"; +     } + +     typedef link-flag-type { +       type identityref { +         base "flag-identity"; +       } +       description "Link flag attributes"; +     } + +     typedef l3-flag-type { +       type identityref { +         base "flag-identity"; +       } + + + +Clemm, et al.                Standards Track                    [Page 9] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +       description "L3 flag attributes"; +     } + +     grouping l3-prefix-attributes { +       description +         "L3 prefix attributes"; +       leaf prefix { +         type inet:ip-prefix; +         description +           "IP prefix value"; +       } +       leaf metric { +         type uint32; +         description +           "Prefix metric"; +       } +       leaf-list flag { +         type prefix-flag-type; +         description +           "Prefix flags"; +       } +     } +     grouping l3-unicast-topology-type { +       description "Identifies the topology type to be L3 Unicast."; +       container l3-unicast-topology { +         presence "indicates L3 Unicast topology"; +         description +           "The presence of the container node indicates L3 Unicast +           topology"; +       } +     } +     grouping l3-topology-attributes { +       description "Topology scope attributes"; +       container l3-topology-attributes { +         description "Contains topology attributes"; +         leaf name { +           type string; +           description +             "Name of the topology"; +         } +         leaf-list flag { +           type l3-flag-type; +           description +             "Topology flags"; +         } +       } +     } +     grouping l3-node-attributes { + + + +Clemm, et al.                Standards Track                   [Page 10] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +       description "L3 node scope attributes"; +       container l3-node-attributes { +         description +           "Contains node attributes"; +         leaf name { +           type inet:domain-name; +           description +             "Node name"; +         } +         leaf-list flag { +           type node-flag-type; +           description +             "Node flags"; +         } +         leaf-list router-id { +           type rt-types:router-id; +           description +             "Router-id for the node"; +         } +         list prefix { +           key "prefix"; +           description +             "A list of prefixes along with their attributes"; +           uses l3-prefix-attributes; +         } +       } +     } +     grouping l3-link-attributes { +       description +         "L3 link scope attributes"; +       container l3-link-attributes { +         description +           "Contains link attributes"; +         leaf name { +           type string; +           description +             "Link Name"; +         } +         leaf-list flag { +           type link-flag-type; +           description +             "Link flags"; +         } +         leaf metric1 { +           type uint64; +           description +               "Link Metric 1"; +         } + + + +Clemm, et al.                Standards Track                   [Page 11] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +         leaf metric2 { +           type uint64; +           description +               "Link Metric 2"; +         } +       } +     } +     grouping l3-termination-point-attributes { +       description "L3 termination point scope attributes"; +       container l3-termination-point-attributes { +         description +           "Contains termination point attributes"; +         choice termination-point-type { +           description +             "Indicates the termination point type"; +           case ip { +             leaf-list ip-address { +               type inet:ip-address; +               description +                 "IPv4 or IPv6 address."; +             } +           } +           case unnumbered { +             leaf unnumbered-id { +               type uint32; +               description +                 "Unnumbered interface identifier. +                  The identifier will correspond to the ifIndex value +                  of the interface, i.e., the ifIndex value of the +                  ifEntry that represents the interface in +                  implementations where the Interfaces Group MIB +                  (RFC 2863) is supported."; +               reference +                 "RFC 2863: The Interfaces Group MIB"; +             } +           } +           case interface-name { +             leaf interface-name { +               type string; +               description +                 "Name of the interface.  The name can (but does not +                  have to) correspond to an interface reference of a +                  containing node's interface, i.e., the path name of a +                  corresponding interface data node on the containing +                  node reminiscent of data type interface-ref defined +                  in RFC 8343. It should be noted that data type +                  interface-ref of RFC 8343 cannot be used directly, + + + + +Clemm, et al.                Standards Track                   [Page 12] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +                  as this data type is used to reference an interface +                  in a datastore of a single node in the network, not +                  to uniquely reference interfaces across a network."; +               reference +                 "RFC 8343: A YANG Data Model for Interface Management"; +             } +           } +         } +       } +     } +     augment "/nw:networks/nw:network/nw:network-types" { +       description +         "Introduces new network type for L3 Unicast topology"; +       uses l3-unicast-topology-type; +     } +     augment "/nw:networks/nw:network" { +       when "nw:network-types/l3t:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description +           "L3 Unicast for the network as a whole"; +       uses l3-topology-attributes; +     } +     augment "/nw:networks/nw:network/nw:node" { +       when "../nw:network-types/l3t:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description +           "L3 Unicast node-level attributes "; +       uses l3-node-attributes; +     } +     augment "/nw:networks/nw:network/nt:link" { +       when "../nw:network-types/l3t:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description +         "Augments topology link attributes"; +       uses l3-link-attributes; +     } +     augment "/nw:networks/nw:network/nw:node/" +            +"nt:termination-point" { +       when "../../nw:network-types/l3t:l3-unicast-topology" { + + + +Clemm, et al.                Standards Track                   [Page 13] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description "Augments topology termination point configuration"; +       uses l3-termination-point-attributes; +     } +     notification l3-node-event { +       description +         "Notification event for L3 node"; +       leaf l3-event-type { +         type l3-event-type; +         description +           "Event type"; +       } +       uses nw:node-ref; +       uses l3-unicast-topology-type; +       uses l3-node-attributes; +     } +     notification l3-link-event { +       description +         "Notification event for L3 link"; +       leaf l3-event-type { +         type l3-event-type; +         description +           "Event type"; +       } +       uses nt:link-ref; +       uses l3-unicast-topology-type; +       uses l3-link-attributes; +     } +     notification l3-prefix-event { +       description +         "Notification event for L3 prefix"; +       leaf l3-event-type { +         type l3-event-type; +         description +           "Event type"; +       } +       uses nw:node-ref; +       uses l3-unicast-topology-type; +       container prefix { +         description +           "Contains L3 prefix attributes"; +         uses l3-prefix-attributes; +       } +     } +     notification termination-point-event { + + + +Clemm, et al.                Standards Track                   [Page 14] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +       description +         "Notification event for L3 termination point"; +       leaf l3-event-type { +         type l3-event-type; +         description +           "Event type"; +       } +       uses nt:tp-ref; +       uses l3-unicast-topology-type; +       uses l3-termination-point-attributes; +     } +   } + +   <CODE ENDS> + +7.  Interactions with Other YANG Modules + +   As described in Section 4, the model defined in this document builds +   on top of, and augments, the YANG modules defined in [RFC8345]. +   Specifically, the "ietf-l3-unicast-topology" module augments the +   "ietf-network" and "ietf-network-topology" modules.  In addition, the +   model makes use of data types defined in [RFC6991]. + +   The model defined in this document is a protocol-independent YANG +   data model with Layer 3 topology information.  It is separate from +   and not linked with data models that are used to configure routing +   protocols or routing information, e.g., "ietf-routing" [RFC8022] and +   "ietf-rib-extension" [YANG-RIB].  That said, the model does import a +   type definition from model "ietf-routing-types" [RFC8294]. + +   The model complies with the requirements for the ephemeral state +   found in [RFC8242].  For ephemeral topology data that is server +   provided, the process tasked with maintaining topology information +   will load information from the routing process (such as OSPF) into +   the data model without relying on a configuration datastore. + +8.  IANA Considerations + +   This document registers the following namespace URIs in the "IETF XML +   Registry" [RFC3688]: + +   URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology +   Registrant Contact: The IESG. +   XML: N/A; the requested URI is an XML namespace. + +   URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state +   Registrant Contact: The IESG. +   XML: N/A; the requested URI is an XML namespace. + + + +Clemm, et al.                Standards Track                   [Page 15] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +   This document registers the following YANG modules in the "YANG +   Module Names" registry [RFC6020]: + +   Name: ietf-l3-unicast-topology +   Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology +   Prefix: l3t +   Reference: RFC 8346 + +   Name: ietf-l3-unicast-topology-state +   Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state +   Prefix: l3t-s +   Reference: RFC 8346 + +9.  Security Considerations + +   The YANG modules specified in this document define a schema for data +   that is designed to be accessed via network management protocols such +   as NETCONF [RFC6241] or RESTCONF [RFC8040].  The lowest NETCONF layer +   is the secure transport layer, and the mandatory-to-implement secure +   transport is Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer +   is HTTPS, and the mandatory-to-implement secure transport is TLS +   [RFC5246]. + +   The NETCONF access control model [RFC8341] provides the means to +   restrict access for particular NETCONF or RESTCONF users to a +   preconfigured subset of all available NETCONF or RESTCONF protocol +   operations and content. + +   In general, Layer 3 Unicast topologies are system-controlled and +   provide ephemeral topology information.  In an NMDA-compliant server, +   they are only part of <operational>, which provides read-only access +   to clients, so they are less vulnerable.  That said, the YANG modules +   do in principle allow information to be configurable. + +   There are a number of data nodes defined in these YANG modules that +   are writable/creatable/deletable (i.e., config true, which is the +   default).  These data nodes may be considered sensitive or vulnerable +   in some network environments.  Write operations (e.g., edit-config) +   to these data nodes without proper protection can have a negative +   effect on network operations.  These are the subtrees and data nodes +   and their sensitivity/vulnerability in the "ietf-l3-unicast-topology" +   module: + +   o  l3-topology-attributes: A malicious client could attempt to +      sabotage the configuration of any of the contained attributes, +      i.e., the name or the flag data nodes. + + + + + +Clemm, et al.                Standards Track                   [Page 16] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +   o  l3-node-attributes: A malicious client could attempt to sabotage +      the configuration of important node attributes, such as the +      router-id or node prefix. + +   o  l3-link-attributes: A malicious client could attempt to sabotage +      the configuration of important link attributes, such as name, +      flag, and metrics of the link. + +   o  l3-termination-point-attributes: A malicious client could attempt +      to sabotage the configuration information of a termination point, +      such as the termination point's IP address and interface name. + +10.  References + +10.1.  Normative References + +   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate +              Requirement Levels", BCP 14, RFC 2119, +              DOI 10.17487/RFC2119, March 1997, +              <https://www.rfc-editor.org/info/rfc2119>. + +   [RFC2328]  Moy, J., "OSPF Version 2", STD 54, RFC 2328, +              DOI 10.17487/RFC2328, April 1998, +              <https://www.rfc-editor.org/info/rfc2328>. + +   [RFC2863]  McCloghrie, K. and F. Kastenholz, "The Interfaces Group +              MIB", RFC 2863, DOI 10.17487/RFC2863, June 2000, +              <https://www.rfc-editor.org/info/rfc2863>. + +   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, +              DOI 10.17487/RFC3688, January 2004, +              <https://www.rfc-editor.org/info/rfc3688>. + +   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security +              (TLS) Protocol Version 1.2", RFC 5246, +              DOI 10.17487/RFC5246, August 2008, +              <https://www.rfc-editor.org/info/rfc5246>. + +   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for +              the Network Configuration Protocol (NETCONF)", RFC 6020, +              DOI 10.17487/RFC6020, October 2010, +              <https://www.rfc-editor.org/info/rfc6020>. + +   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., +              and A. Bierman, Ed., "Network Configuration Protocol +              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, +              <https://www.rfc-editor.org/info/rfc6241>. + + + + +Clemm, et al.                Standards Track                   [Page 17] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure +              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, +              <https://www.rfc-editor.org/info/rfc6242>. + +   [RFC6991]  Schoenwaelder, J., Ed., "Common YANG Data Types", +              RFC 6991, DOI 10.17487/RFC6991, July 2013, +              <https://www.rfc-editor.org/info/rfc6991>. + +   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", +              RFC 7950, DOI 10.17487/RFC7950, August 2016, +              <https://www.rfc-editor.org/info/rfc7950>. + +   [RFC7951]  Lhotka, L., "JSON Encoding of Data Modeled with YANG", +              RFC 7951, DOI 10.17487/RFC7951, August 2016, +              <https://www.rfc-editor.org/info/rfc7951>. + +   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF +              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, +              <https://www.rfc-editor.org/info/rfc8040>. + +   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC +              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, +              May 2017, <https://www.rfc-editor.org/info/rfc8174>. + +   [RFC8294]  Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, +              "Common YANG Data Types for the Routing Area", RFC 8294, +              DOI 10.17487/RFC8294, December 2017, +              <https://www.rfc-editor.org/info/rfc8294>. + +   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration +              Access Control Model", STD 91, RFC 8341, +              DOI 10.17487/RFC8341, March 2018, +              <https://www.rfc-editor.org/info/rfc8341>. + +   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., +              and R. Wilton, "Network Management Datastore Architecture +              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, +              <https://www.rfc-editor.org/info/rfc8342>. + +   [RFC8345]  Clemm, A., Medved, J., Varga, R., Bahadur, N., +              Ananthakrishnan, H., and X. Liu, "A YANG Data Model for +              Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March +              2018, <https://www.rfc-editor.org/info/rfc8345>. + + + + + + + + +Clemm, et al.                Standards Track                   [Page 18] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +10.2.  Informative References + +   [RFC8022]  Lhotka, L. and A. Lindem, "A YANG Data Model for Routing +              Management", RFC 8022, DOI 10.17487/RFC8022, November +              2016, <https://www.rfc-editor.org/info/rfc8022>. + +   [RFC8242]  Haas, J. and S. Hares, "Interface to the Routing System +              (I2RS) Ephemeral State Requirements", RFC 8242, +              DOI 10.17487/RFC8242, September 2017, +              <https://www.rfc-editor.org/info/rfc8242>. + +   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", +              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, +              <https://www.rfc-editor.org/info/rfc8340>. + +   [RFC8343]  Bjorklund, M., "A YANG Data Model for Interface +              Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, +              <https://www.rfc-editor.org/info/rfc8343>. + +   [USECASE-REQS] +              Hares, S. and M. Chen, "Summary of I2RS Use Case +              Requirements", Work in Progress, draft-ietf-i2rs-usecase- +              reqs-summary-03, November 2016. + +   [YANG-RIB] Lindem, A. and Y. Qu, "RIB YANG Data Model", Work in +              Progress, draft-acee-rtgwg-yang-rib-extend-06, January +              2018. + +   [YANG-TE]  Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and +              O. Gonzalez de Dios, "YANG Data Model for Traffic +              Engineering (TE) Topologies", Work in Progress, +              draft-ietf-teas-yang-te-topo-15, February 2018. + + + + + + + + + + + + + + + + + + + +Clemm, et al.                Standards Track                   [Page 19] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +Appendix A.  Companion YANG Data Model for Implementations Not Compliant +             with NMDA + +   The YANG module "ietf-l3-unicast-topology" defined in this document +   augments two modules defined in [RFC8345]: "ietf-network" and +   "ietf-network-topology".  These two modules were designed to be used +   in conjunction with implementations that support the Network +   Management Datastore Architecture (NMDA) defined in [RFC8342].  In +   order to allow implementations to use the model in cases when NMDA is +   not supported, [RFC8345] defines two companion modules, +   "ietf-network- state" and "ietf-network-topology-state", that +   represent state models of networks and network topologies, +   respectively. + +   In order to be able to use the model for Layer 3 topologies defined +   in this document in conjunction with implementations not compliant +   with NMDA, a corresponding companion module needs to be introduced as +   well.  This companion module, "ietf-l3-unicast-topology-state", +   mirrors "ietf-l3-unicast-topology".  However, the module augments +   "ietf-network-state" and "ietf-network-topology-state" (instead of +   "ietf-network" and "ietf-network-topology"), and all of its data +   nodes are non-configurable. + +   Similar considerations apply to any module that augments "ietf-l3- +   unicast-topology", such as the example module defined in Appendix B +   (i.e., example-ospf-topology).  For implementations that are not +   compliant with NMDA, companion modules that represent state +   information and that are non-configurable will need to be introduced. +   These modules augment "ietf-l3-unicast-topology-state" instead of +   "ietf-l3-unicast-topology".  Companion modules for the example module +   defined in Appendix B are not provided (since it is just an example). + +   Like "ietf-network-state" and "ietf-network-topology-state", +   "ietf-l3-unicast-topology" SHOULD NOT be supported by implementations +   that support NMDA.  The module is therefore defined in an appendix. + +   The definition of the module follows below.  As the structure of the +   module mirrors that of its underlying module, the YANG tree is not +   depicted separately. + +   <CODE BEGINS> file "ietf-l3-unicast-topology-state@2018-02-26.yang" +   module ietf-l3-unicast-topology-state { +     yang-version 1.1; +     namespace +       "urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state"; +     prefix "l3t-s"; +     import ietf-network-state { +       prefix "nw-s"; + + + +Clemm, et al.                Standards Track                   [Page 20] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +     } +     import ietf-network-topology-state { +       prefix "nt-s"; +     } +     import ietf-l3-unicast-topology { +       prefix "l3t"; +     } +     organization +       "IETF I2RS (Interface to the Routing System) Working Group"; +     contact +       "WG Web:    <https://datatracker.ietf.org/wg/i2rs/> +        WG List:   <mailto:i2rs@ietf.org> +        Editor:    Alexander Clemm +                   <mailto:ludwig@clemm.org> +        Editor:    Jan Medved +                   <mailto:jmedved@cisco.com> +        Editor:    Robert Varga +                   <mailto:robert.varga@pantheon.tech> +        Editor:    Xufeng Liu +                   <mailto:xufeng.liu.ietf@gmail.com> +        Editor:    Nitin Bahadur +                   <mailto:nitin_bahadur@yahoo.com> +        Editor:    Hariharan Ananthakrishnan +                   <mailto:hari@packetdesign.com>"; +     description +       "This module defines a model for Layer 3 Unicast topology +        state, representing topology that either is learned or +        results from applying topology that has been configured per +        the 'ietf-l3-unicast-topology' model, mirroring the +        corresponding data nodes in this model. + +        This model mirrors 'ietf-l3-unicast-topology' but contains only +        read-only state data.  The model is not needed when the +        underlying implementation infrastructure supports the Network +        Management Datastore Architecture (NMDA). + +        Copyright (c) 2018 IETF Trust and the persons identified as +        authors of the code.  All rights reserved. + +        Redistribution and use in source and binary forms, with or +        without modification, is permitted pursuant to, and subject +        to the license terms contained in, the Simplified BSD License +        set forth in Section 4.c of the IETF Trust's Legal Provisions +        Relating to IETF Documents +        (https://trustee.ietf.org/license-info). + +        This version of this YANG module is part of RFC 8346; +        see the RFC itself for full legal notices."; + + + +Clemm, et al.                Standards Track                   [Page 21] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +     revision "2018-02-26" { +       description +         "Initial revision."; +       reference +         "RFC 8346: A YANG Data Model for Layer 3 Topologies"; +     } +     augment "/nw-s:networks/nw-s:network/nw-s:network-types" { +       description +         "Introduce new network type for L3 Unicast topology"; +       uses l3t:l3-unicast-topology-type; +     } +     augment "/nw-s:networks/nw-s:network" { +       when "nw-s:network-types/l3t-s:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description +           "L3 Unicast for the network as a whole"; +       uses l3t:l3-topology-attributes; +     } +     augment "/nw-s:networks/nw-s:network/nw-s:node" { +       when "../nw-s:network-types/l3t-s:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description +           "L3 Unicast node-level attributes "; +       uses l3t:l3-node-attributes; +     } +     augment "/nw-s:networks/nw-s:network/nt-s:link" { +       when "../nw-s:network-types/l3t-s:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } +       description +         "Augments topology link attributes"; +       uses l3t:l3-link-attributes; +     } +     augment "/nw-s:networks/nw-s:network/nw-s:node/" +            +"nt-s:termination-point" { +       when "../../nw-s:network-types/l3t-s:l3-unicast-topology" { +         description +           "Augmentation parameters apply only for networks with +           L3 Unicast topology"; +       } + + + +Clemm, et al.                Standards Track                   [Page 22] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +       description "Augments topology termination point configuration"; +       uses l3t:l3-termination-point-attributes; +     } +     notification l3-node-event { +       description +         "Notification event for L3 node"; +       leaf l3-event-type { +         type l3t:l3-event-type; +         description +           "Event type"; +       } +       uses nw-s:node-ref; +       uses l3t:l3-unicast-topology-type; +       uses l3t:l3-node-attributes; +     } +     notification l3-link-event { +       description +         "Notification event for L3 link"; +       leaf l3-event-type { +         type l3t:l3-event-type; +         description +           "Event type"; +       } +       uses nt-s:link-ref; +       uses l3t:l3-unicast-topology-type; +       uses l3t:l3-link-attributes; +     } +     notification l3-prefix-event { +       description +         "Notification event for L3 prefix"; +       leaf l3-event-type { +         type l3t:l3-event-type; +         description +           "Event type"; +       } +       uses nw-s:node-ref; +       uses l3t:l3-unicast-topology-type; +       container prefix { +         description +           "Contains L3 prefix attributes"; +         uses l3t:l3-prefix-attributes; +       } +     } +     notification termination-point-event { +       description +         "Notification event for L3 termination point"; +       leaf l3-event-type { +         type l3t:l3-event-type; + + + +Clemm, et al.                Standards Track                   [Page 23] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +         description +           "Event type"; +       } +       uses nt-s:tp-ref; +       uses l3t:l3-unicast-topology-type; +       uses l3t:l3-termination-point-attributes; +     } +   } + +   <CODE ENDS> + +Appendix B.  Extending the Model + +   The model can be extended for specific Layer 3 Unicast types. +   Examples include OSPF and IS-IS topologies.  This appendix introduces +   a YANG module that defines a simple topology model for OSPF.  This +   module is intended to serve as an example that illustrates how the +   general topology model can be refined across multiple levels.  It +   does not constitute a full-fledged OSPF topology model, which may be +   more comprehensive and refined than the model that is described here. + +B.1.  Example OSPF Topology + +B.1.1.  Model Overview + +   The following model shows how the Layer 3 Unicast topology model can +   be extended, in this case, to cover OSPF topologies.  For this +   purpose, a set of augmentations are introduced in a separate YANG +   module, "example-ospf-topology", whose structure is depicted in the +   following diagram.  As before, the notation syntax follows [RFC8340]. +   Note that one of the lines has been wrapped to adhere to the +   72-character line limitation of RFCs. + + + + + + + + + + + + + + + + + + + +Clemm, et al.                Standards Track                   [Page 24] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +   module: example-ospf-topology +   augment /nw:networks/nw:network/nw:network-types/ +     l3t:l3-unicast-topology: +     +--rw ospf! +   augment /nw:networks/nw:network/l3t:l3-topology-attributes: +     +--rw ospf-topology-attributes +        +--rw area-id?   area-id-type +   augment /nw:networks/nw:network/nw:node/l3t:l3-node-attributes: +     +--rw ospf-node-attributes +        +--rw (router-type)? +        |  +--:(abr) +        |  |  +--rw abr?               empty +        |  +--:(asbr) +        |  |  +--rw asbr?              empty +        |  +--:(internal) +        |  |  +--rw internal?          empty +        |  +--:(pseudonode) +        |     +--rw pseudonode?        empty +        +--rw dr-interface-id?   uint32 +   augment /nw:networks/nw:network/nt:link/l3t:l3-link-attributes: +     +--rw ospf-link-attributes +   augment /l3t:l3-node-event: +     +---- ospf! +     +---- ospf-node-attributes +        +---- (router-type)? +        |  +--:(abr) +        |  |  +---- abr?               empty +        |  +--:(asbr) +        |  |  +---- asbr?              empty +        |  +--:(internal) +        |  |  +---- internal?          empty +        |  +--:(pseudonode) +        |     +---- pseudonode?        empty +        +---- dr-interface-id?   uint32 +   augment /l3t:l3-link-event: +     +---- ospf! +     +---- ospf-link-attributes + +   The module augments "ietf-l3-unicast-topology" as follows: + +   o  A new topology type for an OSPF topology is introduced. + +   o  Additional topology attributes are defined in a new grouping that +      augments l3-topology-attributes of the "ietf-l3-unicast-topology" +      module.  The attributes include an OSPF area-id identifying the +      OSPF area. + + + + + +Clemm, et al.                Standards Track                   [Page 25] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +   o  Additional data objects for nodes are introduced by augmenting the +      l3-node-attributes of the "ietf-l3-unicast-topology" module.  New +      objects include router-type and dr-interface-id for pseudonodes. + +   o  Links are augmented with OSPF link attributes. + +   In addition, the module extends notifications for events concerning +   Layer 3 nodes and links with OSPF attributes. + +   It should be noted that the model defined here represents topology +   and is intended as an example.  It does not define how to configure +   OSPF routers or interfaces. + +B.1.2.  OSPF Topology YANG Module + +   The OSPF Topology YANG module is specified below.  As mentioned, the +   module is intended as an example for how the Layer 3 Unicast topology +   model can be extended to cover OSPF topologies, but it is not +   normative.  Accordingly, the module is not delimited with +   <CODE BEGINS> and <CODE ENDS> tags. + +  file "example-ospf-topology@2017-12-16.yang" +  module example-ospf-topology { +      yang-version 1.1; +      namespace "urn:example:example-ospf-topology"; +      prefix "ex-ospft"; +      import ietf-yang-types { +          prefix "yang"; +      } +      import ietf-network { +          prefix "nw"; +      } +      import ietf-network-topology { +          prefix "nt"; +      } +      import ietf-l3-unicast-topology { +          prefix "l3t"; +      } +      description +         "This module is intended as an example for how the +          Layer 3 Unicast topology model can be extended to cover +          OSPF topologies."; +      typedef area-id-type { +          type yang:dotted-quad; +          description +              "Area ID type."; +      } +      grouping ospf-topology-type { + + + +Clemm, et al.                Standards Track                   [Page 26] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +          description +              "Identifies the OSPF topology type."; +          container ospf { +              presence "indicates OSPF Topology"; +              description +                  "Its presence identifies the OSPF topology type."; +          } +      } +      augment "/nw:networks/nw:network/nw:network-types/" +      + "l3t:l3-unicast-topology" { +          description +              "Defines the OSPF topology type."; +          uses ospf-topology-type; +      } +      augment "/nw:networks/nw:network/l3t:l3-topology-attributes" { +          when "../nw:network-types/l3t:l3-unicast-topology/" + +              "ex-ospft:ospf" { +              description +                  "Augments only for OSPF topology"; +              } +          description +              "Augments topology configuration"; +          container ospf-topology-attributes { +              description +                  "Contains topology attributes"; +              leaf area-id { +                  type area-id-type; +                  description +                      "OSPF area ID"; +              } +          } +      } +      augment "/nw:networks/nw:network/nw:node/l3t:l3-node-attributes" { +          when "../../nw:network-types/l3t:l3-unicast-topology/" + +              "ex-ospft:ospf" { +              description +                  "Augments only for OSPF topology"; +          } +          description +              "Augments node configuration"; +          uses ospf-node-attributes; +      } +      augment "/nw:networks/nw:network/nt:link/l3t:l3-link-attributes" { +          when "../../nw:network-types/l3t:l3-unicast-topology/" + +              "ex-ospft:ospf" { +              description +                  "Augments only for OSPF topology"; +          } + + + +Clemm, et al.                Standards Track                   [Page 27] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +          description +              "Augments link configuration"; +          uses ospf-link-attributes; +      } +      grouping ospf-node-attributes { +          description +              "OSPF node scope attributes"; +          container ospf-node-attributes { +              description +                  "Contains node attributes"; +              choice router-type { +                  description +                      "Indicates router type"; +                  case abr { +                      leaf abr { +                          type empty; +                          description +                              "The node is ABR"; +                      } +                  } +                  case asbr { +                      leaf asbr { +                          type empty; +                          description +                              "The node is ASBR"; +                      } +                  } +                  case internal { +                      leaf internal { +                          type empty; +                          description +                              "The node is internal"; +                      } +                  } +                  case pseudonode { +                      leaf pseudonode { +                          type empty; +                          description +                              "The node is pseudonode"; +                      } +                  } +              } +              leaf dr-interface-id { +                  when "../pseudonode" { +                      description +                          "Valid only for pseudonode"; +                  } +                  type uint32; + + + +Clemm, et al.                Standards Track                   [Page 28] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +                  default "0"; +                  description +                      "For pseudonodes, DR interface-id"; +              } +          } +      } +      grouping ospf-link-attributes { +          description +              "OSPF link scope attributes"; +          container ospf-link-attributes { +              description +                  "Contains OSPF link attributes"; +          } +      } // ospf-link-attributes +      augment "/l3t:l3-node-event" { +          description +              "OSPF node event"; +          uses ospf-topology-type; +          uses ospf-node-attributes; +      } +      augment "/l3t:l3-link-event" { +          description +              "OSPF link event"; +          uses ospf-topology-type; +          uses ospf-link-attributes; +      } +  } + +Appendix C.  An Example + +   This section contains an example of an instance data tree in JSON +   encoding [RFC7951].  The example instantiates "ietf-l3-unicast- +   topology" for the topology that is depicted in the following diagram. +   There are three nodes: D1, D2, and D3.  D1 has three termination +   points: 1-0-1, 1-2-1, and 1-3-1.  D2 has three termination points as +   well: 2-1-1, 2-0-1, and 2-3-1.  D3 has two termination points: 3-1-1 +   and 3-2-1.  In addition, there are six links, two between each pair +   of nodes, with one going in each direction. + + + + + + + + + + + + + +Clemm, et al.                Standards Track                   [Page 29] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +                +------------+                   +------------+ +                |     D1     |                   |     D2     | +               /-\          /-\                 /-\          /-\ +               | | 1-0-1    | |---------------->| | 2-1-1    | | +               | |    1-2-1 | |<----------------| |    2-0-1 | | +               \-/  1-3-1   \-/                 \-/  2-3-1   \-/ +                |   /----\   |                   |   /----\   | +                +---|    |---+                   +---|    |---+ +                    \----/                           \----/ +                     A  |                             A  | +                     |  |                             |  | +                     |  |                             |  | +                     |  |       +------------+        |  | +                     |  |       |     D3     |        |  | +                     |  |      /-\          /-\       |  | +                     |  +----->| | 3-1-1    | |-------+  | +                     +---------| |    3-2-1 | |<---------+ +                               \-/          \-/ +                                |            | +                                +------------+ + +                   Figure 2: A Network Topology Example + +   The corresponding instance data tree is depicted below.  Note that +   some lines have been wrapped to adhere to the 72-character line +   limitation of RFCs. + +   { +     "ietf-network:networks": { +       "network": [ +         { +           "network-types": { +             "ietf-l3-unicast-topology:l3-unicast-topology": {} +           }, +           "network-id": "l3-topo-example", +           "node": [ +             { +               "node-id": "D1", +               "termination-point": [ +                 { +                   "tp-id": "1-0-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 101 +                   } +                 }, +                 { +                   "tp-id": "1-2-1", + + + +Clemm, et al.                Standards Track                   [Page 30] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 121 +                   } +                 }, +                 { +                   "tp-id": "1-3-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 131 +                   } +                 } +               ], +               "ietf-l3-unicast-topology:l3-node-attributes": { +                 "router-id": ["203.0.113.1"] +               } +             }, +             { +               "node-id": "D2", +               "termination-point": [ +                 { +                   "tp-id": "2-0-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 201 +                   } +                 }, +                 { +                   "tp-id": "2-1-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 211 +                   } +                 }, +                 { +                   "tp-id": "2-3-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 231 +                   } +                 } +               ], +               "ietf-l3-unicast-topology:l3-node-attributes": { +                 "router-id": ["203.0.113.2"] +               } +             }, +             { +               "node-id": "D3", + + + +Clemm, et al.                Standards Track                   [Page 31] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +               "termination-point": [ +                 { +                   "tp-id": "3-1-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 311 +                   } +                 }, +                 { +                   "tp-id": "3-2-1", +                   "ietf-l3-unicast-topology: +                     l3-termination-point-attributes": { +                     "unnumbered-id:": 321 +                   } +                 } +               ], +               "ietf-l3-unicast-topology:l3-node-attributes": { +                 "router-id": ["203.0.113.3"] +               } +             } +           ], +           "ietf-network-topology:link": [ +             { +               "link-id": "D1,1-2-1,D2,2-1-1", +               "source": { +                 "source-node": "D1", +                 "source-tp": "1-2-1" +               } +               "destination": { +                 "dest-node": "D2", +                 "dest-tp": "2-1-1" +               }, +               "ietf-l3-unicast-topology:l3-link-attributes": { +                 "metric1": "100" +               } +             }, +             { +               "link-id": "D2,2-1-1,D1,1-2-1", +               "source": { +                 "source-node": "D2", +                 "source-tp": "2-1-1" +               } +               "destination": { +                 "dest-node": "D1", +                 "dest-tp": "1-2-1" +               }, +               "ietf-l3-unicast-topology:l3-link-attributes": { +                 "metric1": "100" + + + +Clemm, et al.                Standards Track                   [Page 32] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +               } +             }, +             { +               "link-id": "D1,1-3-1,D3,3-1-1", +               "source": { +                 "source-node": "D1", +                 "source-tp": "1-3-1" +               } +               "destination": { +                 "dest-node": "D3", +                 "dest-tp": "3-1-1" +               }, +               "ietf-l3-unicast-topology:l3-link-attributes": { +                 "metric1": "100" +               } +             }, +             { +               "link-id": "D3,3-1-1,D1,1-3-1", +               "source": { +                 "source-node": "D3", +                 "source-tp": "3-1-1" +               } +               "destination": { +                 "dest-node": "D1", +                 "dest-tp": "1-3-1" +               }, +               "ietf-l3-unicast-topology:l3-link-attributes": { +                 "metric1": "100" +               } +             }, +             { +               "link-id": "D2,2-3-1,D3,3-2-1", +               "source": { +                 "source-node": "D2", +                 "source-tp": "2-3-1" +               } +               "destination": { +                 "dest-node": "D3", +                 "dest-tp": "3-2-1" +               }, +               "ietf-l3-unicast-topology:l3-link-attributes": { +                 "metric1": "100" +               } +             }, +             { +               "link-id": "D3,3-2-1,D2,2-3-1", +               "source": { +                 "source-node": "D3", + + + +Clemm, et al.                Standards Track                   [Page 33] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +                 "source-tp": "3-2-1" +               } +               "destination": { +                 "dest-node": "D2", +                 "dest-tp": "2-3-1" +               }, +               "ietf-l3-unicast-topology:l3-link-attributes": { +                 "metric1": "100" +               } +             } +           ] +         } +       ] +     } +   } + + +                       Figure 3: Instance Data Tree + +Acknowledgments + +   We wish to acknowledge the helpful contributions, comments, and +   suggestions that were received from Alia Atlas, Andy Bierman, Benoit +   Claise, Joel Halpern, Susan Hares, Ladislav Lhotka, Carl Moberg, +   Carlos Pignataro, Juergen Schoenwaelder, Michal Vasco, and Kent +   Watsen. + +Contributors + +   The model presented in this document was contributed to by more +   people than can be listed on the author list.  Additional +   contributors include: + +   o  Vishnu Pavan Beeram, Juniper + +   o  Igor Bryskin, Huawei + +   o  Ken Gray, Cisco + +   o  Aihua Guo, Huawei + +   o  Tom Nadeau, Brocade + +   o  Tony Tkacik + +   o  Aleksandr Zhdankin, Cisco + + + + + +Clemm, et al.                Standards Track                   [Page 34] + +RFC 8346            YANG Data Model for L3 Topologies         March 2018 + + +Authors' Addresses + +   Alexander Clemm +   Huawei USA - Futurewei Technologies Inc. +   Santa Clara, CA +   United States of America + +   Email: ludwig@clemm.org, alexander.clemm@huawei.com + + +   Jan Medved +   Cisco + +   Email: jmedved@cisco.com + + +   Robert Varga +   Pantheon Technologies SRO + +   Email: robert.varga@pantheon.tech + + +   Xufeng Liu +   Jabil + +   Email: xufeng.liu.ietf@gmail.com + + +   Hariharan Ananthakrishnan +   Packet Design + +   Email: hari@packetdesign.com + + +   Nitin Bahadur +   Bracket Computing + +   Email: nitin_bahadur@yahoo.com + + + + + + + + + + + + + +Clemm, et al.                Standards Track                   [Page 35] +  |