1 module bgp-segment-routing {
3 namespace "urn:opendaylight:params:xml:ns:yang:bgp-segment-routing-ext";
6 import network-concepts { prefix netc; revision-date 2013-11-25; }
7 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
8 import odl-uint24 { prefix uint24; }
10 organization "Cisco Systems, Inc.";
11 contact "Iveta Halanova <ihalanov@cisco.com>";
14 "This module contains the base data concepts contained
15 in draft-gredler-idr-bgp-ls-segment-routing-ext-02.
17 Copyright (c)2015 Cisco Systems, Inc. All rights reserved.
19 This program and the accompanying materials are made available
20 under the terms of the Eclipse Public License v1.0 which
21 accompanies this distribution, and is available at
22 http://www.eclipse.org/legal/epl-v10.html";
24 revision "2015-10-14" {
30 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.1.2";
32 enum shortest-path-first {
35 enum strict-shortest-path-first {
42 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.2";
46 grouping sid-label-index {
47 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.3.4";
48 choice sid-label-index {
49 case local-label-case {
54 case ipv6-address-case {
56 type inet:ipv6-address;
67 grouping sr-capabilities-tlv {
68 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.1.1";
84 grouping sr-algorithms-tlv {
85 leaf-list algorithms {
90 grouping ospf-adj-flags {
91 reference "https://tools.ietf.org/html/draft-ietf-ospf-segment-routing-extensions-08#section-7.1";
102 case ospf-adj-flags-case {
103 container ospf-adj-flags {
107 case isis-adj-flags-case {
108 reference "https://tools.ietf.org/html/draft-ietf-isis-segment-routing-extensions-06#section-2.2.1";
109 container isis-adj-flags {
111 leaf address-family {
119 grouping adj-sid-tlv {
120 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.2.1";
122 uses epe-adj-sid-tlv;
125 grouping epe-adj-sid-tlv {
129 uses sid-label-index;
132 grouping lan-adj-sid-tlv {
133 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.2.2";
139 type netc:iso-system-identifier;
142 type inet:ipv4-address;
144 uses sid-label-index;
147 grouping prefix-flags {
156 grouping prefix-sid-tlv {
157 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.3.1";
159 case isis-prefix-flags-case {
160 container isis-prefix-flags {
161 reference "https://tools.ietf.org/html/draft-ietf-ospf-segment-routing-extensions-08#section-5";
163 leaf readvertisement {
171 case ospf-prefix-flags-case {
172 container ospf-prefix-flags {
173 reference "https://tools.ietf.org/html/draft-ietf-ospf-segment-routing-extensions-05#section-5";
175 leaf mapping-server {
184 uses sid-label-index;
187 grouping ipv6-prefix-sid-tlv {
188 reference "https://tools.ietf.org/html/draft-previdi-isis-ipv6-prefix-sid-02#page-2";
200 grouping ero-ipv4-address {
203 type inet:ipv4-address;
208 grouping ero-ipv6-address {
211 type inet:ipv6-address;
216 grouping ero-unnumbered {
226 grouping binding-sub-tlvs {
227 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.3.4";
228 choice binding-sub-tlv {
229 case prefix-sid-case {
230 container prefix-sid {
234 case ipv6-prefix-sid-case {
235 container ipv6-prefix-sid {
236 uses ipv6-prefix-sid-tlv;
239 case sid-label-case {
240 uses sid-label-index;
242 case ero-metric-case {
249 uses ero-ipv4-address;
254 uses ero-ipv6-address;
257 case unnumbered-interface-id-ero-case {
258 container unnumbered-interface-id-ero {
262 case ipv4-ero-backup-case {
263 container ipv4-ero-backup {
264 uses ero-ipv4-address;
267 case ipv6-ero-backup-case {
268 container ipv6-ero-backup {
269 uses ero-ipv6-address;
272 case unnumbered-interface-id-backup-ero-case {
273 container unnumbered-interface-id-backup-ero {
280 grouping isis-binding-flags {
281 reference "https://tools.ietf.org/html/draft-ietf-isis-segment-routing-extensions-06#section-2.4";
282 leaf address-family {
285 leaf mirror-context {
291 leaf leaked-from-level-2 {
299 grouping ospf-binding-flags {
300 reference "https://tools.ietf.org/html/draft-ietf-ospf-segment-routing-extensions-08#section-6";
306 grouping binding-sid-tlv {
307 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.3.3";
312 case isis-binding-flags-case {
313 uses isis-binding-flags;
315 case ospf-binding-flags-case {
316 uses ospf-binding-flags;
319 list binding-sub-tlvs {
320 uses binding-sub-tlvs;
324 grouping range-sub-tlvs {
325 choice range-sub-tlv {
326 case binding-sid-tlv-case {
327 uses binding-sid-tlv;
329 case prefix-sid-tlv-case {
330 container prefix-sid-tlv {
334 case ipv6-prefix-sid-tlv-case {
335 container ipv6-prefix-sid-tlv {
336 uses ipv6-prefix-sid-tlv;
339 case sid-label-tlv-case {
340 uses sid-label-index;
346 reference "https://tools.ietf.org/html/draft-gredler-idr-bgp-ls-segment-routing-ext-02#section-2.3.2";