diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-mpls.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-mpls.yang | 746 |
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 -} |