Specifies the multi-protocol label switching protocol.
Version: 2021-08-05
module huawei-mpls { yang-version 1; namespace "urn:huawei:yang:huawei-mpls"; prefix mpls; import ietf-inet-types { prefix inet; } import huawei-pub-type { prefix pub-type; } import huawei-extension { prefix ext; } import huawei-network-instance { prefix ni; } import huawei-ifm { prefix ifm; } include huawei-mpls-type; organization "Huawei Technologies Co., Ltd."; contact "Huawei Industrial Base Bantian, Longgang Shenzhen 518129 People's Republic of China Website: http://www.huawei.com Email: support@huawei.com"; description "Specifies the multi-protocol label switching protocol."; revision "2021-08-05" { description "Add sr-adjacency-ttl-mode and traffic-statistic-enable nodes."; reference "Huawei private."; } revision "2020-07-02" { description "Modified the must condition of nine containers."; reference "Huawei private."; } revision "2020-04-13" { description "Add TE session CAR nodes."; reference "Huawei private."; } revision "2020-03-24" { description "Added session CAR nodes."; reference "Huawei private."; } revision "2020-03-17" { description "Modified some description."; reference "Huawei private."; } revision "2020-02-29" { description "Modified the value range of one node, and some description."; reference "Huawei private."; } revision "2020-02-27" { description "Modify the description of fragmented-packet-count node."; reference "Huawei private."; } revision "2020-02-12" { description "Added the sr-exp-mode node."; reference "Huawei private."; } revision "2019-04-02" { description "Initial revision."; reference "Huawei private."; } ext:task-name "mpls-base"; container mpls { description "Specifies the multi-protocol label switching protocol."; container common { description "Configure basic MPLS."; container global { description "Configure the multi-protocol label switching protocol global attributes."; leaf mpls-enable { type boolean; default "false"; description "Enable/disable MPLS."; } leaf lsr-id { type inet:ipv4-address-no-zone; description "MPLS LSR ID. If the MPLS LSR ID uses the primary IP address of the loopback interface, the loopback interface cannot be deleted."; } leaf null-lable-type { when "../mpls-enable='true'"; type label-advertise; default "implicit-null"; description "Specifies a null label type. 1. Implicit null label: This type of labels can be popped by using the Penultimate Hop Popping (PHP) feature. The end node assigns an implicit null label 3 to the penultimate node. 2. Explicit null label: This type of labels cannot be popped by using the PHP feature. The end node assigns the explicit null label 0 to the penultimate node. 3. Null label unsupported: The PHP feature cannot be used to pop a label. The end node assigns a non-null label whose value is equal to or larger than 16 to the penultimate node."; } leaf diff-serv-mode { when "../mpls-enable='true'"; type diff-serv-mode-type; default "uniform"; description "Specifies the diffserv mode for MPLS."; } leaf sr-exp-mode { when "../mpls-enable='true'"; type sr-exp-mode-type; default "pipe"; description "Specifies the EXP mode for SR. The value can be pipe or uniform."; } leaf te-ttl-mode { when "../mpls-enable='true'"; type mpls-ttl-mode-type; default "uniform"; description "Specifies the TTL mode for RSVP TE."; } leaf ldp-ttl-mode { when "../mpls-enable='true'"; type mpls-ttl-mode-type; default "uniform"; description "Specifies the TTL mode for LDP."; } leaf sr-ttl-mode { when "../mpls-enable='true'"; type mpls-ttl-mode-type; default "uniform"; description "SR TTL mode."; } leaf sr-adjacency-ttl-mode { when "../mpls-enable='true'"; type mpls-ttl-mode-type; default "uniform"; description "SR Adjacency TTL mode."; } leaf ftn-delay-time { when "../mpls-enable='true'"; type uint32 { range "0..120"; } units "s"; default "0"; description "Specifies the FEC to NHLFE tunnel delay time."; } leaf mpls-mtu-independent { when "../mpls-enable='true'"; type boolean; default "false"; description "Enable/disable of MTU independent."; } leaf entropy-label-capability { when "../mpls-enable='true'"; type boolean; default "false"; description "Enable/disable of entropy label capability."; } leaf traffic-statistic-enable { type boolean; must "(current()='false') or (current()='true' and ../mpls-enable='true')"; default "false"; description "Enable/disable MPLS traffic statistic."; } } // container global container threshold-alarm { when "/mpls:mpls/mpls:common/mpls:global/mpls:mpls-enable='true'"; description "Configure threshold alarm."; container autobypass-tunnel-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure TE bypass tunnel."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container autobypass-tunnel-number container autoprimary-tunnel-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure TE primary tunnel."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container autoprimary-tunnel-number container ldp-lsp-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure LDP LSP."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container ldp-lsp-number container outsegment-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure LDP outsegment."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container outsegment-number container remote-adjacency-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure LDP remote adjancency."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container remote-adjacency-number container mldp-tree-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure MLDP P2MP tree."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container mldp-tree-number container mldp-branch-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure MLDP P2MP Branch."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container mldp-branch-number container rsvp-lsp-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure RSVP LSP."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "75"; description "Lower value of the threshold."; } } // container rsvp-lsp-number container dynamic-label-number { must "(not(upper-value) and not(lower-value)) or upper-value>lower-value"; description "Configure Dynamic label."; leaf upper-value { type uint32 { range "1..100"; } default "80"; description "Upper value of the threshold."; } leaf lower-value { type uint32 { range "1..100"; } default "70"; description "Lower value of the threshold."; } } // container dynamic-label-number } // container threshold-alarm container bit-err-levels { description "List of the config for bit error level information."; list bit-err-level { key "level-number"; max-elements 3; description "Configure bit error level information."; leaf level-number { type uint8 { range "1..3"; } description "Specifies level number."; } leaf switch-coe { type uint8 { range "1..9"; } must "../switch-pow!=../resume-pow or ../switch-coe>=../resume-coe"; mandatory true; description "Coefficient of switch threshold."; } leaf switch-pow { type uint8 { range "1..7"; } mandatory true; description "Power of switch threshold."; } leaf resume-coe { type uint8 { range "1..9"; } mandatory true; description "Coefficient of resume threshold."; } leaf resume-pow { type uint8 { range "1..7"; } must "../resume-pow>=../switch-pow"; mandatory true; description "Power of resume threshold."; } } // list bit-err-level } // container bit-err-levels container cross-connects { config false; description "List of cross connections."; list cross-connect { key "xc-index outsegment-index insegment-index"; description "Operational data of a cross connection."; leaf xc-index { type uint32; description "Specifies a cross connection index."; } leaf outsegment-index { type uint32; description "Outsegment index."; } leaf insegment-index { type uint32; description "Insegment index."; } leaf xc-out-interface-name { type pub-type:if-name; description "Out-going interface."; } leaf xc-out-label { type uint32; description "Out-going label."; } leaf xc-next-hop { type inet:ipv4-address-no-zone; description "Next hop."; } leaf xc-in-interface-name { type pub-type:if-name; description "In-coming interface."; } leaf xc-in-label { type uint32; description "In-coming label."; } leaf xc-outgoing-tunnel-id { type uint32; description "Stick Tunnel ID."; } leaf xc-outgoing-tunnel-type { type outgoing-tunnel-type; description "Stick Tunnel Type."; } } // list cross-connect } // container cross-connects container ilm-label-stacks { config false; description "List of incoming label map (ILM) label stacks."; list ilm-label-stack { key "in-label label-stack level"; config false; description "Operational data of incoming label map (ILM) label stack."; leaf in-label { type uint32; description "Incoming label."; } leaf label-stack { type uint32; description "ILM label stack number."; } leaf level { type uint32; description "ILM label stack level."; } leaf type { type string { length "1..50"; } description "LSP type."; } leaf out-label { type uint32; description "Outgoing label. The name is case-insensitive."; } leaf out-interface-name { type pub-type:if-name; description "Outbound interface name."; } } // list ilm-label-stack } // container ilm-label-stacks container lsp-statistics { config false; description "List of MPLS LSP statistics."; list lsp-statistic { key "lsp-type"; config false; description "Specifies MPLS LSP statistics."; leaf lsp-type { type mpls-lsp-type; config false; description "Specifies an LSP type."; } leaf ingress-lsp { type uint32; config false; description "Specifies the number of LSPs whose ingresses are the local node."; } leaf egress-lsp { type uint32; config false; description "Specifies the number of LSPs whose egresses are the local node."; } leaf transit-lsp { type uint32; config false; description "Specifies the number of LSPs whose transit nodes are the local node."; } leaf total-lsp { type uint32; config false; description "Specifies the total number of LSPs."; } } // list lsp-statistic } // container lsp-statistics container session-car { description "Configure MPLS session CAR."; } // container session-car } // container common } // container mpls augment /ni:network-instance/ni:instances/ni:instance { description "MPLS Configuration information augment to network instance."; container mpls { when "/mpls:mpls/mpls:common/mpls:global/mpls:mpls-enable='true'"; description "Configure MPLS."; container common { description "Configure common MPLS."; container mpls-interfaces { description "List of interfaces on which MPLS is enabled."; list mpls-interface { key "name"; description "Configure MPLS on an interface. Query, modify, create, or delete the MPLS capability on an interface."; leaf name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:vrf-name=../../../../../ni:name"; description "Specifies an l3vpn vrf name."; } leaf mtu-value { type uint32 { range "0..64000"; } units "s"; description "MTU of an MPLS interface. Note: An MTU is the maximum size of a packet that can be sent without being fragmented. The value range of MTU is controlled by the PAF."; } leaf ldp-enable { type boolean; default "false"; config false; description "Enables LDP on interfaces."; } leaf te-enable { type boolean; default "false"; config false; description "MPLS TE capability on an interface."; } leaf rsvp-te-enable { type boolean; default "false"; config false; description "MPLS RSVP TE capability on an interface."; } container statistics { config false; description "Statistics of MPLS interface informations."; leaf fragmented-packet-count { type uint32 { range "0..4294967295"; } description "This object counts the number of outgoing MPLS packets that required fragmentation before transmission on this interface. This object MUST count on a per-interface basis regardless of which label space the interface participates in. When the dual-stack statistics collection is enabled, value 0 is returned, indicating that no packet is fragmented on the interface. If the dual-stack statistics collection is disabled, the default value 0 is returned, which is meaningless."; } } // container statistics } // list mpls-interface } // container mpls-interfaces } // container common } // container mpls } } // module huawei-mpls
© 2023 YumaWorks, Inc. All rights reserved.