Network Working Group                                            X. Liu
Internet-Draft                                                 Ericsson
Intended status: Experimental                                I. Bryskin
Expires: January 2015                           ADVA Optical Networking
                                                               A. Clemm
                                                                  Cisco
                                                           V. P. Beeram
                                                       Juniper Networks
                                                           July 1, 2014



             A YANG Data Model for Abstract Network Topologies
                draft-liu-netmod-yang-abstract-topo-00.txt


Abstract

   This document describes a concept, a methodology and a YANG data
   model to (re-)configure abstract topologies, retrieve their states
   and thus to automate the abstract topology manipulation.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on January 1, 2015.







Liu                    Expires January 1, 2015                 [Page 1]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


Copyright Notice

   Copyright (c) 2014 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
   (http://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.

Table of Contents


   1. Introduction...................................................2
      1.1. Terminology...............................................4
   2. Abstract network topology model overview.......................4
   3. Usage Example..................................................9
   4. Abstract Network Topology YANG module.........................24
   5. Security Considerations.......................................32
   6. References....................................................32
      6.1. Normative References.....................................32
      6.2. Informative References...................................33

1. Introduction

   Clients of a transport network normally have no visibility into the
   network's actual topology and resource availability information.
   There are numerous reasons for this, such as:

   a) Security considerations: network operators are usually reluctant
      to expose the network's actual topology to its clients;

   b) Transport network, generally speaking, is comprised of network
      elements that belong to a different layer network that the client
      devices. Also the internal network routing and traffic engineering
      advertisements usually contain proprietary information, which the
      clients cannot interpret, but discarding of which would lead to
      incorrect assumptions and decisions. This means that the clients
      cannot use actual network topology and traffic engineering
      information even if said information is available;

   c) Scalability considerations: clients do not want to know any
      transport network information that is not related to the services
      provided to the clients.



Liu                    Expires January 1, 2015                 [Page 2]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


   On the other hand the clients need to influence to certain extent on
   the way the services provided to them are routed across the transport
   network: some services, for example, need to be as disjoint from each
   other as possible because they support various network failure
   protection schemes provisioned in the client layer network; others,
   on the contrary, need to be co-routed and share fate as much as
   possible; placement of some services needs to be optimized based on
   the lowest cost criteria, while other service paths need to be
   selected  to have best optical signal quality or delay
   characteristics, and so forth.

   Different approaches exist to allow for the clients to affect the
   placement of provided for them services on the transport network
   under conditions of no visibility into the actual transport network
   topology and resource availability information. For example, [GMPL-
   UNI] architecture allows for clients signaling their service routing
   policies/preferences within the service setup and modify messages and
   mandates the network path computers to honor said
   policies/preferences during the service path selection. There are
   also control plane based (e.g. [GMPLS-ENNI]) and SDN architectures
   that require the network to expose abstract topologies. Such
   topologies are decoupled from the network actual topologies and are
   provided on per client group/VPN/tenant basis. The abstract
   topologies are supposed to be fully understandable by the clients and
   contain sufficient information for the client path computers to
   select service paths according to the client policies. The service
   paths so selected in terms of abstract topology elements could be
   signaled or otherwise conveyed within service setup/modify requests
   to the transport network system responsible for the service
   provisioning.

   One problem with the abstract topologies exposed to the clients is
   their static nature. The abstract topologies are usually manually
   configured based on the transport network operator policies. This
   entails tedious error-prone configuration. This also does not allow
   for the clients to have a say as to how the abstract topologies
   exposed to them should look like, which elements (nodes, links) it
   should contain, what the parameters (e.g. link bandwidth, SRLGs,
   etc.) are, and so forth. The problem becomes especially profound in
   case the clients requirements with respect to the abstract topologies
   change over time and/or depend on particular week, day, time of the
   day, etc. It is highly desirable to have a data model understood and
   supported by the transport network and all its potential clients that
   would allow for the clients to dynamically (re-)configure the
   abstract topologies exposed to them in real time. This document
   introduces a data model written in YANG, that allows for the clients
   using NETCONF and/or RESTCONF protocols to (re-)configure abstract


Liu                    Expires January 1, 2015                 [Page 3]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


   topologies, retrieve their data state and, thus, to automate the
   abstract topology manipulation.

1.1. Terminology

   The keywords "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].

   The following terms are defined in [RFC6020] and are not redefined
   here:

      o  augment

      o  data model

      o  data node

2. Abstract network topology model overview

   This document defines the YANG module "abstract-topology", which has
   the following structure:

   module: abstract-topology
   augment /nt:network-topology/nt:topology/nt:topology-types/l3t:l3-
   unicast-igp-topology:
      +--rw abstract!
   augment /nt:network-topology/nt:topology/nt:node/nt:termination-
   point/l3t:igp-termination-point-attributes:
      +--rw abstract-tp-attributes
         +--rw node-ref?   nt:node-ref
   augment /nt:network-topology/nt:topology/nt:node/l3t:igp-node-
   attributes:
      +--rw abstract-node-attributes
         +--rw schedules* [schedule-id]
         |  +--rw schedule-id          uint32
         |  +--rw start?               yang:date-and-time
         |  +--rw schedule-duration?   string
         |  +--rw repeat-interval?     string
         +--rw is-virtual?            boolean
         +--rw underlay-topology?     nt:topology-ref
         +--rw connectivity-matrix* [from-tp to-tp]
         |  +--rw from-tp    nt:tp-ref


Liu                    Expires January 1, 2015                 [Page 4]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         |  +--rw to-tp      nt:tp-ref
         +--rw ted
            +--rw te-router-id-ipv4?    inet:ipv4-address
            +--rw te-router-id-ipv6?    inet:ipv6-address
            +--rw ipv4-local-address* [ipv4-prefix]
            |  +--rw ipv4-prefix    inet:ipv4-prefix
            +--rw ipv6-local-address* [ipv6-prefix]
            |  +--rw ipv6-prefix      inet:ipv6-prefix
            |  +--rw prefix-option?   uint8
            +--rw pcc-capabilities?     pcc-capabilities
   augment /nt:network-topology/nt:topology/nt:link/l3t:igp-link-
   attributes:
      +--rw abstract-link-attributes
         +--rw schedules* [schedule-id]
         |  +--rw schedule-id          uint32
         |  +--rw start?               yang:date-and-time
         |  +--rw schedule-duration?   string
         |  +--rw repeat-interval?     string
         +--rw advertising-node-src?     nt:node-id
         +--rw advertising-node-des?     nt:node-id
         +--rw is-virtual?               boolean
         +--ro melg*                     uint32
         +--ro srclg*                    uint32
         +--rw server-path
         |  +--rw path-element* [path-element-id]
         |     +--rw path-element-id    uint32
         |     +--rw loose?             boolean
         |     +--rw (element-type)?
         |        +--:(numbered-link)
         |        |  +--rw link-ipv4?         uint32
         |        +--:(unnumbered-link)
         |        |  +--rw link-node-id?      uint32
         |        |  +--rw link-id?           uint32
         |        +--:(node)
         |        |  +--rw node-id?           uint32
         |        +--:(label)
         |           +--rw label?             uint32
         +--rw server-backup-path
         |  +--rw path-element* [path-element-id]
         |     +--rw path-element-id    uint32
         |     +--rw loose?             boolean


Liu                    Expires January 1, 2015                 [Page 5]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         |     +--rw (element-type)?
         |        +--:(numbered-link)
         |        |  +--rw link-ipv4?         uint32
         |        +--:(unnumbered-link)
         |        |  +--rw link-node-id?      uint32
         |        |  +--rw link-id?           uint32
         |        +--:(node)
         |        |  +--rw node-id?           uint32
         |        +--:(label)
         |           +--rw label?             uint32
         +--rw server-protection-type?   uint16
         +--rw server-trail-src?         nt:tp-ref
         +--rw server-trail-des?         nt:tp-ref
         +--rw ted
            +--rw color?                     uint32
            +--rw max-link-bandwidth?        decimal64
            +--rw max-resv-link-bandwidth?   decimal64
            +--rw unreserved-bandwidth* [priority]
            |  +--rw priority     uint8
            |  +--rw bandwidth?   decimal64
            +--rw te-default-metric?         uint32
            +--rw srlg
               +--rw interface-switching-capabilities* [switching-
   capability]
               |  +--rw switching-capability
   ted:switching-capabilities
               |  +--rw encoding?                          uint8
               |  +--rw max-lsp-bandwidth* [priority]
               |  |  +--rw priority     uint8
               |  |  +--rw bandwidth?   decimal64
               |  +--rw packet-switch-capable
               |  |  +--rw minimum-lsp-bandwidth?   decimal64
               |  |  +--rw interface-mtu?           uint16
               |  +--rw time-division-multiplex-capable
               |     +--rw minimum-lsp-bandwidth?   decimal64
               |     +--rw indication?              uint16
               +--rw srlg-values* [srlg-value]
               |  +--rw srlg-value    uint32
               +--rw link-protection-type?               uint16
   augment /l3t:igp-node-event:
      +--ro abstract!


Liu                    Expires January 1, 2015                 [Page 6]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


      +--ro abstract-node-attributes
         +--ro schedules* [schedule-id]
         |  +--ro schedule-id          uint32
         |  +--ro start?               yang:date-and-time
         |  +--ro schedule-duration?   string
         |  +--ro repeat-interval?     string
         +--ro is-virtual?            boolean
         +--ro underlay-topology?     nt:topology-ref
         +--ro connectivity-matrix* [from-tp to-tp]
         |  +--ro from-tp    nt:tp-ref
         |  +--ro to-tp      nt:tp-ref
         +--ro ted
            +--ro te-router-id-ipv4?    inet:ipv4-address
            +--ro te-router-id-ipv6?    inet:ipv6-address
            +--ro ipv4-local-address* [ipv4-prefix]
            |  +--ro ipv4-prefix    inet:ipv4-prefix
            +--ro ipv6-local-address* [ipv6-prefix]
            |  +--ro ipv6-prefix      inet:ipv6-prefix
            |  +--ro prefix-option?   uint8
            +--ro pcc-capabilities?     pcc-capabilities
   augment /l3t:igp-link-event:
      +--ro abstract!
      +--ro abstract-link-attributes
         +--ro schedules* [schedule-id]
         |  +--ro schedule-id          uint32
         |  +--ro start?               yang:date-and-time
         |  +--ro schedule-duration?   string
         |  +--ro repeat-interval?     string
         +--ro advertising-node-src?     nt:node-id
         +--ro advertising-node-des?     nt:node-id
         +--ro is-virtual?               boolean
         +--ro melg*                     uint32
         +--ro srclg*                    uint32
         +--ro server-path
         |  +--ro path-element* [path-element-id]
         |     +--ro path-element-id    uint32
         |     +--ro loose?             boolean
         |     +--ro (element-type)?
         |        +--:(numbered-link)
         |        |  +--ro link-ipv4?         uint32
         |        +--:(unnumbered-link)


Liu                    Expires January 1, 2015                 [Page 7]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         |        |  +--ro link-node-id?      uint32
         |        |  +--ro link-id?           uint32
         |        +--:(node)
         |        |  +--ro node-id?           uint32
         |        +--:(label)
         |           +--ro label?             uint32
         +--ro server-backup-path
         |  +--ro path-element* [path-element-id]
         |     +--ro path-element-id    uint32
         |     +--ro loose?             boolean
         |     +--ro (element-type)?
         |        +--:(numbered-link)
         |        |  +--ro link-ipv4?         uint32
         |        +--:(unnumbered-link)
         |        |  +--ro link-node-id?      uint32
         |        |  +--ro link-id?           uint32
         |        +--:(node)
         |        |  +--ro node-id?           uint32
         |        +--:(label)
         |           +--ro label?             uint32
         +--ro server-protection-type?   uint16
         +--ro server-trail-src?         nt:tp-ref
         +--ro server-trail-des?         nt:tp-ref
         +--ro ted
            +--ro color?                     uint32
            +--ro max-link-bandwidth?        decimal64
            +--ro max-resv-link-bandwidth?   decimal64
            +--ro unreserved-bandwidth* [priority]
            |  +--ro priority     uint8
            |  +--ro bandwidth?   decimal64
            +--ro te-default-metric?         uint32
            +--ro srlg
               +--ro interface-switching-capabilities* [switching-
   capability]
               |  +--ro switching-capability
   ted:switching-capabilities
               |  +--ro encoding?                          uint8
               |  +--ro max-lsp-bandwidth* [priority]
               |  |  +--ro priority     uint8
               |  |  +--ro bandwidth?   decimal64
               |  +--ro packet-switch-capable


Liu                    Expires January 1, 2015                 [Page 8]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


               |  |  +--ro minimum-lsp-bandwidth?   decimal64
               |  |  +--ro interface-mtu?           uint16
               |  +--ro time-division-multiplex-capable
               |     +--ro minimum-lsp-bandwidth?   decimal64
               |     +--ro indication?              uint16
               +--ro srlg-values* [srlg-value]
               |  +--ro srlg-value    uint32
               +--ro link-protection-type?               uint16

3. Usage Example

   Figure 1 shows an example of abstract network topology. This topology
   consists of four nodes at the physical layer: E, F, H, and H, which
   are connected by four physical links: <E, F>, <F, G>, <G, H>, and <E,
   H>. Nodes E and F are grouped into a virtual node VN1; nodes G and H
   are grouped into a virtual node VN2. There is a virtual link from
   node E in VN1 to node G in VN2.


                ...............        ...............
               ..              ........        VN1   ...
              ..                                       ..
              .     +-----+                +-----+      ..
              ..    |  F  +----------------+  E  |       .
               .    +--+--+                +--+--+      ..
               ..      |                 ...  |       ...
                ...... | ............. ... .. | .......
                       |             ...      |
                       |           ...        |
                       |         ...          |
                       |       ...            |
                  .....|...  ...        ..... |.....
               ....    |   ...  ........      |    .....
              ..       | ...                  |        ..
              ..    +--+--+                +--+--+      ..
              ..    |  G  +----------------+  H  |      ..
              .     +-----+                +-----+       .
              .                                          .
              ...                                       ..
                .....             ......       VN2     ..
                    ..............      ................

               Figure 1 Example of Abstract Network Topology





Liu                    Expires January 1, 2015                 [Page 9]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


   The JSON encoded configuration example for such a topology can be as
   following:

   {
     "network-topology": {
       "topology": [
         {
           "topology-id": "ODUk",
           "topology-types": {
             "l3-unicast-igp-topology": {
               "abstract": {}
             }
           },
           "node": [
             {
               "node-id": "VN1",
               "termination-point": [
                 {
                   "tp-id": "E#CH-1-5-NE",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 101,
                     "abstract-tp-attributes": {
                       "node-ref": "E"
                     }
                   }
                 }
               ],
               "igp-node-attributes": {
                 "name": "VN1",
                 "abstract-node-attributes": {
                   "is-virtual": true,
                   "underlay-topology": "/network-
   topology/topology[topology-id='VN1']"
                 }
               }
             }, // VN1
             {
               "node-id": "VN2",
               "termination-point": [
                 {
                   "tp-id": "G#CH-1-6-NE",



Liu                    Expires January 1, 2015                [Page 10]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                   "igp-termination-point-attributes": {
                     "unnumbered-id": 102,
                     "abstract-tp-attributes": {
                       "node-ref": "G"
                     }
                   }
                 }
               ],
               "igp-node-attributes": {
                 "name": "VN2",
                 "abstract-node-attributes": {
                   "is-virtual": true,
                   "underlay-topology": "/network-
   topology/topology[topology-id='VN2']"
                 }
               }
             } // VN2
           ],
           "link": [
             {
               "link-id": "VN1#101-VN2#102",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN1']",
                 "source-tp": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN1']/termination-point[tp-id='E#CH-1-5-
   NE']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN2']",
                 "dest-tp": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN2']/termination-point[tp-id='G#CH-1-6-
   NE']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {


Liu                    Expires January 1, 2015                [Page 11]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                         "switching-capability": "OTN-TDM", // 110,
   RFC7138
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": true,
                   "advertising-node-src": "E",
                   "advertising-node-des": "G"
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link "VN1#101-VN2#102"
             {
               "link-id": "VN2#102-VN1#101",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN2']",
                 "source-tp": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN2']/termination-point[tp-id='G#CH-1-6-
   NE']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN1']",
                 "dest-tp": "/network-topology/topology[topology-
   id='ODUk']/node[node-id='VN1']/termination-point[tp-id='E#CH-1-5-
   NE']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {



Liu                    Expires January 1, 2015                [Page 12]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                         "switching-capability": "OTN-TDM", // 110,
   RFC7138
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": true,
                   "advertising-node-src": "G",
                   "advertising-node-des": "E"
                 } // abstract-link-attributes
               } // igp-link-attributes
             } // "VN2#102-VN1#101"
           ] // link
         }, // topoloty "ODUk"
         {
           "topology-id": "WDM",
           "topology-types": {
             "l3-unicast-igp-topology": {
               "abstract": {}
             }
           },
           "node": [
             {
               "node-id": "E",
               "termination-point": [
                 {
                   "tp-id": "OL-1",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 101
                   }
                 },
                 {
                   "tp-id": "OL-2",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 102


Liu                    Expires January 1, 2015                [Page 13]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                   }
                 },
                 {
                   "tp-id": "CH-1-5-NE",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 103
                   }
                 }
               ],
               "igp-node-attributes": {
                 "name": "E",
                 "abstract-node-attributes": {
                   "is-virtual": false
                 }
               }
             }, // node E
             {
               "node-id": "F",
               "termination-point": [
                 {
                   "tp-id": "OL-1",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 101
                   }
                 },
                 {
                   "tp-id": "OL-2",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 102
                   }
                 }
               ],
               "igp-node-attributes": {
                 "name": "F",
                 "abstract-node-attributes": {
                   "is-virtual": false
                 }
               }
             }, // node F
             {
               "node-id": "G",


Liu                    Expires January 1, 2015                [Page 14]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


               "termination-point": [
                 {
                   "tp-id": "OL-1",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 101
                   }
                 },
                 {
                   "tp-id": "OL-2",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 102
                   }
                 },
                 {
                   "tp-id": "CH-1-6-NE",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 103
                   }
                 }
               ],
               "igp-node-attributes": {
                 "name": "G",
                 "abstract-node-attributes": {
                   "is-virtual": false
                 }
               }
             }, // node G
             {
               "node-id": "H",
               "termination-point": [
                 {
                   "tp-id": "OL-1",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 101
                   }
                 },
                 {
                   "tp-id": "OL-2",
                   "igp-termination-point-attributes": {
                     "unnumbered-id": 102
                   }


Liu                    Expires January 1, 2015                [Page 15]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                 }
               ],
               "igp-node-attributes": {
                 "name": "H",
                 "abstract-node-attributes": {
                   "is-virtual": false
                 }
               }
             }, // node H
           ],
           "link": [
             {
               "link-id": "E#101-F#102",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']/termination-point[tp-id='OL-1']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']/termination-point[tp-id='OL-2']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities


Liu                    Expires January 1, 2015                [Page 16]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link E-F
             {
               "link-id": "F#102-E#101",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']/termination-point[tp-id='OL-2']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']/termination-point[tp-id='OL-1']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link F-E
             {


Liu                    Expires January 1, 2015                [Page 17]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


               "link-id": "E#102-H#101",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']/termination-point[tp-id='OL-2']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']/termination-point[tp-id='OL-1']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link E-H
             {
               "link-id": "H#101-E#102",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']/termination-point[tp-id='OL-1']"


Liu                    Expires January 1, 2015                [Page 18]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='E']/termination-point[tp-id='OL-2']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link H-E
             {
               "link-id": "F#101-G#102",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']/termination-point[tp-id='OL-1']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']/termination-point[tp-id='OL-2']"


Liu                    Expires January 1, 2015                [Page 19]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link F-G
             {
               "link-id": "G#102-F#101",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']/termination-point[tp-id='OL-2']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='F']/termination-point[tp-id='OL-1']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [


Liu                    Expires January 1, 2015                [Page 20]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link G-F
             {
               "link-id": "G#101-H#102",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']/termination-point[tp-id='OL-1']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']/termination-point[tp-id='OL-2']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,


Liu                    Expires January 1, 2015                [Page 21]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }
                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             }, // link G-H
             {
               "link-id": "H#102-G#101",
               "source": {
                 "source-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']",
                 "source-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='H']/termination-point[tp-id='OL-2']"
               }
               "destination": {
                 "dest-node": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']",
                 "dest-tp": "/network-topology/topology[topology-
   id='WDM']/node[node-id='G']/termination-point[tp-id='OL-1']"
               }
               "supporting-link": [],
               "igp-link-attributes": {
                 "abstract-link-attributes": {
                   "srlg": {
                     "interface-switching-capabilities": [
                       {
                         "switching-capability": "LSC",
                         "encoding": 12, // G.709 OKUk, RFC4328
                         "max-lsp-bandwidth": [
                           {
                             "priority": 7,
                             "bandwidth": 1254659200.0 // ODU2 RFC7138
                           }
                         ] // max-lsp-bandwidth
                       }
                     ] // interface-switching-capabilities
                   }


Liu                    Expires January 1, 2015                [Page 22]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


                   "is-virtual": false
                 } // abstract-link-attributes
               } // igp-link-attributes
             } // link H-G
           ],
         }, // topology "WDM"
         {
           "topology-id": "VN1",
           "topology-types": {
             "l3-unicast-igp-topology": {
               "abstract": {}
             }
           },
           "node": [
             {
               "node-id": "E",
               "supporting-node": [
                 {
                   "node-ref": "E"
                 }
               ]
             }, // ref to E
             {
               "node-id": "F",
               "supporting-node": [
                 {
                   "node-ref": "F"
                 }
               ]
             } // ref to F
           ]
         }, // topoloty "VN1"
         {
           "topology-id": "VN2",
           "topology-types": {
             "l3-unicast-igp-topology": {
               "abstract": {}
             }
           },
           "node": [
             {


Liu                    Expires January 1, 2015                [Page 23]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


               "node-id": "G",
               "supporting-node": [
                 {
                   "node-ref": "G"
                 }
               ]
             }, // ref to G
             {
               "node-id": "H",
               "supporting-node": [
                 {
                   "node-ref": "H"
                 }
               ]
             } // ref to H
           ]
         } // topoloty "VN2"
       ]
     } // network-topology
   }

4. Abstract Network Topology YANG module

   <CODE BEGINS> file "abstract-topology@2014-07-01.yang"

   module abstract-topology {
     yang-version 1;
     namespace "urn:ietf:params:xml:ns:yang:abstract-topology";
     // replace with IANA namespace when assigned

     prefix "abst";

     import ietf-yang-types {
       prefix "yang";
     }

     import network-topology {
       prefix "nt";
     }

     import l3-unicast-igp-topology {



Liu                    Expires January 1, 2015                [Page 24]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


       prefix "l3t";
     }

     import ted {
       prefix "ted";
     }

     organization "TBD";
     contact "TBD";
     description "Abstract topology model";

     revision "2014-07-01" {
       description "Initial revision";
       reference "TBD";
     }

     grouping abstract-topology-type {
       description
         "Identifies the abstract topology type.";
       container abstract {
         presence "indicates abstract topology";
         description
           "Its presence identifies the abstract topology type.";
       }
     }

     augment "/nt:network-topology/nt:topology/nt:topology-types/"
             + "l3t:l3-unicast-igp-topology" {
       description
         "Defines the abstract topology type.";
       uses abstract-topology-type;
     }

     grouping te-path-element {
       description
         "A group of attributes defining an element in a TE path";
       leaf loose {
         type boolean;
         description "true if the element is loose.";
       }
       choice element-type {


Liu                    Expires January 1, 2015                [Page 25]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         description "Attributes for various element types.";
         case numbered-link {
           leaf link-ipv4 {
             type uint32;
             description "IPv4 address in 4 byte integer format.";
           }
         }
         case unnumbered-link {
           leaf link-node-id {
             type uint32;
             description
               "Node ID of the node where the link end point resides.";
           }
           leaf link-id {
             type uint32;
             description "Identifies the link end point";
           }
         }
         case node {
           leaf node-id {
             type uint32;
             description "Identifies the node.";
           }
         }
         case label {
           leaf label {
             type uint32;
             description "Identifies the label";
           }
         }
       }
     } // te-path-element

     grouping config-schedule-attributes {
       description
         "A list of schedules defining when a particullar
          configuration takes effect.";
       list schedules {
         key "schedule-id";
         description "A list of schedule elements.";



Liu                    Expires January 1, 2015                [Page 26]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         leaf schedule-id {
           type uint32;
           description "Identifies the schedule element.";
         }
         leaf start {
           type yang:date-and-time;
           description "Start time.";
         }
         leaf schedule-duration {
           type string {
             pattern
               'P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?(\d+S)?';
           }
           description "Schedule duration in ISO 8601 format.";
         }
         leaf repeat-interval {
           type string {
             pattern
               'R\d*/P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?'
               + '(\d+S)?';
           }
           description "Repeat interval in ISO 8601 format.";
        }
       }
     }

     grouping abstract-node-attributes {
       description "Node attributes in an abstract topology.";
       container abstract-node-attributes {
         description "Node attributes in an abstract topology.";
         uses config-schedule-attributes;
         leaf is-virtual {
           type boolean;
           description "true if the node is virtual.";
         }
         leaf underlay-topology {
           type nt:topology-ref;
           description
             "When a node contains a topology, such as a virtual node,
              this reference points to the topology that defines the
              topology inside this node.";


Liu                    Expires January 1, 2015                [Page 27]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         }
         list connectivity-matrix {
           key "from-tp to-tp";
           description
             "Representation of the limit to the connectivity within
              the node";
           leaf from-tp {
             type nt:tp-ref;
             description
               "Reference to source connectivity point.";
           }
           leaf to-tp {
             type nt:tp-ref;
             description
               "Reference to destination connectivity point.";
           }
         }
         container ted {
           description "Includes TE node attributes.";
           uses ted:ted-node-attributes;
         }
       }
     } // abstract-node-attributes

     grouping abstract-tp-attributes {
       description
         "Termination point attributes in an abstract topology.";
       container abstract-tp-attributes {
         description
           "Termination point attributes in an abstract topology.";
         leaf node-ref {
           type nt:node-ref;
           description "Node where this termination point resides.";
         }
       }
     } // abstract-tp-attributes

     grouping abstract-link-attributes {
       description "Link attributes in an abstract topology.";
       container abstract-link-attributes {
         description "Link attributes in an abstract topology.";


Liu                    Expires January 1, 2015                [Page 28]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


         uses config-schedule-attributes;
         leaf advertising-node-src {
           type nt:node-id;
           description
             "The node that advertises the source link end point";
         }
         leaf advertising-node-des {
           type nt:node-id;
           description
             "The node that advertises the destination link end point";
         }
         leaf is-virtual {
           type boolean;
           description "truel if the link is virtual.";
         }
         leaf-list melg {
           type uint32;
           config false;
           description "A list of MELG values of the link.";
         }
         leaf-list srclg {
           type uint32;
           config false;
           description "A list of SRcLG values of the link.";
         }
         container server-path {
           description
             "The service path on the server layer that supports this
              link.";
           list path-element {
             key "path-element-id";
             description
               "A list of path elements describing the service path";
             leaf path-element-id {
               type uint32;
               description "To identify the element in a path.";
             }
             uses te-path-element;
           }
         } // server-path
         container server-backup-path {


Liu                    Expires January 1, 2015                [Page 29]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


           description
             "The backup service path on the server layer that
              supports this link.";
           list path-element {
             key "path-element-id";
             description
               "A list of path elements describing the backup service
                path";
             leaf path-element-id {
               type uint32;
               description "To identify the element in a path.";
             }
             uses te-path-element;
           }
         } // server-backup-path
         leaf server-protection-type {
           type uint16;
           description
             "Server layer protection type desired for this link";
         }
         leaf server-trail-src {
           type nt:tp-ref;
           description
             "Source termination point of the server layer trail.";
         }
         leaf server-trail-des {
           type nt:tp-ref;
           description
             "Destination termination point of the server layer
              trail.";
         }
         container ted {
           description "Includes TE link attributes.";
           uses ted:ted-link-attributes;
         }
       }
     } // abstract-link-attributes

     augment "/nt:network-topology/nt:topology/nt:node/"
             + "nt:termination-point/"
             + "l3t:igp-termination-point-attributes" {


Liu                    Expires January 1, 2015                [Page 30]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


       when "../../../topology-types/abstract-topology" {
         description
           "The augment is valid only for abstract topology.";
       }
       description "Augments attributes on a termination point.";
       uses abstract-tp-attributes;
     }

     augment "/nt:network-topology/nt:topology/nt:node/"
             + "l3t:igp-node-attributes" {
       when "../../topology-types/abstract-topology" {
         description
           "The augment is valid only for abstract topology.";
       }
       description "Augments attributes on a node.";
       uses abstract-node-attributes;
     }

     augment "/nt:network-topology/nt:topology/nt:link/"
             + "l3t:igp-link-attributes" {
       when "../../topology-types/abstract-topology" {
         description
           "The augment is valid only for abstract topology.";
       }
       description "Augments attributes on a link.";
       uses abstract-link-attributes;
     }

     augment "/l3t:igp-node-event" {
       description "Augments node event.";
       uses abstract-topology-type;
       uses abst:abstract-node-attributes;
     }

     augment "/l3t:igp-link-event" {
       description "Augments link event.";
       uses abstract-topology-type;
       uses abst:abstract-link-attributes;
     }
   }



Liu                    Expires January 1, 2015                [Page 31]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


   <CODE ENDS>

5. Security Considerations

   The abstract 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. References

6.1. Normative References

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

   [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.

   [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for
             Syntax Specifications: ABNF", RFC 2234, Internet Mail
             Consortium and Demon Internet Ltd., November 1997.

   [RFC3471] Berger, L., "Generalized Multi-Protocol Label Switching
             (GMPLS) Signaling Functional Description", RFC 3471,
             January 2003.

   [RFC3811] Nadeau, T. and J. Cucchiara, "Definitions of Textual
             Conventions (TCs) for Multiprotocol Label Switching (MPLS)
             Management", RFC 3811, June 2004.

   [RFC3812] Srinivasan, C., Viswanathan, A., and T. Nadeau,
             "Multiprotocol Label Switching (MPLS) Traffic Engineering
             (TE) Management Information Base (MIB)", RFC 3812, June
             2004.

   [RFC3813] Srinivasan, C., Viswanathan, A., and T. Nadeau,
             "Multiprotocol Label Switching (MPLS) Label Switching
             Router (LSR) Management Information Base (MIB)", RFC 3813,
             June 2004.





Liu                    Expires January 1, 2015                [Page 32]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


   [RFC4208] Swallow, G., Drake, J., Ishimatsu, H., and Rekhter, Y.,
             "Generalized Multiprotocol Label Switching (GMPLS) User-
             Network Interface (UNI): Resource ReserVation Protocol-
             Traffic Engineering (RSVP-TE) Support for the Overlay
             Model", RFC4208, October 2005.

   [RFC4220] Dubuc, M., Nadeau, T., and Lang, J., " Traffic Engineering
             Link Management Information Base", RFC 4220, November 2005.

   [RFC4801] Nadeau, T., Ed. and A. Farrel, Ed., "Definitions of
             Textual Conventions for Multiprotocol Label Switching
             (MPLS) Management", RFC 4801, February 2007.

   [RFC4802] Nadeau, T., Ed. and A. Farrel, Ed., "Generalized
             Multiprotocol Label Switching (GMPLS) Traffic Engineering
             Management Information Base", RFC 4802, February 2007.

6.2. Informative References

   [G.8080]  ITU-T Rec.  G.8080/Y.1304, "Architecture for the
             Automatically Switched Optical Network (ASON)," November
             2001 (and Revision, January 2003).  For information on the
             availability of this document, please see
             http://www.itu.int.

   [I-D.clemm-netmod-yang-network-topo]

              A. Clemm, H. Ananthakrishnan, J. Medved, T. Tkacik, R.
              Varga, and N. Bahadur, "A YANG Data Model for Network
              Topologies", draft-clemm-i2rs-yang-network-topo-00

   [I-D.beeram-ccamp-melg]

              V. P. Beeram, I. Bryskin, "Mutually Exclusive Link Group
              (MELG)", draft-beeram-ccamp-melg-03

   [I-D.beeram-ccamp-srclg]

              V. P. Beeram, I. Bryskin, "Shared Resource Link Group
              (SRcLG)", draft-beeram-ccamp-srclg-01









Liu                    Expires January 1, 2015                [Page 33]


Internet-Draft draft-liu-netmod-yang-abstract-topo-00.txt     July 2014


Authors' Addresses

   Xufeng Liu
   Ericsson

   Email: xufeng.liu@ericsson.com


   Igor Bryskin
   ADVA Optical Networking

   Email: ibryskin@advaoptical.com


   Alexander Clemm
   Cisco

   Email: alex@cisco.com


   Vishnu Pavan Beeram
   Juniper Networks

   Email: vbeeram@juniper.net

























Liu                    Expires January 1, 2015                [Page 34]