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;}
13 organization "Cisco Systems, Inc.";
14 contact "Dana Kutenicsova <dkutenic@cisco.com>";
17 "This module contains the base data model of a BGP message.
18 It rolls up the definitions contained in RFC4271
19 and draft-ietf-idr-ls-distribution-03.
21 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.
23 This program and the accompanying materials are made available
24 under the terms of the Eclipse Public License v1.0 which
25 accompanies this distribution, and is available at
26 http://www.eclipse.org/legal/epl-v10.html";
28 revision "2013-09-18" {
31 reference "draft-ietf-idr-ls-distribution-03";
35 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2";
53 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2";
76 typedef ospf-route-type {
77 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.3.1";
100 typedef route-distinguisher {
108 typedef domain-identifier {
109 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
115 typedef area-identifier {
116 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
123 typedef iso-system-identifier {
124 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
130 typedef ipv4-interface-identifier {
131 reference "http://tools.ietf.org/html/rfc5305#section-3.2";
132 type inet:ipv4-address;
135 typedef ipv6-interface-identifier {
136 reference "http://tools.ietf.org/html/rfc6119#section-4.2";
137 type inet:ipv6-address;
140 typedef ospf-interface-identifier {
141 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
147 typedef topology-identifier {
148 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.5";
155 grouping isis-router-identifier {
156 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
158 type iso-system-identifier;
163 grouping isis-lan-identifier {
164 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
165 container is-is-router-identifier {
166 uses isis-router-identifier;
176 grouping ospf-router-identifier {
177 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
178 leaf ospf-router-id {
186 grouping ospf-v2-lan-identifier {
187 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
188 uses ospf-router-identifier;
190 type ipv4-interface-identifier;
195 grouping ospf-v3-lan-identifier {
196 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.2.1.4";
197 uses ospf-router-identifier;
199 type ospf-interface-identifier;
204 grouping node-identifier {
209 type area-identifier;
212 type domain-identifier;
214 choice router-identifier {
216 container isis-node {
217 uses isis-router-identifier;
221 case isis-pseudonode {
222 container isis-pseudonode {
223 uses isis-lan-identifier;
228 container ospf-node {
229 uses ospf-router-identifier;
233 case ospf-pseudonode {
234 container ospf-pseudonode {
235 uses ospf-v3-lan-identifier;
241 augment "/bgp-msg:update/bgp-msg:path-attributes/bgp-mp:mp-reach-nlri/bgp-mp:nlri/bgp-mp:nlri-type" {
247 type route-distinguisher;
256 container local-node-descriptors {
257 uses node-identifier;
259 container remote-node-descriptors {
260 when "../nlri-type = link";
261 uses node-identifier;
263 container Link-Descriptors {
264 when "../nlri-type = link";
265 leaf ipv4-interface-address {
266 type ipv4-interface-identifier;
268 leaf ipv6-interface-address {
269 type ipv6-interface-identifier;
271 leaf ipv4-neighbor-address {
272 type ipv4-interface-identifier;
274 leaf ipv6-neighbor-address {
275 type ipv6-interface-identifier;
277 leaf multi-topology-id {
278 type topology-identifier;
281 container prefix-descriptors {
282 when "../nlri-type = 'ipv4-prefix' or ../nlri-type = 'ipv6-prefix'";
283 leaf multi-topology-id {
284 type topology-identifier;
286 leaf ospf-route-type {
287 when "../rotocol-id = 'ospf'";
288 type ospf-route-type;
290 leaf ip-reachability-information {
298 typedef node-flag-bits {
299 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.1";
316 typedef isis-area-identifier {
317 reference "https://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.2";
323 typedef ipv4-router-identifier {
324 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.4";
325 type inet:ipv4-address;
328 typedef ipv6-router-identifier {
329 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1.4";
330 type inet:ipv6-address;
333 grouping node-state {
334 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.1";
335 leaf topology-identifier {
336 type topology-identifier;
341 leaf-list isis-area-id {
342 type isis-area-identifier;
344 leaf dynamic-hostname {
347 leaf ipv4-router-id {
348 type ipv4-router-identifier;
350 leaf ipv6-router-id {
351 type ipv6-router-identifier;
355 typedef link-protection-type {
356 reference "http://tools.ietf.org/html/rfc5307#section-1.2";
367 enum dedicated-1to1 {
370 enum dedicated-1plus1 {
380 typedef mpls-protocol-mask {
381 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2.2";
394 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2.3";
400 typedef shared-risk-link-group {
401 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2.4";
413 typedef administrative-group {
417 grouping unreserved-bandwidth {
428 grouping link-state {
429 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.2";
430 leaf local-ipv4-router-id {
431 type ipv4-router-identifier;
433 leaf local-ipv6-router-id {
434 type ipv6-router-identifier;
436 leaf remote-ipv4-router-id {
437 type ipv4-router-identifier;
439 leaf remote-ipv6-router-id {
440 type ipv6-router-identifier;
443 type mpls-protocol-mask;
448 leaf-list shared-risk-link-groups {
449 type shared-risk-link-group;
454 leaf max-link-bandwidth {
457 leaf max-reservable-bandwidth {
460 list unreserved-bandwidth {
462 uses unreserved-bandwidth;
464 leaf link-protection {
465 type link-protection-type;
468 type administrative-group;
473 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.2";
479 typedef extended-route-tag {
480 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.3";
488 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.4";
493 reference "http://tools.ietf.org/html/draft-ietf-idr-ls-distribution-03#section-3.3.3.1";
503 grouping prefix-state {
507 leaf-list route-tags {
510 leaf-list extended-tags {
511 type extended-route-tag;
516 leaf ospf-forwarding-address {
517 type inet:ipv4-address;
521 augment "/bgp-msg:update/bgp-msg:path-attributes" {
522 container linkstate-path-attribute {
523 choice link-state-attribute {
524 case node-attributes {
525 when "../../nlri-type = node";
528 case link-attributes {
529 when "../../nlri-type = link";
532 case prefix-attributes {
533 when "../nlri-type = 'ipv4-prefix' or ../nlri-type = 'ipv6-prefix'";