Specifies the multi-protocol label switching protocol.
Version: 2020-09-23
module huawei-mpls-te { yang-version 1; namespace "urn:huawei:yang:huawei-mpls-te"; prefix mpls-te; import huawei-extension { prefix ext; } import huawei-mpls { prefix mpls; } import ietf-inet-types { prefix inet; } import huawei-pub-type { prefix pub-type; } import huawei-network-instance { prefix ni; } import huawei-te { prefix te; } import huawei-tunnel-management { prefix tnlm; } import huawei-ifm { prefix ifm; } import huawei-routing-policy { prefix rtp; } include huawei-mpls-te-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 "2020-09-23" { description "Added a private syntax to the keychain name. Added a label stack and a stitch label."; reference "Huawei private."; } revision "2020-05-08" { description "Modify some conditions."; reference "Huawei private."; } revision "2020-04-14" { description "Modify the type of the affinity attribute."; reference "Huawei private."; } revision "2020-03-17" { description "Fixed some descriptions."; reference "Huawei private."; } revision "2020-03-03" { description "Modify the reverse LSP model."; reference "Huawei private."; } revision "2020-02-25" { description "Description of some nodes and locations of some read-only nodes are fixed."; reference "Huawei private."; } revision "2020-02-17" { description "New add nodes to associate-groups."; reference "Huawei private."; } revision "2020-02-14" { description "Self-ping and self-ping-duration are added."; reference "Huawei private."; } revision "2020-02-13" { description "New add nodes to associate-groups."; reference "Huawei private."; } revision "2020-01-23" { description "New add nodes to configure global."; reference "Huawei private."; } revision "2020-01-14" { description "Modify the value range of the node tunnel-ID."; reference "Huawei private."; } revision "2020-01-10" { description "Added tunnel-locks model nodes."; reference "Huawei private."; } revision "2020-01-03" { description "Added auto tunnels and rsvp statistics model nodes."; reference "Huawei private."; } revision "2019-12-17" { description "Adjusting path-type definitions for some nodes."; reference "Huawei private."; } revision "2019-12-07" { description "Adjusting the tunnel-group and associated-groups model."; reference "Huawei private."; } revision "2019-11-14" { description "New add nodes to configure frr switch degrade."; reference "Huawei private."; } revision "2019-11-12" { description "Fixed some issues where YANG models are inappropriate."; reference "Huawei private."; } revision "2019-10-26" { description "Fixed some issues where YANG models are inappropriate."; reference "Huawei private."; } revision "2019-10-16" { description "New add nodes to display MPLS TE tunnel statistic information."; reference "Huawei private."; } revision "2019-10-14" { description "New add nodes to configure p2mp templates and p2p templates."; reference "Huawei private."; } revision "2019-10-08" { description "New add nodes to display MPLS rsvp-te neighbor information."; reference "Huawei private."; } revision "2019-03-27" { description "Initial revision."; reference "Huawei private."; } ext:task-name "mpls-te"; rpc cspf-pre-calculate { description "To obtain the path which is calculated by cspf and meets certain ristrict conditions."; input { leaf destination { type inet:ipv4-address-no-zone; mandatory true; description "Destination IP address."; } leaf explicit-path-name { type string { length "0..128"; pattern '[^ \?]*'; } description "Name of an explicit path. The name is case-insensitive."; } leaf ct0-bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of CT0 bandwith."; } leaf priority { type uint8 { range "0..7"; } description "Specifies a tunnel setup priority. The smaller the value, the higher the setup priority. 0 is the highest priority. Limit: the setup priority of a tunnel must be equal to or smaller than its holding priority."; } leaf hop-limit { type uint32 { range "1..32"; } description "Hop limit on a TE LSP."; } leaf include-any { type pub-type:hex-binary; description "Tunnel path management attribute: Include-any. The attribute is a 32-bit vector. If the management attribute of a link contain any bit in the Include-any attribute field of an LSP, the link can be a candidate LSP link."; } leaf exclude-any { type pub-type:hex-binary; description "Tunnel path management attribute: Exclude-any. The management attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Exclude-any attribute field of an LSP, the link cannot be a candidate LSP link."; } leaf srlg-strict-exclude-name { type string { length "0..128"; pattern '[^ \?]*'; } description "Specifies Exclude Explicit Path by Strict srlg. The name is case-insensitive."; } leaf tie-breaking { type tebase-tie-breaking; description "Rules for selecting multiple equal-cost routes. In path computation, if multiple paths meet constraints, a device uses this rule to select a path. Random: randomly selects a path. Least Fill: selects a link with the lowest proportion of used bandwidth to the maximum reservable bandwidth. Most Fill: selects a link with the highest proportion of used bandwidth to the maximum reservable bandwidth."; } leaf path-metric-type { type global-path-metric-type; description "Pre-calculated path metric type."; } leaf hotstandby-calculate { type boolean; default "false"; description "Enable/disable HSB PathCalc."; } leaf hotstandby-overlap { type boolean; default "false"; description "Enable/disable Overlap."; } leaf hotstandby-hop-limit { type uint32 { range "1..32"; } default "32"; description "Maximum number of route hops that a TE LSP allows."; } leaf hotstandby-include-any { type pub-type:hex-binary; default "0x0"; description "Tunnel HSB path management attribute: Include-any. The attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Include-any attribute field of an LSP, the link can be a candidate LSP link."; } leaf hotstandby-exclude-any { type pub-type:hex-binary; default "0x0"; description "Tunnel HSB path management attribute: Exclude-any. The default value is 0x0. The management attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Exclude-any attribute field of an LSP, the link cannot be a candidate LSP link."; } leaf hotstandby-explicit-path-name { type string { length "0..128"; pattern '[^ \?]*'; } description "Name of an explicit path (HSB). The name is case-insensitive."; } leaf hotstandby-srlg-calculate-mode { type cspf-srlg-path-calculate-mode; default "default"; description "Srlg Precalc Path Mode (HSB)."; } } output { container hops { description "List of hops in CSPF pre-calculation."; list hop { key "path-type"; description "Configure hops in the CSPF pre-calculation data list."; leaf path-type { type cspf-calculated-lsp-path-type; description "The path type, primary or hotstandby."; } leaf total-metrics { type uint32 { range "0..4294967295"; } description "Total metrics information."; } container lists { description "List of Container."; list list { key "index"; description "Configure hops in the CSPF pre-calculation data."; leaf index { type uint32 { range "1..255"; } description "Hop Index."; } leaf ip-address { type inet:ipv4-address-no-zone; description "Hop Ip Address."; } leaf address-type { type chop-address-type; description "Route hop-specific IP address type. The value is a link IP address or LSR ID."; } leaf hop-type { type chop-type; description "Specifies an LSP route selection types based on the local hop. Strict type: Only an LSP route that includes the local hop can be selected. Loose type: An LSP route that includes the local node is selected preferentially. If the local hop does not meet path limits, it will be not included in the selected route. Excluding type: Only an LSP route that does not include the local hop can be selected."; } leaf reach-ability { type chop-reach-ability; description "HopReachability: reachable or unreachable."; } } // list list } // container lists } // list hop } // container hops } } // rpc cspf-pre-calculate rpc cspf-srte-pre-calculate { description "To obtain the path which is calculated by cspf and meets certain ristrict conditions."; input { leaf destination { type inet:ipv4-address-no-zone; mandatory true; description "Destination IP address."; } leaf is-adjacency-sid { type boolean; default "false"; description "CSPF path select label type adjacency or not."; } leaf explicit-path-name { type string { length "0..128"; pattern '[^ \?]*'; } description "Name of an explicit path. The name is case-insensitive."; } leaf hop-limit { type uint32 { range "1..32"; } default "32"; description "Hop limit on a TE LSP."; } leaf include-any { type pub-type:hex-binary; default "0x0"; description "Tunnel path management attribute: Include-any. The attribute is a 32-bit vector. If the management attribute of a link contain any bit in the Include-any attribute field of an LSP, the link can be a candidate LSP link."; } leaf exclude-any { type pub-type:hex-binary; default "0x0"; description "Tunnel path management attribute: Exclude-any. The management attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Exclude-any attribute field of an LSP, the link cannot be a candidate LSP link."; } leaf srlg-strict-exclude-name { type string { length "0..128"; pattern '[^ \?]*'; } description "Specifies Exclude Explicit Path by Strict srlg. The name is case-insensitive."; } leaf tie-breaking { type tebase-tie-breaking; default "random"; description "Rules for selecting multiple equal-cost routes. In path computation, if multiple paths meet constraints, a device uses this rule to select a path. Random: randomly selects a path. Least Fill: selects a link with the lowest proportion of used bandwidth to the maximum reservable bandwidth. Most Fill: selects a link with the highest proportion of used bandwidth to the maximum reservable bandwidth."; } leaf path-metric-type { type global-path-metric-type; default "te"; description "Pre-calculated path metric type."; } leaf hotstandby-calculate { type boolean; default "false"; description "Enable/disable HSB PathCalc."; } leaf hotstandby-explicit-path-name { type string { length "0..128"; pattern '[^ \?]*'; } description "Name of an explicit path (HSB). The name is case-insensitive."; } leaf hotstandby-overlap { type boolean; default "false"; description "Enable/disable Overlap."; } leaf hotstandby-hop-limit { type uint32 { range "1..32"; } default "32"; description "Maximum number of route hops that a TE LSP allows."; } leaf hotstandby-include-any { type pub-type:hex-binary; default "0x0"; description "Tunnel HSB path management attribute: Include-any. The attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Include-any attribute field of an LSP, the link can be a candidate LSP link."; } leaf hotstandby-exclude-any { type pub-type:hex-binary; default "0x0"; description "Tunnel HSB path management attribute: Exclude-any. The default value is 0x0. The management attribute is a 32-bit vector. If the management attribute of a link contains any bit in the Exclude-any attribute field of an LSP, the link cannot be a candidate LSP link."; } leaf hotstandby-srlg-calculate-mode { type cspf-srlg-path-calculate-mode; default "default"; description "Srlg Precalc Path Mode (HSB)."; } leaf path-verify { type boolean; default "false"; description "Path verification."; } } output { container hops { description "List of hops in CSPF pre-calculation."; list hop { key "path-type"; description "Configure hops in the CSPF pre-calculation data list."; leaf path-type { type cspf-calculated-lsp-path-type; description "The path type, primary or hotstandby."; } leaf total-metrics { type uint32 { range "0..4294967295"; } description "Total metrics information."; } container lists { description "List of Container."; list list { key "index"; description "Configure hops in the CSPF pre-calculation data."; leaf index { type uint32 { range "1..255"; } description "Hop Index."; } leaf label { type uint32 { range "16..1048575"; } description "Hop label calculated by CSPF."; } leaf label-type { type sr-te-label-type; description "SR-TE Label type."; } leaf local-ip-address { type inet:ipv4-address-no-zone; description "Local IP Address."; } leaf remote-ip-address { type inet:ipv4-address-no-zone; description "Remote IP Address."; } leaf node-ip-address { type inet:ipv4-address-no-zone; description "Node IP Address."; } } // list list } // container lists } // list hop } // container hops } } // rpc cspf-srte-pre-calculate rpc set-sr-te-label-stack { description "Set the SR-MPLS TE label stack."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Tunnel name."; } leaf lsp-type { type sr-te-tunnel-path-type; mandatory true; description "LSP type."; } leaf label1 { type uint32 { range "16..1048575"; } description "Label of the first hop."; } leaf label1-type { when "../label1"; type label-type; default "link"; description "Label type of the first hop."; } leaf next-hop1 { when "../label1"; type inet:ipv4-address-no-zone; description "Address of the first hop."; } leaf label2 { type uint32 { range "16..1048575"; } description "Label of the second hop."; } leaf label2-type { when "../label2"; type label-type; default "link"; description "Label type of the second hop."; } leaf next-hop2 { when "../label2"; type inet:ipv4-address-no-zone; description "Address of the second hop."; } leaf label3 { type uint32 { range "16..1048575"; } description "Label of the third hop."; } leaf label3-type { when "../label3"; type label-type; default "link"; description "Label type of the third hop."; } leaf next-hop3 { when "../label3"; type inet:ipv4-address-no-zone; description "Address of the third hop."; } leaf label4 { type uint32 { range "16..1048575"; } description "Label of the forth hop."; } leaf label4-type { when "../label4"; type label-type; default "link"; description "Label type of the forth hop."; } leaf next-hop4 { when "../label4"; type inet:ipv4-address-no-zone; description "Address of the forth hop."; } leaf label5 { type uint32 { range "16..1048575"; } description "Label of the fifth hop."; } leaf label5-type { when "../label5"; type label-type; default "link"; description "Label type of the fifth hop."; } leaf next-hop5 { when "../label5"; type inet:ipv4-address-no-zone; description "Address of the fifth hop."; } leaf label6 { type uint32 { range "16..1048575"; } description "Label of the sixth hop."; } leaf label6-type { when "../label6"; type label-type; default "link"; description "Label type of the sixth hop."; } leaf next-hop6 { when "../label6"; type inet:ipv4-address-no-zone; description "Address of the sixth hop."; } leaf label7 { type uint32 { range "16..1048575"; } description "Label of the seventh hop."; } leaf label7-type { when "../label7"; type label-type; default "link"; description "Label type of the seventh hop."; } leaf next-hop7 { when "../label7"; type inet:ipv4-address-no-zone; description "Address of the seventh hop."; } leaf label8 { type uint32 { range "16..1048575"; } description "Label of the eighth hop."; } leaf label8-type { when "../label8"; type label-type; default "link"; description "Label type of the eighth hop."; } leaf next-hop8 { when "../label8"; type inet:ipv4-address-no-zone; description "Address of the eighth hop."; } leaf label9 { type uint32 { range "16..1048575"; } description "Label of the ninth hop."; } leaf label9-type { when "../label9"; type label-type; default "link"; description "Label type of the ninth hop."; } leaf next-hop9 { when "../label9"; type inet:ipv4-address-no-zone; description "Address of the ninth hop."; } leaf label10 { type uint32 { range "16..1048575"; } description "Label of the tenth hop."; } leaf label10-type { when "../label10"; type label-type; default "link"; description "Label type of the tenth hop."; } leaf next-hop10 { when "../label10"; type inet:ipv4-address-no-zone; description "Address of the tenth hop."; } } } // rpc set-sr-te-label-stack rpc delete-sr-te-label-stack { ext:node-ref "/ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type/mpls-te:mpls-te/mpls-te:te-tunnel/mpls-te:sr-te"; description "Delete the SR-MPLS TE tunnel label stack."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Tunnel name."; } leaf lsp-type { type sr-te-tunnel-path-type; mandatory true; description "LSP type."; } } } // rpc delete-sr-te-label-stack rpc set-sr-te-stitch-label { description "Set the SR-MPLS TE stitch label."; input { leaf stitch-label { type uint32 { range "16..1048575"; } mandatory true; description "Stitch label."; } leaf tunnel-ingress-lsr-id { type inet:ipv4-address-no-zone; mandatory true; description "Specify the ingress LSR ID of a tunnel with stitch labels."; } leaf tunnel-egress-lsr-id { type inet:ipv4-address-no-zone; mandatory true; description "Specify the egress LSR ID of a tunnel with stitch labels."; } leaf tunnel-session-id { type uint16 { range "0..65535"; } mandatory true; description "Specify the session ID of a tunnel with stitch labels."; } leaf lsp-id { type uint16 { range "0..65535"; } mandatory true; description "Specify the LSP ID with stitch labels."; } leaf label1 { type uint32 { range "16..1048575"; } description "Label of the first hop."; } leaf label1-type { when "../label1"; type label-type; default "link"; description "Label type of the first hop."; } leaf next-hop1 { when "../label1"; type inet:ipv4-address-no-zone; description "Address of the first hop."; } leaf label2 { type uint32 { range "16..1048575"; } description "Label of the second hop."; } leaf label2-type { when "../label2"; type label-type; default "link"; description "Label type of the second hop."; } leaf next-hop2 { when "../label2"; type inet:ipv4-address-no-zone; description "Address of the second hop."; } leaf label3 { type uint32 { range "16..1048575"; } description "Label of the third hop."; } leaf label3-type { when "../label3"; type label-type; default "link"; description "Label type of the third hop."; } leaf next-hop3 { when "../label3"; type inet:ipv4-address-no-zone; description "Address of the third hop."; } leaf label4 { type uint32 { range "16..1048575"; } description "Label of the forth hop."; } leaf label4-type { when "../label4"; type label-type; default "link"; description "Label type of the forth hop."; } leaf next-hop4 { when "../label4"; type inet:ipv4-address-no-zone; description "Address of the forth hop."; } leaf label5 { type uint32 { range "16..1048575"; } description "Label of the fifth hop."; } leaf label5-type { when "../label5"; type label-type; default "link"; description "Label type of the fifth hop."; } leaf next-hop5 { when "../label5"; type inet:ipv4-address-no-zone; description "Address of the fifth hop."; } leaf label6 { type uint32 { range "16..1048575"; } description "Label of the sixth hop."; } leaf label6-type { when "../label6"; type label-type; default "link"; description "Label type of the sixth hop."; } leaf next-hop6 { when "../label6"; type inet:ipv4-address-no-zone; description "Address of the sixth hop."; } leaf label7 { type uint32 { range "16..1048575"; } description "Label of the seventh hop."; } leaf label7-type { when "../label7"; type label-type; default "link"; description "Label type of the seventh hop."; } leaf next-hop7 { when "../label7"; type inet:ipv4-address-no-zone; description "Address of the seventh hop."; } leaf label8 { type uint32 { range "16..1048575"; } description "Label of the eighth hop."; } leaf label8-type { when "../label8"; type label-type; default "link"; description "Label type of the eighth hop."; } leaf next-hop8 { when "../label8"; type inet:ipv4-address-no-zone; description "Address of the eighth hop."; } leaf label9 { type uint32 { range "16..1048575"; } description "Label of the ninth hop."; } leaf label9-type { when "../label9"; type label-type; default "link"; description "Label type of the ninth hop."; } leaf next-hop9 { when "../label9"; type inet:ipv4-address-no-zone; description "Address of the ninth hop."; } leaf label10 { type uint32 { range "16..1048575"; } description "Label of the tenth hop."; } leaf label10-type { when "../label10"; type label-type; default "link"; description "Label type of the tenth hop."; } leaf next-hop10 { when "../label10"; type inet:ipv4-address-no-zone; description "Address of the tenth hop."; } } } // rpc set-sr-te-stitch-label rpc delete-sr-te-stitch-label { ext:node-ref "/mpls:mpls/mpls-te:te/mpls-te:stitch-label-stacks/mpls-te:stitch-label-stack/mpls-te:stitch-label"; description "Delete the SR-MPLS TE stitch label."; input { leaf stitch-label { type uint32 { range "16..1048575"; } mandatory true; description "Stitch label."; } } } // rpc delete-sr-te-stitch-label rpc reset-rsvp-te { ext:node-ref "/ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type/mpls-te:mpls-te/mpls-te:te-tunnel/mpls-te:tunnel-mode/mpls-te:p2p-rsvp-te/mpls-te:rsvp-te"; description "To reset the RSVP TE service."; input { leaf all-instances { type boolean; description "To reset all RSVP instances."; } } } // rpc reset-rsvp-te rpc reset-rsvp-p2mp-te-statistics { description "To clear RSVP P2MP TE statistics."; } // rpc reset-rsvp-p2mp-te-statistics rpc reset-mpls-te-last-error { description "To clear MPLS TE last error information."; } // rpc reset-mpls-te-last-error rpc reset-rsvp-te-tunnel { ext:node-ref "/ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type/mpls-te:mpls-te/mpls-te:te-tunnel/mpls-te:tunnel-mode/mpls-te:p2p-rsvp-te/mpls-te:rsvp-te"; description "To re-establish the specified tunnel."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Name of the re-established tunnel. The name is case-insensitive."; } } } // rpc reset-rsvp-te-tunnel rpc reoptimize-rsvp-te-tunnel { ext:node-ref "/ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type/mpls-te:mpls-te/mpls-te:te-tunnel/mpls-te:tunnel-mode/mpls-te:p2p-rsvp-te/mpls-te:rsvp-te"; description "To reoptimize the specified tunnel."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Name of the the tunnel to be reoptimized. The name is case-insensitive."; } } } // rpc reoptimize-rsvp-te-tunnel rpc reset-auto-p2mp-tunnel { description "To reset the specified auto P2MP tunnel."; input { leaf tunnel-name { type string { length "1..64"; } mandatory true; description "The specified auto P2MP tunnel name."; } } } // rpc reset-auto-p2mp-tunnel rpc reset-auto-primary-tunnel { description "To reset the specified auto primary tunnel."; input { leaf tunnel-name { type string { length "1..64"; } mandatory true; description "The specified auto primary tunnel name."; } } } // rpc reset-auto-primary-tunnel rpc rsvp-te-hotstandby-switch { ext:node-ref "/ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type/mpls-te:mpls-te/mpls-te:te-tunnel/mpls-te:tunnel-mode/mpls-te:p2p-rsvp-te/mpls-te:rsvp-te/mpls-te:hotstandby"; description "Before switching traffic, TE tunnel should be configured with hot-standby mode. To switch the tunnel traffic to the specified LSP (primary or hot-standby)."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Name of the tunnel on which traffic switching is to be performed. The name is case-insensitive."; } leaf switch-mode { type hotstandby-switch-mode; default "primary-to-hot-standby"; description "To specify switch operation."; } } } // rpc rsvp-te-hotstandby-switch rpc sr-te-hotstandby-switch { ext:node-ref "/ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type/mpls-te:mpls-te/mpls-te:te-tunnel/mpls-te:sr-te/mpls-te:hotstandby"; description "To switch the tunnel traffic to the specified LSP (primary or hot-standby)."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Name of the tunnel on which traffic switching is to be performed. The name is case-insensitive."; } leaf switch-mode { type hotstandby-switch-mode; default "primary-to-hot-standby"; description "To specify switch operation."; } } } // rpc sr-te-hotstandby-switch rpc manual-flooding { description "Manual flooding."; } // rpc manual-flooding rpc tunnel-protect-switch { description "Tunnel protection switch action."; input { leaf tunnel-name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } mandatory true; description "Name of a working tunnel in a protection group. The name is case-insensitive."; } leaf operation { type tunnel-protect-switch-type; description "Protection switch type."; } } } // rpc tunnel-protect-switch rpc upgrade-bypass { description "To upgrade MPLS TE bypass tunnel after SRLG is changed."; } // rpc upgrade-bypass } // module huawei-mpls-te
© 2023 YumaWorks, Inc. All rights reserved.