summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-rib-bgp-ext.yang
blob: 3c7cf35354bd8cab36a0d9aa9fee9474b0ae3284 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
module openconfig-rib-bgp-ext {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/rib/bgp-ext";

  prefix "oc-bgprib-ext";

  import openconfig-rib-bgp { prefix oc-bgprib; }
  import openconfig-extensions { prefix oc-ext; }
  import openconfig-rib-bgp-types { prefix oc-bgpribt; }

  organization "OpenConfig working group";

  contact
    "OpenConfig working group
    www.openconfig.net";

  description
    "Defines additional data nodes for the OpenConfig BGP RIB model.
    These items reflect extensions that are desirable features but
    are not currently supported in a majority of BGP
    implementations.";

  oc-ext:openconfig-version "0.3.0";

  revision "2016-10-17" {
    description
      "OpenConfig BGP RIB refactor";
    reference "0.3.0";
  }

  revision "2016-04-11" {
    description
      "OpenConfig public release";
    reference "0.2.0";
  }


  grouping rib-ext-route-annotations {
    description
      "Extended annotations for routes in the routing tables";

    leaf reject-reason {
      type union {
        type identityref {
          base oc-bgpribt:BGP_NOT_SELECTED_BESTPATH;
        }
        type identityref {
          base oc-bgpribt:BGP_NOT_SELECTED_POLICY;
        }
      }
      description
        "Indicates the reason the route is not used, either due to
        policy filtering or bestpath selection";
    }
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/oc-bgprib:loc-rib/" +
    "oc-bgprib:routes/oc-bgprib:route/oc-bgprib:state" {
      description
        "Add extended annotations to the Loc-RIB for IPv4";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/oc-bgprib:loc-rib/" +
    "oc-bgprib:routes/oc-bgprib:route/oc-bgprib:state" {
      description
        "Add extended annotations to the Loc-RIB for IPv6";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-in-pre/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state" {
      description
        "Add extended annotations to Adj-RIB for IPv4";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-in-post/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv4";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-out-pre/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv4";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-out-post/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv4";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-in-pre/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv6";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-in-post/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv6";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-out-pre/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv6";

      uses rib-ext-route-annotations;
  }

  augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
    "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
    "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
    "oc-bgprib:adj-rib-out-post/oc-bgprib:routes/oc-bgprib:route" +
    "/oc-bgprib:state"{
      description
        "Add extended annotations to Adj-RIB for IPv6";

      uses rib-ext-route-annotations;
  }

}