summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-mpls.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-mpls.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls.yang746
1 files changed, 0 insertions, 746 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-mpls.yang b/src/plugins/yang/openconfig/openconfig-mpls.yang
deleted file mode 100644
index e6bdf96..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls.yang
+++ /dev/null
@@ -1,746 +0,0 @@
-module openconfig-mpls {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/mpls";
-
- prefix "oc-mpls";
-
-
- // import some basic types
- import openconfig-mpls-types { prefix oc-mplst; }
- import openconfig-mpls-rsvp { prefix oc-rsvp; }
- import openconfig-mpls-ldp { prefix oc-ldp; }
- import openconfig-types { prefix oc-types; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-segment-routing { prefix oc-sr; }
-
- // include submodules
- include openconfig-mpls-te;
- include openconfig-mpls-igp;
- include openconfig-mpls-static;
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module provides data definitions for configuration of
- Multiprotocol Label Switching (MPLS) and associated protocols for
- signaling and traffic engineering.
-
- RFC 3031: Multiprotocol Label Switching Architecture
-
- The MPLS / TE data model consists of several modules and
- submodules as shown below. The top-level MPLS module describes
- the overall framework. Three types of LSPs are supported:
-
- i) traffic-engineered (or constrained-path)
-
- ii) IGP-congruent (LSPs that follow the IGP path)
-
- iii) static LSPs which are not signaled
-
- The structure of each of these LSP configurations is defined in
- corresponding submodules. Companion modules define the relevant
- configuration and operational data specific to key signaling
- protocols used in operational practice.
-
-
- +-------+
- +---------------->| MPLS |<--------------+
- | +-------+ |
- | ^ |
- | | |
- +----+-----+ +--------+-------+ +-----+-----+
- | TE LSPs | | IGP-based LSPs | |static LSPs|
- | | | | | |
- +----------+ +----------------+ +-----------+
- ^ ^ ^ ^
- | +----------------+ | +--------+
- | | | |
- | +------+ +-+---+-+ +--+--+
- +---+ RSVP | |SEGMENT| | LDP |
- +------+ |ROUTING| +-----+
- +-------+
- ";
-
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- 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";
- }
-
-
- // grouping statements
-
- grouping mpls-admin-group-config {
- description
- "configuration data for MPLS link admin groups";
-
- leaf admin-group-name {
- type string;
- description
- "name for mpls admin-group";
- }
-
- leaf bit-position {
- type uint32;
- description
- "bit-position value for mpls admin-group. The value
- for the admin group is an integer that represents one
- of the bit positions in the admin-group bitmask. Values
- between 0 and 31 are interpreted as the original limit
- of 32 admin groups. Values >=32 are interpreted as
- extended admin group values as per RFC7308.";
- }
-
- }
-
- grouping mpls-admin-groups-top {
-
- description
- "top-level mpls admin-groups config
- and state containers";
-
- container mpls-admin-groups {
- description
- "Top-level container for admin-groups configuration
- and state";
-
- list admin-group {
- key "admin-group-name";
- description
- "configuration of value to name mapping
- for mpls affinities/admin-groups";
-
- leaf admin-group-name {
- type leafref {
- path "../config/admin-group-name";
- }
- description
- "name for mpls admin-group";
- }
- container config {
- description
- "Configurable items for admin-groups";
- uses mpls-admin-group-config;
- }
-
- container state {
- config false;
- description
- "Operational state for admin-groups";
- uses mpls-admin-group-config;
- }
- }
- }
- }
-
- grouping mpls-te-igp-flooding-bandwidth-config {
- description
- "Configurable items for igp flooding bandwidth
- threshold configuration.";
- leaf threshold-type {
- type enumeration {
- enum DELTA {
- description
- "DELTA indicates that the local
- system should flood IGP updates when a
- change in reserved bandwidth >= the specified
- delta occurs on the interface.";
- }
- enum THRESHOLD_CROSSED {
- description
- "THRESHOLD-CROSSED indicates that
- the local system should trigger an update (and
- hence flood) the reserved bandwidth when the
- reserved bandwidth changes such that it crosses,
- or becomes equal to one of the threshold values.";
- }
- }
- description
- "The type of threshold that should be used to specify the
- values at which bandwidth is flooded. DELTA indicates that
- the local system should flood IGP updates when a change in
- reserved bandwidth >= the specified delta occurs on the
- interface. Where THRESHOLD_CROSSED is specified, the local
- system should trigger an update (and hence flood) the
- reserved bandwidth when the reserved bandwidth changes such
- that it crosses, or becomes equal to one of the threshold
- values";
- }
-
- leaf delta-percentage {
- when "../threshold-type = 'DELTA'" {
- description
- "The percentage delta can only be specified when the
- threshold type is specified to be a percentage delta of
- the reserved bandwidth";
- }
- type oc-types:percentage;
- description
- "The percentage of the maximum-reservable-bandwidth
- considered as the delta that results in an IGP update
- being flooded";
- }
-
- leaf threshold-specification {
- when "../threshold-type = 'THRESHOLD_CROSSED'" {
- description
- "The selection of whether mirrored or separate threshold
- values are to be used requires user specified thresholds to
- be set";
- }
- type enumeration {
- enum MIRRORED_UP_DOWN {
- description
- "MIRRORED_UP_DOWN indicates that a single set of
- threshold values should be used for both increasing
- and decreasing bandwidth when determining whether
- to trigger updated bandwidth values to be flooded
- in the IGP TE extensions.";
- }
- enum SEPARATE_UP_DOWN {
- description
- "SEPARATE_UP_DOWN indicates that a separate
- threshold values should be used for the increasing
- and decreasing bandwidth when determining whether
- to trigger updated bandwidth values to be flooded
- in the IGP TE extensions.";
- }
- }
- description
- "This value specifies whether a single set of threshold
- values should be used for both increasing and decreasing
- bandwidth when determining whether to trigger updated
- bandwidth values to be flooded in the IGP TE extensions.
- MIRRORED-UP-DOWN indicates that a single value (or set of
- values) should be used for both increasing and decreasing
- values, where SEPARATE-UP-DOWN specifies that the increasing
- and decreasing values will be separately specified";
- }
-
- leaf-list up-thresholds {
- when "../threshold-type = 'THRESHOLD_CROSSED'" +
- "and ../threshold-specification = 'SEPARATE_UP_DOWN'" {
- description
- "A list of up-thresholds can only be specified when the
- bandwidth update is triggered based on crossing a
- threshold and separate up and down thresholds are
- required";
- }
- type oc-types:percentage;
- description
- "The thresholds (expressed as a percentage of the maximum
- reservable bandwidth) at which bandwidth updates are to be
- triggered when the bandwidth is increasing.";
- }
-
- leaf-list down-thresholds {
- when "../threshold-type = 'THRESHOLD_CROSSED'" +
- "and ../threshold-specification = 'SEPARATE_UP_DOWN'" {
- description
- "A list of down-thresholds can only be specified when the
- bandwidth update is triggered based on crossing a
- threshold and separate up and down thresholds are
- required";
- }
- type oc-types:percentage;
- description
- "The thresholds (expressed as a percentage of the maximum
- reservable bandwidth) at which bandwidth updates are to be
- triggered when the bandwidth is decreasing.";
- }
-
- leaf-list up-down-thresholds {
- when "../threshold-type = 'THRESHOLD_CROSSED'" +
- "and ../threshold-specification = 'MIRRORED_UP_DOWN'" {
- description
- "A list of thresholds corresponding to both increasing
- and decreasing bandwidths can be specified only when an
- update is triggered based on crossing a threshold, and
- the same up and down thresholds are required.";
- }
- type oc-types:percentage;
- description
- "The thresholds (expressed as a percentage of the maximum
- reservable bandwidth of the interface) at which bandwidth
- updates are flooded - used both when the bandwidth is
- increasing and decreasing";
- }
- }
-
-
- grouping mpls-te-igp-flooding-bandwidth {
- description
- "Top level group for traffic engineering
- database flooding options";
- container igp-flooding-bandwidth {
- description
- "Interface bandwidth change percentages
- that trigger update events into the IGP traffic
- engineering database (TED)";
- container config {
- description
- "Configuration parameters for TED
- update threshold ";
- uses mpls-te-igp-flooding-bandwidth-config;
- }
- container state {
- config false;
- description
- "State parameters for TED update threshold ";
- uses mpls-te-igp-flooding-bandwidth-config;
- }
- }
- }
-
-
- grouping te-lsp-delay-config {
- description
- "Group for the timers goerning the delay
- in installation and cleanup of TE LSPs";
-
- leaf install-delay {
- type uint16 {
- range 0..3600;
- }
- units seconds;
- description
- "delay the use of newly installed te lsp for a
- specified amount of time.";
- }
-
- leaf cleanup-delay {
- type uint16;
- units seconds;
- description
- "delay the removal of old te lsp for a specified
- amount of time";
- }
- }
-
- grouping te-interface-attributes-top {
- description
- "Top level grouping for attributes
- for TE interfaces.";
-
- list interface {
- key "interface-id";
- description
- "List of TE interfaces";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to the interface id list key";
- }
-
- container config {
- description
- "Configuration parameters related to TE interfaces:";
- uses te-interface-attributes-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to TE interfaces";
- uses te-interface-attributes-config;
- }
-
- uses oc-if:interface-ref;
-
- uses mpls-te-igp-flooding-bandwidth;
- }
- }
-
- grouping te-interface-attributes-config {
- description
- "global level definitions for interfaces
- on which TE is run";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Id of the interface";
- }
-
- leaf te-metric {
- type uint32;
- description
- "TE specific metric for the link";
- }
-
- leaf-list srlg-membership {
- type leafref {
- path "../../../../te-global-attributes/srlgs/srlg/name";
- }
- description
- "list of references to named shared risk link groups that the
- interface belongs to.";
- }
-
- leaf-list admin-group {
- type string;
- description
- "list of admin groups (by name) on the interface";
- }
- }
-
- grouping mpls-te-lsp-timers {
- description
- "Grouping for traffic engineering timers";
- container te-lsp-timers {
- description
- "Definition for delays associated with setup
- and cleanup of TE LSPs";
-
- container config {
- description
- "Configuration parameters related
- to timers for TE LSPs";
-
- uses te-lsp-delay-config;
- uses te-tunnel-reoptimize-config;
- }
-
- container state {
- config false;
- description
- "State related to timers for TE LSPs";
-
- uses te-lsp-delay-config;
- uses te-tunnel-reoptimize-config;
- }
- }
- }
-
- grouping mpls-global-config {
- description
- "Definition of global MPLS configuration parameters";
-
- leaf null-label {
- type identityref {
- base oc-mplst:NULL_LABEL_TYPE;
- }
- default oc-mplst:IMPLICIT;
- description
- "The null-label type used, implicit or explicit";
- }
-
- leaf ttl-propagation {
- type boolean;
- default true;
- description
- "Enables TTL propagation across the MPLS domain.
- When ttl-propagation is set to true, the IP TTL
- is copied into the MPLS header TTL when pushing
- a label to an IP packet. If false, the IP TTL is
- not copied into the MPLS header TTL and, therefore,
- the IP TTL is not updated in the MPLS domain.";
- }
-
- }
-
- grouping mpls-global-top {
- description
- "Top level grouping for global MPLS configuration ";
-
- container config {
- description
- "Top level global MPLS configuration";
- uses mpls-global-config;
- }
-
- container state {
- config false;
- description
- "Top level global MPLS state";
- uses mpls-global-config;
- }
- }
-
- grouping mpls-interfaces-top {
- description
- "Top level grouping for attributes
- for MPLS-enabled interfaces.";
- container interface-attributes {
- description
- "Parameters related to MPLS interfaces";
- list interface {
- key "interface-id";
- description
- "List of TE interfaces";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to the interface id list key";
- }
-
- container config {
- description
- "Configuration parameters related to MPLS interfaces:";
- uses mpls-interface-attributes-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to TE interfaces";
- uses mpls-interface-attributes-config;
- }
-
- uses oc-if:interface-ref;
- }
- }
- }
-
- grouping mpls-interface-attributes-config {
- description
- "global level definitions for interfaces
- on which MPLS is run";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Indentifier for the MPLS interface";
- }
-
- leaf mpls-enabled {
- type boolean;
- default false;
- description
- "Enable MPLS forwarding on this interface";
- }
- }
-
- grouping mpls-label-block-config {
- description
- "Configuration parameters relating to an MPLS label block.";
-
- leaf local-id {
- type string;
- description
- "A local identifier for the global label block allocation.";
- }
-
- leaf lower-bound {
- type oc-mplst:mpls-label;
- description
- "Lower bound of the global label block. The block is defined to include
- this label.";
- }
-
- leaf upper-bound {
- type oc-mplst:mpls-label;
- description
- "Upper bound for the global label block. The block is defined to include
- this label.";
- }
- }
-
- grouping mpls-label-blocks-top {
- description
- "Top-level configuration and operational state parameters corresponding
- to reserved label blocks.";
-
- container reserved-label-blocks {
- description
- "A range of labels starting with the start-label and up-to and including
- the end label that should be allocated as reserved. These labels should
- not be utilised by any dynamic label allocation on the local system unless
- the allocating protocol is explicitly configured to specify that
- allocation of labels should be out of the label block specified.";
-
- list reserved-label-block {
- key "local-id";
-
- description
- "A range of labels starting with the start-label up to and including
- the end label that should be allocated for use by a specific protocol.";
-
- leaf local-id {
- type leafref {
- path "../config/local-id";
- }
- description
- "A reference to a unique local identifier for this label block.";
- }
-
- container config {
- description
- "Configuration parameters relating to the label block.";
-
- uses mpls-label-block-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the label block.";
-
- uses mpls-label-block-config;
- }
- }
- }
- }
-
- grouping mpls-top {
- description
- "Top level grouping for MPLS configuration and state";
-
- container mpls {
- description
- "Anchor point for mpls configuration and operational
- data";
-
- container global {
- // entropy label support, label ranges will be added here.
- description
- "general mpls configuration applicable to any
- type of LSP and signaling protocol - label ranges,
- entropy label supportmay be added here";
- uses mpls-global-top;
- uses mpls-interfaces-top;
- uses mpls-label-blocks-top;
- }
-
- container te-global-attributes {
- description
- "traffic-engineering global attributes";
- uses mpls-te-srlg-top;
- uses mpls-admin-groups-top;
- uses mpls-te-lsp-timers;
- }
-
- container te-interface-attributes {
- description
- "traffic engineering attributes specific
- for interfaces";
- uses te-interface-attributes-top;
- }
-
- container signaling-protocols {
- description
- "top-level signaling protocol configuration";
-
- uses oc-rsvp:rsvp-global;
- uses oc-ldp:ldp-global;
- uses oc-sr:sr-mpls-top;
- }
-
- container lsps {
- description
- "LSP definitions and configuration";
-
- container constrained-path {
- description
- "traffic-engineered LSPs supporting different
- path computation and signaling methods";
- uses explicit-paths-top;
- uses te-tunnels-top;
- }
-
- container unconstrained-path {
- description
- "LSPs that use the IGP-determined path, i.e., non
- traffic-engineered, or non constrained-path";
-
- uses igp-lsp-common;
- uses igp-lsp-setup;
- }
-
- container static-lsps {
- description
- "statically configured LSPs, without dynamic
- signaling";
-
- uses static-lsp-top;
- }
- }
- }
- }
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-}