Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 8529

YANG Data Model for Network Instances

Pages: 44
Proposed Standard
Part 2 of 2 – Pages 25 to 44
First   Prev   None

Top   ToC   RFC8529 - Page 25   prevText

Appendix A. Example NI Usage

The following subsections provide example uses of NIs.

A.1. Configuration Data

The following shows an example where two customer-specific network instances are configured: { "ietf-network-instance:network-instances": { "network-instance": [ { "name": "vrf-red", "vrf-root": { "ietf-routing:routing": { "router-id": "192.0.2.1", "control-plane-protocols": { "control-plane-protocol": [ { "type": "ietf-routing:ospf", "name": "1", "ietf-ospf:ospf": { "af": "ipv4", "areas": { "area": [ { "area-id": "203.0.113.1", "interfaces": { "interface": [ { "name": "eth1", "cost": 10 } ] } } ] } } } ] } } } }, { "name": "vrf-blue",
Top   ToC   RFC8529 - Page 26
           "vrf-root": {
             "ietf-routing:routing": {
               "router-id": "192.0.2.2",
               "control-plane-protocols": {
                 "control-plane-protocol": [
                   {
                     "type": "ietf-routing:ospf",
                     "name": "1",
                     "ietf-ospf:ospf": {
                       "af": "ipv4",
                       "areas": {
                         "area": [
                           {
                             "area-id": "203.0.113.1",
                             "interfaces": {
                               "interface": [
                                 {
                                   "name": "eth2",
                                   "cost": 10
                                 }
                               ]
                             }
                           }
                         ]
                       }
                     }
                   }
                 ]
               }
             }
           }
         }
       ]
     },

     "ietf-interfaces:interfaces": {
       "interface": [
         {
           "name": "eth0",
           "type": "iana-if-type:ethernetCsmacd",
           "ietf-ip:ipv4": {
             "address": [
               {
                 "ip": "192.0.2.10",
                 "prefix-length": 24
               }
             ]
           },
Top   ToC   RFC8529 - Page 27
           "ietf-ip:ipv6": {
             "address": [
               {
                 "ip": "2001:db8:0:2::10",
                 "prefix-length": 64
               }
             ]
           }
         },
         {
           "name": "eth1",
           "type": "iana-if-type:ethernetCsmacd",
           "ietf-ip:ipv4": {
             "address": [
               {
                 "ip": "192.0.2.11",
                 "prefix-length": 24
               }
             ]
           },
           "ietf-ip:ipv6": {
             "address": [
               {
                 "ip": "2001:db8:0:2::11",
                 "prefix-length": 64
               }
             ]
           },
           "ietf-network-instance:bind-network-instance-name": "vrf-red"
         },
         {
           "name": "eth2",
           "type": "iana-if-type:ethernetCsmacd",
           "ietf-ip:ipv4": {
             "address": [
               {
                 "ip": "192.0.2.11",
                 "prefix-length": 24
               }
             ]
           },
           "ietf-ip:ipv6": {
             "address": [
               {
                 "ip": "2001:db8:0:2::11",
                 "prefix-length": 64
               }
             ]
Top   ToC   RFC8529 - Page 28
           },
           "ietf-network-instance:bind-network-instance-name":
           "vrf-blue"
         }
       ]
     },

     "ietf-system:system": {
       "authentication": {
         "user": [
           {
             "name": "john",
             "password": "$0$password"
           }
         ]
       }
     }
   }

A.2. State Data - Non-NMDA Version

The following shows state data for the configuration example above based on [RFC8343], [RFC8344], and [RFC8349]. { "ietf-network-instance:network-instances": { "network-instance": [ { "name": "vrf-red", "vrf-root": { "ietf-yang-library:modules-state": { "module-set-id": "123e4567-e89b-12d3-a456-426655440000", "module": [ { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library", "conformance-type": "implement" }, { "name": "ietf-ospf", "revision": "2019-01-24", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf", "conformance-type": "implement" }, { "name": "ietf-routing",
Top   ToC   RFC8529 - Page 29
                "revision": "2018-03-13",
                "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing",
                "conformance-type": "implement"
              }
            ]
          },
          "ietf-routing:routing-state": {
            "router-id": "192.0.2.1",
            "control-plane-protocols": {
              "control-plane-protocol": [
                {
                  "type": "ietf-routing:ospf",
                  "name": "1",
                  "ietf-ospf:ospf": {
                    "af": "ipv4",
                    "areas": {
                      "area": [
                        {
                          "area-id": "203.0.113.1",
                          "interfaces": {
                            "interface": [
                              {
                                "name": "eth1",
                                "cost": 10
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      },
      {
        "name": "vrf-blue",
        "vrf-root": {
          "ietf-yang-library:modules-state": {
            "module-set-id": "123e4567-e89b-12d3-a456-426655440000",
            "module": [
              {
                "name": "ietf-yang-library",
                "revision": "2019-01-04",
                "namespace":
                  "urn:ietf:params:xml:ns:yang:ietf-yang-library",
Top   ToC   RFC8529 - Page 30
                "conformance-type": "implement"
              },
              {
                "name": "ietf-ospf",
                "revision": "2019-01-24",
                "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf",
                "conformance-type": "implement"
              },
              {
                "name": "ietf-routing",
                "revision": "2018-03-13",
                "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing",
                "conformance-type": "implement"
              }
            ]
          },
          "ietf-routing:routing-state": {
            "router-id": "192.0.2.2",
            "control-plane-protocols": {
              "control-plane-protocol": [
                {
                  "type": "ietf-routing:ospf",
                  "name": "1",
                  "ietf-ospf:ospf": {
                    "af": "ipv4",
                    "areas": {
                      "area": [
                        {
                          "area-id": "203.0.113.1",
                          "interfaces": {
                            "interface": [
                              {
                                "name": "eth2",
                                "cost": 10
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      }
    ]
Top   ToC   RFC8529 - Page 31
  },

  "ietf-interfaces:interfaces-state": {
    "interface": [
      {
        "name": "eth0",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "up",
        "phys-address": "00:01:02:A1:B1:C0",
        "statistics": {
          "discontinuity-time": "2017-06-26T12:34:56-05:00"
        },
        "ietf-ip:ipv4": {
          "address": [
            {
              "ip": "192.0.2.10",
              "prefix-length": 24
            }
          ]
        },
        "ietf-ip:ipv6": {
          "address": [
            {
              "ip": "2001:db8:0:2::10",
              "prefix-length": 64
            }
          ]
        }
      },
      {
        "name": "eth1",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "up",
        "phys-address": "00:01:02:A1:B1:C1",
        "statistics": {
          "discontinuity-time": "2017-06-26T12:34:56-05:00"
        },
        "ietf-ip:ipv4": {
          "address": [
            {
              "ip": "192.0.2.11",
              "prefix-length": 24
            }
          ]
        },
        "ietf-ip:ipv6": {
          "address": [
            {
Top   ToC   RFC8529 - Page 32
              "ip": "2001:db8:0:2::11",
              "prefix-length": 64
            }
          ]
        }
      },
      {
        "name": "eth2",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "up",
        "phys-address": "00:01:02:A1:B1:C2",
        "statistics": {
          "discontinuity-time": "2017-06-26T12:34:56-05:00"
        },
        "ietf-ip:ipv4": {
          "address": [
            {
              "ip": "192.0.2.11",
              "prefix-length": 24
            }
          ]
        },
        "ietf-ip:ipv6": {
          "address": [
            {
              "ip": "2001:db8:0:2::11",
              "prefix-length": 64
            }
          ]
        }
      }
    ]
  },

  "ietf-system:system-state": {
    "platform": {
      "os-name": "NetworkOS"
    }
  },

  "ietf-yang-library:modules-state": {
    "module-set-id": "123e4567-e89b-12d3-a456-426655440000",
    "module": [
      {
        "name": "iana-if-type",
        "revision": "2018-07-03",
        "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type",
        "conformance-type": "import"
Top   ToC   RFC8529 - Page 33
      },
      {
        "name": "ietf-inet-types",
        "revision": "2013-07-15",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types",
        "conformance-type": "import"
      },
      {
        "name": "ietf-interfaces",
        "revision": "2018-02-20",
        "feature": [
          "arbitrary-names",
          "pre-provisioning"
        ],
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-interfaces",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-ip",
        "revision": "2018-01-09",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-ip",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-network-instance",
        "revision": "2018-02-03",
        "feature": [
          "bind-network-instance-name"
        ],
        "namespace":
          "urn:ietf:params:xml:ns:yang:ietf-network-instance",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-ospf",
        "revision": "2019-01-24",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-routing",
        "revision": "2018-03-13",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-system",
        "revision": "2014-08-06",
Top   ToC   RFC8529 - Page 34
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-system",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-yang-library",
        "revision": "2019-01-04",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-yang-schema-mount",
        "revision": "2019-01-14",
        "namespace":
          "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount",
        "conformance-type": "implement"
      },
      {
        "name": "ietf-yang-types",
        "revision": "2013-07-15",
        "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types",
        "conformance-type": "import"
      }
    ]
  },

  "ietf-yang-schema-mount:schema-mounts": {
    "mount-point": [
      {
        "module": "ietf-network-instance",
        "label": "vrf-root",
        "shared-schema": {
          "parent-reference": [
            "/*[namespace-uri() = 'urn:ietf:...:ietf-interfaces']"
          ]
        }
      }
    ]
  }
}
Top   ToC   RFC8529 - Page 35

A.3. State Data - NMDA Version

The following shows state data for the configuration example above based on [RFC8343], [RFC8344], and [RFC8349]. { "ietf-network-instance:network-instances": { "network-instance": [ { "name": "vrf-red", "vrf-root": { "ietf-yang-library:yang-library": { "content-id": "41e2ab5dc325f6d86f743e8da3de323f1a61a801", "module-set": [ { "name": "ni-modules", "module": [ { "name": "ietf-yang-library", "revision": "2019-01-04", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-library" }, { "name": "ietf-ospf", "revision": "2019-01-24", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ospf" }, { "name": "ietf-routing", "revision": "2018-03-13", "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing" } ], "import-only-module": [ { "name": "ietf-inet-types", "revision": "2013-07-15", "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types" }, { "name": "ietf-yang-types", "revision": "2013-07-15", "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types"
Top   ToC   RFC8529 - Page 36
                    },
                    {
                      "name": "ietf-datastores",
                      "revision": "2018-02-14",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-datastores"
                    }
                  ]
                }
              ],
              "schema": [
                {
                  "name": "ni-schema",
                  "module-set": [ "ni-modules" ]
                }
              ],
              "datastore": [
                {
                  "name": "ietf-datastores:running",
                  "schema": "ni-schema"
                },
                {
                  "name": "ietf-datastores:operational",
                  "schema": "ni-schema"
                }
              ]
            },
            "ietf-routing:routing": {
              "router-id": "192.0.2.1",
              "control-plane-protocols": {
                "control-plane-protocol": [
                  {
                    "type": "ietf-routing:ospf",
                    "name": "1",
                    "ietf-ospf:ospf": {
                      "af": "ipv4",
                      "areas": {
                        "area": [
                          {
                            "area-id": "203.0.113.1",
                            "interfaces": {
                              "interface": [
                                {
                                  "name": "eth1",
                                  "cost": 10
                                }
                              ]
                            }
Top   ToC   RFC8529 - Page 37
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        {
          "name": "vrf-blue",
          "vrf-root": {
            "ietf-yang-library:yang-library": {
              "checksum": "41e2ab5dc325f6d86f743e8da3de323f1a61a801",
              "module-set": [
                {
                  "name": "ni-modules",
                  "module": [
                    {
                      "name": "ietf-yang-library",
                      "revision": "2019-01-04",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-yang-library",
                      "conformance-type": "implement"
                    },
                    {
                      "name": "ietf-ospf",
                      "revision": "2019-01-24",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-ospf",
                      "conformance-type": "implement"
                    },
                    {
                      "name": "ietf-routing",
                      "revision": "2018-03-13",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-routing",
                      "conformance-type": "implement"
                    }
                  ],
                  "import-only-module": [
                    {
                      "name": "ietf-inet-types",
                      "revision": "2013-07-15",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-inet-types"
                    },
Top   ToC   RFC8529 - Page 38
                    {
                      "name": "ietf-yang-types",
                      "revision": "2013-07-15",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-yang-types"
                    },
                    {
                      "name": "ietf-datastores",
                      "revision": "2018-02-14",
                      "namespace":
                        "urn:ietf:params:xml:ns:yang:ietf-datastores"
                    }
                  ]
                }
              ],
              "schema": [
                {
                  "name": "ni-schema",
                  "module-set": [ "ni-modules" ]
                }
              ],
              "datastore": [
                {
                  "name": "ietf-datastores:running",
                  "schema": "ni-schema"
                },
                {
                  "name": "ietf-datastores:operational",
                  "schema": "ni-schema"
                }
              ]
            },
            "ietf-routing:routing": {
              "router-id": "192.0.2.2",
              "control-plane-protocols": {
                "control-plane-protocol": [
                  {
                    "type": "ietf-routing:ospf",
                    "name": "1",
                    "ietf-ospf:ospf": {
                      "af": "ipv4",
                      "areas": {
                        "area": [
                          {
                            "area-id": "203.0.113.1",
                            "interfaces": {
                              "interface": [
                                {
Top   ToC   RFC8529 - Page 39
                                  "name": "eth2",
                                  "cost": 10
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    },

    "ietf-interfaces:interfaces": {
      "interface": [
        {
          "name": "eth0",
          "type": "iana-if-type:ethernetCsmacd",
          "oper-status": "up",
          "phys-address": "00:01:02:A1:B1:C0",
          "statistics": {
            "discontinuity-time": "2017-06-26T12:34:56-05:00"
          },
          "ietf-ip:ipv4": {
            "address": [
              {
                "ip": "192.0.2.10",
                "prefix-length": 24
              }
            ]
          },
          "ietf-ip:ipv6": {
            "address": [
              {
                "ip": "2001:db8:0:2::10",
                "prefix-length": 64
              }
            ]
          }
        },
        {
          "name": "eth1",
          "type": "iana-if-type:ethernetCsmacd",
Top   ToC   RFC8529 - Page 40
          "oper-status": "up",
          "phys-address": "00:01:02:A1:B1:C1",
          "statistics": {
            "discontinuity-time": "2017-06-26T12:34:56-05:00"
          },
          "ietf-ip:ipv4": {
            "address": [
              {
                "ip": "192.0.2.11",
                "prefix-length": 24
              }
            ]
          },
          "ietf-ip:ipv6": {
            "address": [
              {
                "ip": "2001:db8:0:2::11",
                "prefix-length": 64
              }
            ]
          }
        },
        {
          "name": "eth2",
          "type": "iana-if-type:ethernetCsmacd",
          "oper-status": "up",
          "phys-address": "00:01:02:A1:B1:C2",
          "statistics": {
            "discontinuity-time": "2017-06-26T12:34:56-05:00"
          },
          "ietf-ip:ipv4": {
            "address": [
              {
                "ip": "192.0.2.11",
                "prefix-length": 24
              }
            ]
          },
          "ietf-ip:ipv6": {
            "address": [
              {
                "ip": "2001:db8:0:2::11",
                "prefix-length": 64
              }
            ]
          }
        }
      ]
Top   ToC   RFC8529 - Page 41
    },

    "ietf-system:system-state": {
      "platform": {
        "os-name": "NetworkOS"
      }
    },

    "ietf-yang-library:yang-library": {
      "content-id": "75a43df9bd56b92aacc156a2958fbe12312fb285",
      "module-set": [
        {
          "name": "host-modules",
          "module": [
            {
              "name": "ietf-interfaces",
              "revision": "2018-02-20",
              "feature": [
                "arbitrary-names",
                "pre-provisioning"
              ],
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-interfaces"
            },
            {
              "name": "ietf-ip",
              "revision": "2018-01-09",
              "namespace": "urn:ietf:params:xml:ns:yang:ietf-ip"
            },
            {
              "name": "ietf-network-instance",
              "revision": "2018-02-03",
              "feature": [
                "bind-network-instance-name"
              ],
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-network-instance"
            },
            {
              "name": "ietf-ospf",
              "revision": "2019-01-24",
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-ospf"
            },
            {
              "name": "ietf-routing",
              "revision": "2018-03-13",
              "namespace":
Top   ToC   RFC8529 - Page 42
              "urn:ietf:params:xml:ns:yang:ietf-routing"
            },
            {
              "name": "ietf-system",
              "revision": "2014-08-06",
              "namespace": "urn:ietf:params:xml:ns:yang:ietf-system"
            },
            {
              "name": "ietf-yang-library",
              "revision": "2019-01-04",
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-yang-library"
            },
            {
              "name": "ietf-yang-schema-mount",
              "revision": "2019-01-14",
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount"
            }
          ],
          "import-only-module": [
            {
              "name": "iana-if-type",
              "revision": "2018-07-03",
              "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type"
            },
            {
              "name": "ietf-inet-types",
              "revision": "2013-07-15",
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-inet-types"
            },
            {
              "name": "ietf-yang-types",
              "revision": "2013-07-15",
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-yang-types"
            },
            {
              "name": "ietf-datastores",
              "revision": "2018-02-14",
              "namespace":
                "urn:ietf:params:xml:ns:yang:ietf-datastores"
            }
          ]
        }
      ],
      "schema": [
Top   ToC   RFC8529 - Page 43
        {
          "name": "host-schema",
          "module-set": [ "host-modules" ]
        }
      ],
      "datastore": [
        {
          "name": "ietf-datastores:running",
          "schema": "host-schema"
        },
        {
          "name": "ietf-datastores:operational",
          "schema": "host-schema"
        }
      ]
    },

    "ietf-yang-schema-mount:schema-mounts": {
      "mount-point": [
        {
          "module": "ietf-network-instance",
          "label": "vrf-root",
          "shared-schema": {
            "parent-reference": [
              "/*[namespace-uri() = 'urn:ietf:...:ietf-interfaces']"
            ]
          }
        }
      ]
    }
  }
Top   ToC   RFC8529 - Page 44

Acknowledgments

The Routing Area Yang Architecture design team members included Acee Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Lou Berger, Qin Wu, Rob Shakir, Stephane Litkowski, and Yan Gang. Martin Bjorklund and John Scudder provided useful review comments. This document was motivated by, and derived from, "Network Device YANG Logical Organization" [YANG-NETWORK]. Thanks for Area Director and IETF last-call comments from Alia Atlas, Liang Xia, Benoit Claise, and Adam Roach.

Authors' Addresses

Lou Berger LabN Consulting, L.L.C. Email: lberger@labn.net Christian Hopps LabN Consulting, L.L.C. Email: chopps@chopps.org Acee Lindem Cisco Systems 301 Midenhall Way Cary, NC 27513 United States of America Email: acee@cisco.com Dean Bogdanovic Volta Networks Email: ivandean@gmail.com Xufeng Liu Volta Networks Email: xufeng.liu.ietf@gmail.com