Tango with YANG: A YANG overview

 

With IETF 95 taking place in Buenos Aires next month, here’s a quick overview of YANG’s evolution and our latest implementation of it. In this SDN Era, YANG has clearly emerged as a leader in the data modelling languages. The data model in YANG helps in managing configuration for both traditional and software defined networks. Standardized YANG models help in managing true multi-vendor networks.

Over the last few years, YANG has matured in its constructs. The YANG tool chain has evolved to the extent that it can be used in product development. Software integrators are asking for more support for standards-based YANG model implementations from vendors.

At Packet Design, we have not only embraced this change, but are also leading the YANG revolution by contributing to the standards technology and implementing it in our SDN Management and Orchestration Platform. Our upcoming software release supports exporting our Traffic Engineering database in the TEAS YANG TE Topology Model.

Software integrators and customers can use our standards-based REST APIs to get the Traffic Engineering topology. The topology is learned in real time through the IGP (ISIS-TE, OSPF-TE) protocols and augmented with information that our Explorer suite collects.

A sample REST API to get the Traffic Engineering Topology will look as below:

{
  "topology" : {
    "domains" : ["SDN"]
    },
    "request" : {
    "type" : "getReportData",
    "dataType" : "teDatabase",
    "parameters" : {
      "mode" : "yang"
    }
    }
}

The response of TE Topology in IETF YANG format will look as below:

{
    "network" : [
        {
           "link" : [
              {
                 "destination" : {
                    "dest-node" : "0100.0000.1002.00",
                    "dest-tp" : "10.3.0.2"
                 },
                 "source" : {
                    "source-node" : "0100.0000.1003.00",
                    "source-tp" : "10.3.0.3"
                 },
                 "te" : {
                    "config" : {
                       "te-link-attributes" : {
                          "administrative-group" : 0,
                          "max-link-bandiwdth" : 1000000000.0,
                          "max-resv-link-bandiwdth" : 750000000.0,
                          "oper-status" : "up",
                          "te-default-metric" : 20,
                          "unreserved-bandwidths" : [
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 0
                                }
                             },
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 1
                                }
                             },
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 2
                                }
                             },
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 3
                                }
                             },
                             {
                                 "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 4
                                }
                             },
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 5
                                }
                             },
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 6
                                }
                             },
                             {
                                "unreserved-bandwidth" : {
                                   "bandwidth" : 750000000.0,
                                   "priority" : 7
                                }
                             }
                          ]
                       }
                    },
                    "state" : {
                       "oper-status" : "up"
                    }
                 }
              },
              ...
              ...
           ],
           "network-id" : "SDN.ISIS/Level2",
           "network-types" : {
              "te-topology" : {}
           },
           "node" : [
              {
                 "node-id" : "0100.0500.0009.00",
                 "te" : {
                    "te-node-id" : "10.5.0.9"
                 }
              },
              ...
              ...
          ]
       }
    ]
}

Packet Design is in the process of implementing more standards-based YANG models as they mature and are adopted. With the upcoming IETF-95 in Buenos Aires, Argentina, where more and more YANG models will be standardized, we can’t wait to Tango with YANG.