namespace "urn:opendaylight:netvirt:fibmanager";
prefix odl-fib;
+ import yang-ext {prefix ext; revision-date "2013-07-09";}
+
revision "2015-03-30" {
description "FIB Manager module";
}
- grouping ipv4Entries{
+ grouping ipv4Entries {
list ipv4Entry{
key "destPrefix";
leaf destPrefix {type string;}
}
}
- grouping vrfEntries{
- list vrfEntry{
- key "destPrefix";
+ grouping vrfEntryBase {
leaf destPrefix {
type string;
mandatory true;
}
- leaf label {
- type uint32;
- mandatory true;
+ leaf mac {
+ type string;
}
- leaf nextHopAddress {
+ leaf origin {
type string;
+ mandatory true;
+ }
+ leaf encap-type {
+ description
+ "This flag indicates how to interpret the existing label field.
+ A value of mplsgre indicates that the label within route paths will continue to be considered as an MPLS Label.
+ A value of vxlan indicates that l3vni should be used to advertise to bgp and label will be ignored.";
+
+ type enumeration {
+ enum mplsgre {
+ value "0";
+ description "MPLSOverGRE";
+ }
+ enum vxlan {
+ value "1";
+ description "VNI";
+ }
+ }
+ default "mplsgre";
+ }
+
+ leaf l3vni {
+ type uint32;
+ }
+ leaf gateway_mac_address {
+ type string;
+ }
+ leaf parent-vpn-rd {
+ description
+ "If set will get the vpn-to-dpn information from the parent-vpn-rd";
+ type string;
+ }
+ list route-paths {
+ key "nexthop-address";
+ leaf nexthop-address {
+ type string;
+ }
+ leaf label {
+ type uint32;
+ }
+ }
+ }
+
+ grouping vrfEntries {
+ list vrfEntry{
+ key "destPrefix";
+ uses vrfEntryBase;
+ }
+ }
+
+ grouping macVrfEntries {
+ list macVrfEntry {
+ key "mac";
+ uses vrfEntryBase;
+ leaf l2vni {
+ type uint32;
}
}
}
+ augment "/odl-fib:fibEntries/odl-fib:vrfTables/odl-fib:vrfEntry" {
+ ext:augment-identifier "subnetRoute";
+ leaf elantag {type uint32;}
+ }
+
+ augment "/odl-fib:fibEntries/odl-fib:vrfTables/odl-fib:vrfEntry" {
+ ext:augment-identifier "routerInterface";
+ leaf uuid {type string;}
+ leaf mac-address {type string;}
+ leaf ip-address {type string;}
+ }
+
container fibEntries {
config true;
list vrfTables{
key "routeDistinguisher";
leaf routeDistinguisher {type string;}
uses vrfEntries;
+ uses macVrfEntries;
}
container ipv4Table{
- uses ipv4Entries;
+ uses ipv4Entries;
}
}
-}
\ No newline at end of file
+
+ container label-route-map {
+ config false;
+ list label-route-info {
+ key label;
+ leaf label { type uint32; }
+ leaf dpn-id { type uint64; }
+ leaf prefix { type string; }
+ leaf-list next-hop-ip-list { type string; }
+ leaf-list vpn-instance-list { type string; }
+ leaf parent-vpnid { type uint32; }
+ leaf vpn-interface-name { type string; }
+ leaf elan-tag { type uint32; }
+ leaf is-subnet-route { type boolean; }
+ leaf parent-vpn-rd { type string; }
+ }
+ }
+
+ container extraroute-rds-map {
+ config true;
+ list extraroute-rds {
+ description
+ "List of route distinguishers used to create a unique NLRI for the destination prefix";
+ key "vpnid";
+ leaf vpnid {
+ type uint32;
+ }
+ list dest-prefixes {
+ key "dest-prefix";
+ leaf dest-prefix {
+ type string;
+ }
+ list allocated-rds {
+ key nexthop;
+ leaf nexthop {
+ type string;
+ description "Ip address of the VM which is the nexthop for the extra route";
+ }
+ leaf rd {type string;}
+ }
+ }
+ }
+ }
+
+ container ip-prefix-map {
+ description "Stores information about a parent vpn and prefix in that parent vpn,
+ along with what other vpn-instances import the parent vpn";
+ config false;
+ list ip-prefix-info {
+ key "prefix parent-primary-rd";
+ leaf prefix {
+ type string;
+ }
+ leaf parent-primary-rd {
+ type string;
+ }
+ leaf dpn-id {
+ type uint64;
+ }
+ leaf-list vpn-instance-list {
+ type string;
+ }
+ leaf parent-vpnid {
+ type uint32;
+ }
+ leaf vpn-interface-name {
+ type string;
+ }
+ leaf elan-tag {
+ type uint32;
+ }
+ leaf is-subnet-route {
+ type boolean;
+ }
+ leaf encap-type {
+ type enumeration {
+ enum mplsgre {
+ value "0";
+ }
+ enum vxlan {
+ value "1";
+ }
+ }
+ default "mplsgre";
+ }
+ leaf l3vni {
+ type uint32;
+ }
+ leaf l2vni {
+ type uint32;
+ }
+ list route-paths {
+ key "nexthop-address";
+ leaf nexthop-address {
+ type string;
+ }
+ leaf label {
+ type uint32;
+ }
+ leaf gateway_mac_address {
+ type string;
+ }
+ }
+ }
+ }
+
+}