3 namespace "urn:opendaylight:params:xml:ns:yang:bgp-linkstate";
6 import ietf-inet-types {
8 revision-date 2010-09-24;
10 import bgp-message { prefix bgp-msg;}
11 import bgp-multiprotocol { prefix bgp-mp;}
12 import bgp-types { prefix bgp-t;}
13 import nps-concepts { prefix nps-c;}
15 organization "Cisco Systems, Inc.";
16 contact "Dana Kutenicsova <dkutenic@cisco.com>";
19 "This module contains the base data model of a BGP message.
20 It rolls up the definitions contained in RFC4271
21 and draft-ietf-idr-ls-distribution-03.
23 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.
25 This program and the accompanying materials are made available
26 under the terms of the Eclipse Public License v1.0 which
27 accompanies this distribution, and is available at
28 http://www.eclipse.org/legal/epl-v10.html";
30 revision "2013-09-18" {
33 reference "draft-ietf-idr-ls-distribution-03";
36 identity linkstate-address-family {
37 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2";
39 base bgp-t:address-family;
42 identity linkstate-subsequent-address-family {
43 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2";
45 base bgp-t:subsequent-address-family;
49 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2";
67 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2";
90 typedef ospf-route-type {
91 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.3.1";
114 typedef route-distinguisher {
122 typedef domain-identifier {
123 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
129 typedef area-identifier {
130 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
136 typedef ipv4-interface-identifier {
137 reference "http://tools.ietf.org/html/rfc5305#section-3.2";
138 type inet:ipv4-address;
141 typedef ipv6-interface-identifier {
142 reference "http://tools.ietf.org/html/rfc6119#section-4.2";
143 type inet:ipv6-address;
146 typedef ospf-interface-identifier {
147 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
153 typedef topology-identifier {
154 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.5";
161 grouping isis-router-identifier {
162 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
164 type nps-c:iso-system-identifier;
169 grouping isis-lan-identifier {
170 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
171 container is-is-router-identifier {
172 uses isis-router-identifier;
182 grouping ospf-router-identifier {
183 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
184 leaf ospf-router-id {
192 grouping ospf-v2-lan-identifier {
193 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
194 uses ospf-router-identifier;
196 type ipv4-interface-identifier;
201 grouping ospf-v3-lan-identifier {
202 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
203 uses ospf-router-identifier;
205 type ospf-interface-identifier;
210 grouping node-identifier {
215 type area-identifier;
218 type domain-identifier;
220 choice c-router-identifier {
222 container isis-node {
223 uses isis-router-identifier;
227 case c-isis-pseudonode {
228 container isis-pseudonode {
229 uses isis-lan-identifier;
234 container ospf-node {
235 uses ospf-router-identifier;
239 case c-ospf-pseudonode {
240 container ospf-pseudonode {
241 uses ospf-v3-lan-identifier;
247 grouping link-identifiers {
248 reference "http://tools.ietf.org/html/rfc5307";
249 leaf link-local-identifier {
254 leaf link-remote-identifier {
261 grouping linkstate-destination {
262 container c-linkstate-destination {
267 type route-distinguisher;
275 container local-node-descriptors {
276 uses node-identifier;
278 container remote-node-descriptors {
279 when "../nlri-type = link";
280 uses node-identifier;
282 container link-descriptors {
283 when "../nlri-type = link";
284 uses link-identifiers;
285 leaf ipv4-interface-address {
286 type ipv4-interface-identifier;
288 leaf ipv6-interface-address {
289 type ipv6-interface-identifier;
291 leaf ipv4-neighbor-address {
292 type ipv4-interface-identifier;
294 leaf ipv6-neighbor-address {
295 type ipv6-interface-identifier;
297 leaf multi-topology-id {
298 type topology-identifier;
301 container prefix-descriptors {
302 when "../nlri-type = 'ipv4-prefix' or ../nlri-type = 'ipv6-prefix'";
303 leaf multi-topology-id {
304 type topology-identifier;
306 leaf ospf-route-type {
307 when "../protocol-id = 'ospf'";
308 type ospf-route-type;
310 leaf ip-reachability-information {
317 augment "/bgp-msg:update/bgp-msg:path-attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:nlri" {
319 uses linkstate-destination;
323 augment "/bgp-msg:update/bgp-msg:path-attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:nlri" {
325 uses linkstate-destination;
329 typedef node-flag-bits {
330 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.1";
347 typedef isis-area-identifier {
348 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.2";
354 typedef ipv4-router-identifier {
355 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.4";
356 type inet:ipv4-address;
359 typedef ipv6-router-identifier {
360 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.4";
361 type inet:ipv6-address;
364 grouping node-state {
365 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1";
366 leaf-list topology-identifier {
367 type topology-identifier;
372 leaf-list isis-area-id {
373 type isis-area-identifier;
375 leaf dynamic-hostname {
378 leaf ipv4-router-id {
379 type ipv4-router-identifier;
381 leaf ipv6-router-id {
382 type ipv6-router-identifier;
386 typedef link-protection-type {
387 reference "http://tools.ietf.org/html/rfc5307#section-1.2";
398 enum dedicated-1to1 {
401 enum dedicated-1plus1 {
411 typedef mpls-protocol-mask {
412 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2.2";
423 typedef shared-risk-link-group {
424 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2.4";
428 typedef administrative-group {
432 grouping unreserved-bandwidth {
439 type nps-c:bandwidth;
443 grouping link-state {
444 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2";
445 leaf local-ipv4-router-id {
446 type ipv4-router-identifier;
448 leaf local-ipv6-router-id {
449 type ipv6-router-identifier;
451 leaf remote-ipv4-router-id {
452 type ipv4-router-identifier;
454 leaf remote-ipv6-router-id {
455 type ipv6-router-identifier;
458 type mpls-protocol-mask;
461 type nps-c:te-metric;
466 leaf-list shared-risk-link-groups {
467 type shared-risk-link-group;
472 leaf max-link-bandwidth {
473 type nps-c:bandwidth;
475 leaf max-reservable-bandwidth {
476 type nps-c:bandwidth;
478 list unreserved-bandwidth {
480 uses unreserved-bandwidth;
482 leaf link-protection {
483 type link-protection-type;
486 type administrative-group;
491 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.2";
497 typedef extended-route-tag {
498 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.3";
505 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.1";
515 grouping prefix-state {
519 leaf-list route-tags {
522 leaf-list extended-tags {
523 type extended-route-tag;
526 type nps-c:igp-metric;
528 leaf ospf-forwarding-address {
529 type inet:ipv4-address;
533 augment "/bgp-msg:update/bgp-msg:path-attributes" {
534 container linkstate-path-attribute {
535 choice link-state-attribute {
536 case node-attributes {
537 when "../../nlri-type = node";
540 case link-attributes {
541 when "../../nlri-type = link";
544 case prefix-attributes {
545 when "../nlri-type = 'ipv4-prefix' or ../nlri-type = 'ipv6-prefix'";