Vpnmanager module sync up
[netvirt.git] / vpnservice / fibmanager / fibmanager-api / src / main / yang / odl-fib.yang
1 module odl-fib {
2     namespace "urn:opendaylight:netvirt:fibmanager";
3     prefix odl-fib;
4
5     import yang-ext {prefix ext; revision-date "2013-07-09";}
6
7     revision "2015-03-30" {
8         description "FIB Manager module";
9     }
10
11     grouping ipv4Entries{
12         list ipv4Entry{
13             key  "destPrefix";
14             leaf destPrefix {type string;}
15             leaf nextHopAddress {type string;}
16         }
17     }
18
19     grouping vrfEntries{
20         list vrfEntry{
21             key  "destPrefix";
22             leaf destPrefix {
23                 type string;
24                 mandatory true;
25             }
26             leaf label {
27                 type uint32;
28                 mandatory true;
29             }
30             leaf-list nextHopAddressList {
31                 type string;
32                 min-elements "1";
33             }
34             leaf origin {
35                 type string;
36                 mandatory true;
37             }
38         }
39     }
40
41     augment "/odl-fib:fibEntries/odl-fib:vrfTables/odl-fib:vrfEntry" {
42             ext:augment-identifier "subnetRoute";
43             leaf elantag {type uint32;}
44     }
45
46     container fibEntries {
47         config true;
48         list vrfTables{
49             key "routeDistinguisher";
50             leaf routeDistinguisher {type string;}
51             uses vrfEntries;
52         }
53
54         container ipv4Table{
55             uses ipv4Entries;
56         }
57     }
58
59     container label-route-map {
60          config false;
61          list label-route-info {
62             key label;
63             leaf label { type uint32; }
64             leaf dpn-id { type uint64; }
65             leaf prefix { type string; }
66             leaf-list next-hop-ip-list { type string; }
67             leaf-list vpn-instance-list { type string; }
68             leaf parent-vpnid { type uint32; }
69             leaf vpn-interface-name { type string; }
70             leaf elan-tag { type uint32; }
71             leaf is-subnet-route { type boolean; }
72             leaf parent-vpn-rd { type string; }
73          }
74     }
75 }