X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=vpnservice%2Ffibmanager%2Ffibmanager-api%2Fsrc%2Fmain%2Fyang%2Fodl-fib.yang;h=d75be2603556201d8fa417d58fa59144fd256ed3;hb=1f62e61ed08350f524075cfec5428366baa52053;hp=10d70f84cccdaed241d29a213b12c93b3ce0d652;hpb=1b1aa1d7f2b93c8f3bf37e2885a4ca67f426ee5a;p=netvirt.git diff --git a/vpnservice/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang b/vpnservice/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang index 10d70f84cc..d75be26035 100644 --- a/vpnservice/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang +++ b/vpnservice/fibmanager/fibmanager-api/src/main/yang/odl-fib.yang @@ -8,7 +8,7 @@ module odl-fib { description "FIB Manager module"; } - grouping ipv4Entries{ + grouping ipv4Entries { list ipv4Entry{ key "destPrefix"; leaf destPrefix {type string;} @@ -16,25 +16,73 @@ module odl-fib { } } - grouping vrfEntries{ - list vrfEntry{ - key "destPrefix"; + grouping vrfEntryBase { leaf destPrefix { type string; mandatory true; } - leaf label { - type uint32; - mandatory true; - } - leaf-list nextHopAddressList { - type string; - min-elements "1"; + leaf mac { + type string; } 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; + } } } @@ -43,16 +91,130 @@ module odl-fib { 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; + } + } + } + } + +}