openconfig-mpls-rsvp

Configuration for RSVP-TE signaling, including global protocol parameters and LSP-specific configuration for constrained-path LS...

  • Version: 2016-12-15

    openconfig-mpls-rsvp@2016-12-15


    
      module openconfig-mpls-rsvp {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/rsvp";
    
        prefix oc-rsvp;
    
        import ietf-inet-types {
          prefix inet;
        }
        import openconfig-mpls-types {
          prefix oc-mplst;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import openconfig-types {
          prefix oc-types;
        }
        import openconfig-extensions {
          prefix oc-ext;
        }
        import openconfig-interfaces {
          prefix oc-if;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
         netopenconfig@googlegroups.com";
    
        description
          "Configuration for RSVP-TE signaling, including global protocol
         parameters and LSP-specific configuration for constrained-path
         LSPs";
    
        revision "2016-12-15" {
          description
            "Add additional MPLS parameters";
          reference
            "2.1.0";
    
        }
    
        revision "2016-09-01" {
          description
            "Revisions based on implementation feedback";
          reference
            "2.0.0";
    
        }
    
        revision "2016-08-08" {
          description
            "Public release of MPLS models";
          reference
            "1.0.1";
    
        }
    
        oc-ext:openconfig-version "2.1.0";
    
        grouping mpls-rsvp-soft-preemption_config {
          description
            "Configuration for MPLS soft preemption";
          leaf enable {
            type boolean;
            default 'false';
            description
              "Enables soft preemption on a node.";
          }
    
          leaf soft-preemption-timeout {
            type uint16 {
              range "0..max";
            }
            default '0';
            description
              "Timeout value for soft preemption to revert
             to hard preemption";
            reference
              "RFC5712 MPLS-TE soft preemption";
    
          }
        }  // grouping mpls-rsvp-soft-preemption_config
    
        grouping mpls-rsvp-soft-preemption {
          description
            "Top level group for MPLS soft preemption";
          container soft-preemption {
            description
              "Protocol options relating to RSVP
             soft preemption";
            container config {
              description
                "Configuration parameters relating to RSVP
               soft preemption support";
              uses mpls-rsvp-soft-preemption_config;
            }  // container config
    
            container state {
              config false;
              description
                "State parameters relating to RSVP
               soft preemption support";
              uses mpls-rsvp-soft-preemption_config;
            }  // container state
          }  // container soft-preemption
        }  // grouping mpls-rsvp-soft-preemption
    
        grouping mpls-rsvp-hellos_config {
          description
            "RSVP protocol options configuration.";
          leaf hello-interval {
            type uint16 {
              range "1000..60000";
            }
            units "milliseconds";
            default '9000';
            description
              "set the interval in ms between RSVP hello
             messages";
            reference
              "RFC 3209: RSVP-TE: Extensions to RSVP for
              LSP Tunnels.
               RFC 5495: Description of the Resource
              Reservation Protocol - Traffic-Engineered
              (RSVP-TE) Graceful Restart Procedures";
    
          }
    
          leaf refresh-reduction {
            type boolean;
            default 'true';
            description
              "enables all RSVP refresh reduction message
             bundling, RSVP message ID, reliable message delivery
             and summary refresh";
            reference
              "RFC 2961 RSVP Refresh Overhead Reduction
              Extensions";
    
          }
        }  // grouping mpls-rsvp-hellos_config
    
        grouping mpls-rsvp-hellos {
          description
            "Top level grouping for RSVP hellos parameters";
          container hellos {
            description
              "Top level container for RSVP hello parameters";
            container config {
              description
                "Configuration parameters relating to RSVP
               hellos";
              uses mpls-rsvp-hellos_config;
            }  // container config
    
            container state {
              config false;
              description
                "State information associated with RSVP hellos";
              uses mpls-rsvp-hellos_config;
            }  // container state
          }  // container hellos
        }  // grouping mpls-rsvp-hellos
    
        grouping mpls-rsvp-subscription_config {
          description
            "RSVP subscription configuration";
          leaf subscription {
            type oc-types:percentage;
            description
              "percentage of the interface bandwidth that
             RSVP can reserve";
          }
        }  // grouping mpls-rsvp-subscription_config
    
        grouping mpls-rsvp-subscription {
          description
            "Top level group for RSVP subscription options";
          container subscription {
            description
              "Bandwidth percentage reservable by RSVP
             on an interface";
            container config {
              description
                "Configuration parameters relating to RSVP
              subscription options";
              uses mpls-rsvp-subscription_config;
            }  // container config
    
            container state {
              config false;
              description
                "State parameters relating to RSVP
              subscription options";
              uses mpls-rsvp-subscription_config;
            }  // container state
          }  // container subscription
        }  // grouping mpls-rsvp-subscription
    
        grouping mpls-rsvp-graceful-restart_config {
          description
            "Configuration parameters relating to RSVP Graceful-Restart";
          leaf enable {
            type boolean;
            default 'false';
            description
              "Enables graceful restart on the node.";
          }
    
          leaf restart-time {
            type uint32;
            description
              "Graceful restart time (seconds).";
            reference
              "RFC 5495: Description of the Resource
              Reservation Protocol - Traffic-Engineered
              (RSVP-TE) Graceful Restart Procedures";
    
          }
    
          leaf recovery-time {
            type uint32;
            description
              "RSVP state recovery time";
          }
        }  // grouping mpls-rsvp-graceful-restart_config
    
        grouping mpls-rsvp-graceful-restart {
          description
            "Top level group for RSVP graceful-restart
           parameters";
          container graceful-restart {
            description
              "Operational state and configuration parameters relating to
            graceful-restart for RSVP";
            container config {
              description
                "Configuration parameters relating to
               graceful-restart";
              uses mpls-rsvp-graceful-restart_config;
            }  // container config
    
            container state {
              config false;
              description
                "State information associated with
               RSVP graceful-restart";
              uses mpls-rsvp-graceful-restart_config;
            }  // container state
          }  // container graceful-restart
        }  // grouping mpls-rsvp-graceful-restart
    
        grouping mpls-rsvp-authentication_config {
          description
            "RSVP authentication parameters container.";
          leaf enable {
            type boolean;
            default 'false';
            description
              "Enables RSVP authentication on the node.";
          }
    
          leaf authentication-key {
            type string {
              length "1..32";
            }
            description
              "authenticate RSVP signaling
             messages";
            reference
              "RFC 2747: RSVP Cryptographic Authentication";
    
          }
        }  // grouping mpls-rsvp-authentication_config
    
        grouping mpls-rsvp-authentication {
          description
            "Top level group for RSVP authentication,
           as per RFC2747";
          container authentication {
            description
              "Configuration and state parameters relating to RSVP
            authentication as per RFC2747";
            container config {
              description
                "Configuration parameters relating
               to authentication";
              uses mpls-rsvp-authentication_config;
            }  // container config
    
            container state {
              config false;
              description
                "State information associated
               with authentication";
              uses mpls-rsvp-authentication_config;
            }  // container state
          }  // container authentication
        }  // grouping mpls-rsvp-authentication
    
        grouping mpls-rsvp-protection_config {
          description
            "RSVP facility (link/node) protection configuration";
          leaf link-protection-style-requested {
            type identityref {
              base oc-mplst:PROTECTION_TYPE;
            }
            description
              "Style of mpls frr protection desired:
            link, link-node, or unprotected";
          }
    
          leaf bypass-optimize-interval {
            type uint16;
            units "seconds";
            description
              "interval between periodic optimization
            of the bypass LSPs";
          }
        }  // grouping mpls-rsvp-protection_config
    
        grouping mpls-rsvp-link-protection {
          description
            "Top level group for RSVP protection";
          container protection {
            description
              "link-protection (NHOP) related configuration";
            container config {
              description
                "Configuration for link-protection";
              uses mpls-rsvp-protection_config;
            }  // container config
    
            container state {
              config false;
              description
                "State for link-protection";
              uses mpls-rsvp-protection_config;
            }  // container state
          }  // container protection
        }  // grouping mpls-rsvp-link-protection
    
        grouping mpls-rsvp-statistics {
          description
            "Top level grouping for RSVP protocol state";
          uses mpls-rsvp-protocol-state;
        }  // grouping mpls-rsvp-statistics
    
        grouping rsvp-global {
          description
            "Global RSVP protocol configuration";
          container rsvp-te {
            description
              "RSVP-TE global signaling protocol configuration";
            uses mpls-rsvp-session-state;
    
            container neighbors {
              description
                "Configuration and state for RSVP neighbors connecting
              to the device";
              list neighbor {
                key "address";
                config false;
                description
                  "List of RSVP neighbors of the local system";
                leaf address {
                  type leafref {
                    path "../state/address";
                  }
                  description
                    "Reference to the address of the RSVP neighbor";
                }
    
                container state {
                  config false;
                  description
                    "Operational state parameters relating to the
                  RSVP neighbor";
                  uses mpls-rsvp-neighbor-state;
                }  // container state
              }  // list neighbor
            }  // container neighbors
    
            container global {
              description
                "Platform wide RSVP configuration and state";
              uses mpls-rsvp-graceful-restart;
    
              uses mpls-rsvp-soft-preemption;
    
              uses mpls-rsvp-hellos;
    
              container state {
                config false;
                description
                  "Platform wide RSVP state, including counters";
                container counters {
                  config false;
                  description
                    "Platform wide RSVP statistics and counters";
                  uses mpls-rsvp-global-protocol-state;
    
                  uses mpls-rsvp-statistics;
                }  // container counters
              }  // container state
            }  // container global
    
            container interface-attributes {
              description
                "Attributes relating to RSVP-TE enabled interfaces";
              list interface {
                key "interface-id";
                description
                  "list of per-interface RSVP configurations";
                leaf interface-id {
                  type leafref {
                    path
                      "../config/interface-id";
                  }
                  description
                    "reference to the interface-id data";
                }
    
                container config {
                  description
                    "Configuration of per-interface RSVP parameters";
                  leaf interface-id {
                    type oc-if:interface-id;
                    description
                      "Identifier for the interface";
                  }
                }  // container config
    
                container state {
                  config false;
                  description
                    "Per-interface RSVP protocol and state information";
                  uses mpls-rsvp-interfaces-state;
    
                  container counters {
                    config false;
                    description
                      "Interface specific RSVP statistics and counters";
                    uses mpls-rsvp-protocol-state;
                  }  // container counters
                }  // container state
    
                uses oc-if:interface-ref;
    
                uses mpls-rsvp-interface-reservations;
    
                uses mpls-rsvp-hellos;
    
                uses mpls-rsvp-authentication;
    
                uses mpls-rsvp-subscription;
    
                uses mpls-rsvp-link-protection;
              }  // list interface
            }  // container interface-attributes
          }  // container rsvp-te
        }  // grouping rsvp-global
    
        grouping rsvp-p2p-tunnel-attributes_config {
          description
            "properties of RSPP point-to-point paths";
          leaf source {
            type inet:ip-address;
            description
              "RSVP-TE tunnel source address";
          }
    
          leaf soft-preemption {
            type boolean;
            default 'false';
            description
              "Enables RSVP soft-preemption on this LSP";
          }
    
          uses rsvp-priorities_config;
        }  // grouping rsvp-p2p-tunnel-attributes_config
    
        grouping rsvp-priorities_config {
          description
            "Configuration paramters related to RSVP-TE priorities";
          leaf setup-priority {
            type uint8 {
              range "0..7";
            }
            default '7';
            description
              "RSVP-TE preemption priority during LSP setup, lower is
             higher priority; default 7 indicates that LSP will not
             preempt established LSPs during setup";
            reference
              "RFC 3209 - RSVP-TE: Extensions to RSVP for
              LSP Tunnels";
    
          }
    
          leaf hold-priority {
            type uint8 {
              range "0..7";
            }
            default '0';
            description
              "preemption priority once the LSP is established,
             lower is higher priority; default 0 indicates other LSPs
             will not preempt the LSPs once established";
            reference
              "RFC 3209 - RSVP-TE: Extensions to RSVP for
              LSP Tunnels";
    
          }
        }  // grouping rsvp-priorities_config
    
        grouping rsvp-p2p-path-attributes_config {
          description
            "properties of RSPP point-to-point paths";
          uses rsvp-priorities_config;
    
          leaf retry-timer {
            type uint16 {
              range "1..600";
            }
            units "seconds";
            description
              "sets the time between attempts to establish the
             LSP";
          }
        }  // grouping rsvp-p2p-path-attributes_config
    
        grouping mpls-rsvp-neighbor-state {
          description
            "State information for RSVP neighbors";
          leaf address {
            type inet:ip-address;
            description
              "Address of RSVP neighbor";
          }
    
          leaf detected-interface {
            type string;
            description
              "Interface where RSVP neighbor was detected";
          }
    
          leaf neighbor-status {
            type enumeration {
              enum "UP" {
                value 0;
                description
                  "RSVP hello messages are detected from the neighbor";
              }
              enum "DOWN" {
                value 1;
                description
                  "RSVP neighbor not detected as up, due to a
                 communication failure or IGP notification
                 the neighbor is unavailable";
              }
            }
            description
              "Enumuration of possible RSVP neighbor states";
          }
    
          leaf refresh-reduction {
            type boolean;
            description
              "Suppport of neighbor for RSVP refresh reduction";
            reference
              "RFC 2961 RSVP Refresh Overhead Reduction
              Extensions";
    
          }
        }  // grouping mpls-rsvp-neighbor-state
    
        grouping mpls-rsvp-session-state {
          description
            "State information for RSVP TE sessions";
          container sessions {
            description
              "Enclosing container for sessions";
            list session {
              key "local-index";
              config false;
              description
                "List of RSVP sessions";
              leaf local-index {
                type leafref {
                  path "../state/local-index";
                }
                description
                  "Reference to the local index for the RSVP
                session";
              }
    
              uses mpls-rsvp-record-route-object-top;
    
              container state {
                description
                  "Operational state parameters relating to the
                RSVP session";
                leaf local-index {
                  type uint32;
                  description
                    "The index used to identify the RSVP session
                   on the local network element. This index is
                   generated by the device and is unique only
                   to the local network element.";
                }
    
                leaf source-address {
                  type inet:ip-address;
                  description
                    "Origin address of RSVP session";
                }
    
                leaf destination-address {
                  type inet:ip-address;
                  description
                    "Destination address of RSVP session";
                }
    
                leaf tunnel-id {
                  type uint16;
                  description
                    "The tunnel ID is an identifier used in the
                   RSVP session, which remains constant over
                   the life of the tunnel.";
                  reference
                    "RFC 3209";
    
                }
    
                leaf lsp-id {
                  type uint16;
                  description
                    "The LSP ID distinguishes between two LSPs
                   originated from the same headend, and is
                   commonly used to distinguish RSVP sessions
                   during make before break operations.";
                  reference
                    "RFC 3209";
    
                }
    
                leaf session-name {
                  type string;
                  description
                    "The signaled name of this RSVP session.";
                }
    
                leaf status {
                  type enumeration {
                    enum "UP" {
                      value 0;
                      description
                        "RSVP session is up";
                    }
                    enum "DOWN" {
                      value 1;
                      description
                        "RSVP session is down";
                    }
                  }
                  description
                    "Enumeration of RSVP session states";
                }
    
                leaf type {
                  type identityref {
                    base oc-mplst:LSP_ROLE;
                  }
                  description
                    "The type/role of the RSVP session, signifing
                  the session's role on the current device, such as
                  a transit session vs. an ingress session.";
                }
    
                leaf label-in {
                  type oc-mplst:mpls-label;
                  description
                    "Incoming MPLS label associated with this RSVP session";
                }
    
                leaf label-out {
                  type oc-mplst:mpls-label;
                  description
                    "Outgoing MPLS label associated with this RSVP session";
                }
              }  // container state
            }  // list session
          }  // container sessions
        }  // grouping mpls-rsvp-session-state
    
        grouping mpls-rsvp-interfaces-state {
          description
            "RSVP state information relevant to an interface";
        }  // grouping mpls-rsvp-interfaces-state
    
        grouping mpls-rsvp-interface-reservations {
          description
            "Operational state related to interface bandwidth
          reservations";
          container bandwidth-reservations {
            description
              "Enclosing container for bandwidth reservation";
            list bandwidth-reservation {
              key "priority";
              config false;
              description
                "Available and reserved bandwidth by priority on
               the interface.";
              leaf priority {
                type leafref {
                  path "../state/priority";
                }
                description
                  "Reference to the RSVP priority level";
              }
    
              container state {
                description
                  "Operational state parameters relating to a
                bandwidth reservation at a certain priority";
                leaf priority {
                  type union {
                    type uint8 {
                      range "0..7";
                    }
                    type enumeration {
                      enum "ALL" {
                        value 0;
                        description
                          "The ALL keyword represents the overall
                        state of the interface - i.e., the union
                        of all of the priority levels";
                      }
                    }
                  }
                  description
                    "RSVP priority level for LSPs traversing the interface";
                }
    
                leaf available-bandwidth {
                  type oc-mplst:bandwidth-mbps;
                  description
                    "Bandwidth currently available with the priority level,
                  or for the entire interface when the priority is set to
                  ALL";
                }
    
                leaf reserved-bandwidth {
                  type oc-mplst:bandwidth-mbps;
                  description
                    "Bandwidth currently reserved within the priority level,
                  or the sum of all priority levels when the keyword is set
                  to ALL";
                }
    
                leaf active-reservations-count {
                  type yang:gauge64;
                  description
                    "Number of active RSVP reservations in the associated
                  priority, or the sum of all reservations when the priority
                  level is set to ALL";
                }
    
                leaf highwater-mark {
                  type oc-mplst:bandwidth-mbps;
                  description
                    "Maximum bandwidth reserved on the interface within the
                  priority, or across all priorities in the case that the
                  priority level is set to ALL";
                }
              }  // container state
            }  // list bandwidth-reservation
          }  // container bandwidth-reservations
        }  // grouping mpls-rsvp-interface-reservations
    
        grouping mpls-rsvp-global-protocol-state {
          description
            "RSVP protocol statistics which may not apply
          on an interface, but are significant globally.";
          leaf path-timeouts {
            type yang:counter64;
            description "TODO";
          }
    
          leaf reservation-timeouts {
            type yang:counter64;
            description "TODO";
          }
    
          leaf rate-limited-messages {
            type yang:counter64;
            description
              "RSVP messages dropped due to rate limiting";
          }
        }  // grouping mpls-rsvp-global-protocol-state
    
        grouping mpls-rsvp-protocol-state {
          description
            "RSVP protocol statistics and message counters";
          leaf in-path-messages {
            type yang:counter64;
            description
              "Number of received RSVP Path messages";
          }
    
          leaf in-path-error-messages {
            type yang:counter64;
            description
              "Number of received RSVP Path Error messages";
          }
    
          leaf in-path-tear-messages {
            type yang:counter64;
            description
              "Number of received RSVP Path Tear messages";
          }
    
          leaf in-reservation-messages {
            type yang:counter64;
            description
              "Number of received RSVP Resv messages";
          }
    
          leaf in-reservation-error-messages {
            type yang:counter64;
            description
              "Number of received RSVP Resv Error messages";
          }
    
          leaf in-reservation-tear-messages {
            type yang:counter64;
            description
              "Number of received RSVP Resv Tear messages";
          }
    
          leaf in-hello-messages {
            type yang:counter64;
            description
              "Number of received RSVP hello messages";
          }
    
          leaf in-srefresh-messages {
            type yang:counter64;
            description
              "Number of received RSVP summary refresh messages";
          }
    
          leaf in-ack-messages {
            type yang:counter64;
            description
              "Number of received RSVP refresh reduction ack
             messages";
          }
    
          leaf out-path-messages {
            type yang:counter64;
            description
              "Number of sent RSVP PATH messages";
          }
    
          leaf out-path-error-messages {
            type yang:counter64;
            description
              "Number of sent RSVP Path Error messages";
          }
    
          leaf out-path-tear-messages {
            type yang:counter64;
            description
              "Number of sent RSVP Path Tear messages";
          }
    
          leaf out-reservation-messages {
            type yang:counter64;
            description
              "Number of sent RSVP Resv messages";
          }
    
          leaf out-reservation-error-messages {
            type yang:counter64;
            description
              "Number of sent RSVP Resv Error messages";
          }
    
          leaf out-reservation-tear-messages {
            type yang:counter64;
            description
              "Number of sent RSVP Resv Tear messages";
          }
    
          leaf out-hello-messages {
            type yang:counter64;
            description
              "Number of sent RSVP hello messages";
          }
    
          leaf out-srefresh-messages {
            type yang:counter64;
            description
              "Number of sent RSVP summary refresh messages";
          }
    
          leaf out-ack-messages {
            type yang:counter64;
            description
              "Number of sent RSVP refresh reduction ack messages";
          }
        }  // grouping mpls-rsvp-protocol-state
    
        grouping mpls-rsvp-record-route-object-top {
          description
            "Top-level structure grouping for list of record route
          objects.";
          container record-route-objects {
            description
              "Enclosing container for MPLS RRO objects associated with the
            traffic engineered tunnel.";
            list record-route-object {
              key "index";
              config false;
              description
                "Read-only list of record route objects associated with the
            traffic engineered tunnel. Each entry in the list
            may contain a hop IP address, MPLS label allocated
            at the hop, and the flags associated with the entry.";
              leaf index {
                type leafref {
                  path "../state/index";
                }
                description
                  "Reference to the index of the record route object.
                The index is used to indicate the ordering of hops in
                the path.";
              }
    
              container state {
                config false;
                description
                  "Information related to RRO objects. The hop, label, and
                optional flags are present for each entry in the list.";
                uses mpls-rsvp-record-route-object-state;
              }  // container state
            }  // list record-route-object
          }  // container record-route-objects
        }  // grouping mpls-rsvp-record-route-object-top
    
        grouping mpls-rsvp-record-route-object-state {
          description
            "Grouping to hold information relating to record route
           objects relevant to a traffic engineering LSP.";
          leaf index {
            type uint8;
            description
              "Index of object in the list. Used for ordering.";
          }
    
          leaf address {
            type inet:ip-address;
            description
              "IP router hop for RRO entry";
          }
    
          leaf reported-label {
            type oc-mplst:mpls-label;
            description
              "Label reported for RRO hop";
          }
    
          leaf reported-flags {
            type uint8;
            description
              "Subobject flags for MPLS label";
          }
        }  // grouping mpls-rsvp-record-route-object-state
      }  // module openconfig-mpls-rsvp
    

© 2023 YumaWorks, Inc. All rights reserved.