3 namespace "urn:opendaylight:params:xml:ns:yang:rsvp";
6 import iana { prefix iana; revision-date 2013-08-16; }
7 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
8 import ieee754 { prefix ieee754; revision-date 2013-08-19; }
9 import network-concepts { prefix netc; revision-date 2013-11-25; }
11 organization "Cisco Systems, Inc.";
12 contact "Robert Varga <rovarga@cisco.com>";
15 "This module contains the definition of types related to
16 Resource Reservation Protocol (RSVP).
18 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.
20 This program and the accompanying materials are made available
21 under the terms of the Eclipse Public License v1.0 which
22 accompanies this distribution, and is available at
23 http://www.eclipse.org/legal/epl-v10.html";
25 revision "2015-08-20" {
27 "Updated to extend RSVP Objects.";
28 reference "http://tools.ietf.org/html/draft-ietf-idr-te-lsp-distribution-01#section-2.1";
31 revision "2013-08-20" {
34 reference "https://tools.ietf.org/html/rfc2205";
37 typedef attribute-filter {
41 grouping attribute-filters {
43 type attribute-filter;
47 type attribute-filter;
51 type attribute-filter;
55 grouping rsvp-te-object {
57 "Common marker for all RSVP-TE Objects.";
72 grouping tunnel-attributes {
75 leaf local-protection-desired {
80 leaf label-recording-desired {
85 leaf se-style-desired {
94 uses attribute-filters;
99 reference "https://tools.ietf.org/html/rfc3209#section-4.6.2.1";
104 reference "https://tools.ietf.org/html/rfc3209#section-4.6.1.1";
107 typedef ipv4-extended-tunnel-id {
108 type inet:ipv4-address-no-zone;
109 reference "https://tools.ietf.org/html/rfc3209#section-4.6.1.1";
112 typedef ipv6-extended-tunnel-id {
113 type inet:ipv6-address-no-zone;
114 reference "https://tools.ietf.org/html/rfc3209#section-4.6.1.2";
119 reference "http://tools.ietf.org/html/rfc4202#section-2.3";
127 enum full-rerouting {
130 enum rerouting-without-extra-traffic {
133 enum protection-with-extra-traffic {
136 enum unidirectional-protection {
139 enum bidirectional-protection {
147 enum totally-unprotected {
162 enum dedicated-1plus1 {
171 grouping error-spec {
172 reference "https://tools.ietf.org/html/rfc2205#page-81";
175 type inet:ip-address-no-zone;
201 grouping user-error-spec {
202 reference "https://tools.ietf.org/html/rfc5284#section-3";
205 type iana:enterprise-number;
224 container subobjects {
225 // Filled by enterprise-specific augmentations
232 grouping type1-label {
233 reference "https://tools.ietf.org/html/rfc3209#section-4.1";
243 grouping generalized-label {
244 reference "https://tools.ietf.org/html/rfc3473#section-2.3";
248 leaf generalized-label {
254 grouping waveband-switching-label {
255 reference "https://tools.ietf.org/html/rfc3473#section-2.4";
274 reference "https://tools.ietf.org/html/rfc3473#section-2.6";
278 enum inclusive-list {
281 enum exclusive-list {
284 enum inclusive-range {
287 enum exclusive-range {
293 container label-type {
294 // Technology-specific
303 grouping c-subobject {
307 grouping ip-prefix-subobject {
310 reference "http://tools.ietf.org/html/rfc3209#section-4.3.3.1";
316 grouping as-number-subobject {
319 reference "http://tools.ietf.org/html/rfc3209#section-4.3.3.4";
325 grouping label-subobject {
328 leaf uni-directional {
334 case type1-label-case {
335 container type1-label {
339 case generalized-label-case {
340 container generalized-label {
341 uses generalized-label;
344 case waveband-switching-label-case {
345 container waveband-switching-label {
346 uses waveband-switching-label;
352 grouping unnumbered-subobject {
365 grouping srlg-subobject {
383 grouping path-key-subobject {
384 reference "https://tools.ietf.org/html/rfc5520#section-3.1";
398 grouping protection-subobject {
399 container protection-subobject {
439 grouping record-route-subobjects {
440 leaf protection-available {
445 leaf protection-in-use {
450 choice subobject-type {
451 case ip-prefix-case {
452 container ip-prefix {
453 uses ip-prefix-subobject;
459 uses label-subobject;
468 case unnumbered-case {
469 container unnumbered {
470 uses unnumbered-subobject;
476 uses path-key-subobject;
482 grouping basic-explicit-route-subobjects {
483 description "Subobjects shared between XRO and ERO";
484 reference "https://tools.ietf.org/html/rfc4874#section-4.1";
486 choice subobject-type {
487 case as-number-case {
488 container as-number {
489 uses as-number-subobject;
492 case ip-prefix-case {
493 container ip-prefix {
494 uses ip-prefix-subobject;
499 uses label-subobject;
507 case unnumbered-case {
508 container unnumbered {
509 uses unnumbered-subobject;
515 grouping exclude-route-object {
516 container exclude-route-object {
518 list subobject-container {
519 uses exclude-route-subobjects;
525 grouping record-route-subobjects-list {
526 list subobject-container {
527 uses record-route-subobjects;
532 grouping explicit-route-subobjects-list {
534 list subobject-container {
540 uses explicit-route-subobjects;
545 grouping record-route-object {
546 container record-route-object {
548 uses record-route-subobjects-list;
552 grouping explicit-route-object {
553 container explicit-route-object {
554 description "Explicit Route Object";
555 reference "http://tools.ietf.org/html/rfc3209#section-4.3";
558 uses explicit-route-subobjects-list;
562 grouping secondary-explicit-route-object {
563 container secondary-explicit-route-object {
564 description "Explicit Route Object";
565 reference "http://tools.ietf.org/html/rfc4873#section-4.1";
568 list subobject-container {
574 uses secondary-explicit-route-subobjects;
580 grouping secondary-explicit-route-subobjects {
581 uses explicit-route-subobjects {
582 augment "subobject-type" {
583 case basic-protection-case {
584 container basic-protection {
585 uses protection-subobject;
589 case dynamic-control-protection-case {
590 container dynamic-control-protection {
591 uses protection-subobject;
598 grouping secondary-record-route-object {
599 container secondary-record-route-object {
601 list subobject-container {
602 uses secondary-record-route-subobjects;
608 grouping secondary-record-route-subobjects {
609 uses record-route-subobjects {
610 augment "subobject-type" {
611 case basic-protection-case {
612 container basic-protection {
613 uses protection-subobject;
617 case dynamic-control-protection-case {
618 container dynamic-control-protection {
619 uses protection-subobject;
626 grouping exclude-route-subobjects {
627 description "Subobject of an Exclude Route Object";
628 reference "https://tools.ietf.org/html/rfc4874#section-3.1";
650 uses basic-explicit-route-subobjects;
653 grouping explicit-route-subobjects {
654 description "Subobject of an Explicit Route Object";
655 reference "https://tools.ietf.org/html/rfc4874#section-4.1";
656 uses basic-explicit-route-subobjects {
657 augment "subobject-type" {
661 uses exclude-route-subobjects;
667 uses path-key-subobject;
674 grouping tspec-object {
675 container tspec-object {
676 description "SENDER TSPEC Object";
677 reference "https://tools.ietf.org/html/rfc2210";
680 leaf token-bucket-rate {
681 type ieee754:float32;
683 leaf token-bucket-size {
684 type ieee754:float32;
686 leaf peak-data-rate {
687 type ieee754:float32;
689 leaf minimum-policed-unit {
692 leaf maximum-packet-size {
698 typedef service-number {
703 enum controlled-load {
709 grouping flow-spec-object {
710 container flow-spec-object {
711 description "FLOW_SPEC";
712 reference "https://tools.ietf.org/html/rfc2210";
715 leaf service-header {
722 type ieee754:float32;
730 typedef association-type {
741 grouping association-object {
742 container association-object {
743 description "Association Object";
744 reference "http://tools.ietf.org/html/rfc4872#section-16";
747 leaf association-type {
748 type association-type;
750 leaf association-id {
754 type inet:ip-address-no-zone;
760 grouping admin-status-object {
761 container admin-status-object {
762 description "Admin Status Object";
763 reference "http://tools.ietf.org/html/rfc3473#section-7.1";
774 leaf administratively-down {
778 leaf deletion-in-progress {
785 grouping primary-path-route-object {
786 container primary-path-route-object {
787 description "Protection Subobject";
788 reference "http://tools.ietf.org/html/rfc4872#section-15";
791 uses explicit-route-subobjects-list;
795 grouping detour-object {
796 description "DETOUR Object";
797 reference "http://tools.ietf.org/html/rfc4090#section-4.2";
799 choice detour-object {
800 case ipv4-detour-object {
804 type inet:ipv4-address-no-zone;
808 type inet:ipv4-address-no-zone;
813 case ipv6-detour-object {
817 type inet:ipv6-address-no-zone;
823 type inet:ipv6-address-no-zone;
832 typedef fast-reroute-flags {
834 enum one-to-one-backup-desired {
837 enum facility-backup-desired {
843 grouping common-fast-reroute-object {
846 uses attribute-filters;
852 type fast-reroute-flags;
860 grouping fast-reroute-object {
861 choice fast-reroute-object {
862 description "FAST REROUTE Object";
863 reference "http://tools.ietf.org/html/rfc4090#section-4.1";
865 case basic-fast-reroute-object-case {
866 container basic-fast-reroute-object {
867 uses common-fast-reroute-object;
870 case legacy-fast-reroute-object-case {
871 container legacy-fast-reroute-object {
872 uses common-fast-reroute-object;
878 grouping session-attribute-object {
879 choice session-attribute-object {
880 description "SESSION_ATTRIBUTE";
881 reference "http://tools.ietf.org/html/rfc3209#section-4.7";
883 case basic-session-attribute-object-case {
884 container basic-session-attribute-object {
886 uses tunnel-attributes;
889 case session-attribute-object-with-resources-affinities-case {
890 container session-attribute-object-with-resources-affinities {
892 uses tunnel-attributes;
898 grouping bandwidth-object {
899 choice bandwidth-object {
900 description "BANDWIDTH Object";
901 reference "https://tools.ietf.org/html/rfc5440#section-7.7";
903 case basic-bandwidth-object-case {
904 container basic-bandwidth-object {
906 // No possibility to carry TLVs
912 case reoptimization-bandwidth-object-case {
913 container reoptimization-bandwidth-object {
915 // No possibility to carry TLVs
924 grouping metric-object {
925 description "METRIC Object";
926 reference "https://tools.ietf.org/html/rfc5440#section-7.8";
927 container metric-object {
946 type ieee754:float32;
951 grouping protection-object {
952 choice protection-object {
953 description "Protection Subobject";
954 reference "http://tools.ietf.org/html/rfc4873#section-6.1"
955 + " http://tools.ietf.org/html/rfc4872#section-14";
957 case basic-protection-object-case {
958 container basic-protection-object {
960 uses protection-subobject;
963 case dynamic-control-protection-object-case {
964 container dynamic-control-protection-object {
966 uses protection-subobject;
972 grouping lsp-attributes-object {
973 container lsp-attributes-object {
974 description "Lsp Attributes Object";
975 reference "http://tools.ietf.org/html/rfc5420#section-4";
978 list subobject-container {
979 uses lsp-att-subobject;
984 grouping lsp-required-attributes-object {
985 container lsp-required-attributes-object {
986 description "Lsp Required Attributes Object";
987 reference "http://tools.ietf.org/html/rfc5420#section-5";
990 uses lsp-attributes-object;
994 grouping attribute-flags {
995 description "Attributes Flags";
996 reference "http://tools.ietf.org/html/rfc5420#section-3.1";
997 list flag-container {
1006 grouping lsp-att-subobject {
1007 choice lsp-subobject {
1009 uses attribute-flags;