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 augment /mpls:mpls { description "MPLS TE Configuration information augment to module MPLS."; container te { description "Configure MPLS TE parameters."; leaf enable { when "/mpls:mpls/mpls:common/mpls:global/mpls:mpls-enable='true'"; type boolean; default "false"; description "Enable/disable MPLS TE."; } container global { when "../enable='true'"; must "(p2mp-leaf-switch-delay-time=0 and p2mp-leaf-delete-delay-time=0) or (not(p2mp-leaf-switch-delay-time) and not(p2mp-leaf-delete-delay-time))"; description "Configure global MPLS TE basic parameters."; leaf switch-delay-time { type uint32 { range "0..600000"; } units "ms"; default "5000"; description "Delay time for switching the TE traffic from a Primary CR-LSP to a Modified CR-LSP."; } leaf delete-delay-time { type uint32 { range "0..600000"; } units "ms"; default "20000"; description "Delay time for deleting the Primary CR-LSP after the TE traffic is switched to the Modified CR-LSP."; } leaf frr-timer-weight { type uint32 { range "0..604800"; } default "300"; description "FRR binding upgrade weight. If the value is 0, stop the FRR timer. The FRR timer interval depends on the value and the number of LSPs."; } leaf frr-switch-delay-time { type uint32 { range "100..1800000"; } units "ms"; description "When hot-standby and frr exist at the same time, delay time for switching the TE traffic from a Primary CR-LSP to FRR."; } leaf pce-delegate { type delegate-type; default "no"; description "Specifies the enabling state of PCE delegation capability."; } leaf pce-inter-layer-delegate { type boolean; default "false"; description "Enable/disable PCE inter-layer delegation."; } leaf pce-cleanup-lsp-state { type boolean; default "false"; description "Enable/disable PCE clean lsp state."; } leaf pce-cleanup-initiated-lsp { type boolean; default "false"; description "Enable/disable PCE cleanup initiated lsp."; } leaf pce-clean-stitch-label { type boolean; default "false"; description "Enable/disable PCE cleanup stitch label."; } leaf path-selection { type path-selection-mode; description "Enable path selection and set mode as overload."; } leaf lsp-loopback-clear-time { type uint32 { range "1..2880"; } default "5"; description "LSP loopback auto clear time."; } leaf ip-prefix-delete-time { type uint32 { range "30..604800"; } default "300"; description "Auto Primary Tunnel Delete Time."; } leaf slsp-deduct-rsvp-bandwidth { type boolean; default "false"; description "Enable/disable rsvp bandwidth deduction."; } leaf reoptimization-link-disable { type boolean; default "true"; description "Enable/disable global interface reoptimization capability."; } leaf rsvp-entropy-label { type boolean; default "false"; description "Enable/disable RSVP P2P tunnel entropy label."; } leaf bandwidth-auto-config-disable { type boolean; default "false"; description "Enable/disable automatic bandwidth configuration."; } leaf suppress-flapping-disable { type boolean; default "false"; description "Enable/disable the TE LSP flapping suppression."; } leaf path-verification { type boolean; default "false"; description "Enable/disable MPLS TE tunnel path verify."; } leaf soft-preemption { type boolean; default "false"; description "Enable/disable soft preemption."; } leaf explicit-path-deletion-down { type boolean; default "false"; description "Enable/disable SR LSP explicit path deletion down."; } leaf self-ping { type boolean; default "false"; description "Enable/disable self-ping capability."; } leaf self-ping-duration { type uint32 { range "60..65535"; } units "s"; default "1800"; description "Global self-ping timeout period. Value 65535 indicates no limit on the detection time."; } leaf p2mp-enable { type boolean; default "false"; description "Enable/disable P2MP TE capability."; } leaf p2mp-auto-frr { type boolean; default "false"; description "Enable/disable P2MP TE auto-frr capability."; } leaf p2mp-frr-mbb-type { type mpls-p2mp-te-frr-mbb-type; default "sub-lsp"; description "P2MP FRR MBB mode."; } leaf p2mp-leaf-switch-delay-time { type uint32 { range "0"; } units "ms"; description "P2MP leaf switch delay time."; } leaf p2mp-leaf-delete-delay-time { type uint32 { range "0"; } units "ms"; description "P2MP leaf delete delay time."; } leaf auto-frr-enable { type boolean; default "false"; description "Enable/disable auto FRR capability."; } leaf auto-frr-self-adapting { when "../auto-frr-enable='true'"; type boolean; default "false"; description "Enable/disable auto FRR self-adapting."; } leaf auto-frr-reoptimization { type boolean; default "false"; description "Enable/disable the enabling state of auto bypass reoptimization."; } leaf auto-frr-frequency { when "../auto-frr-reoptimization='true'"; type uint32 { range "60..604800"; } default "3600"; description "Specifies the frequency of auto bypass reoptimization."; } leaf auto-bandwidth-enable { type boolean; default "false"; description "Enable/disable the tunnel's traffic rate sampling switch."; } leaf auto-bandwidth-interval { when "../auto-bandwidth-enable='true'"; type uint32 { range "1..604800"; } units "s"; default "300"; description "Set interval of Tunnel traffic rate sampling."; } leaf flood-bandwidth-enable { type boolean; default "false"; description "Enable/disable flooding TE link bandwidth periodically capability. When TE LSP reserves or releases bandwidth with the changing rate not reaching the flooding threshold of TE link, it will not flood bandwidth to network. In order to flood bandwidth to network as soon as possible, and to avoid waste of network resource caused by frequent flooding, it will flood changed bandwidth to network periodically."; } leaf flood-bandwidth-interval { when "../flood-bandwidth-enable='true'"; type uint32 { range "10..43200"; } units "s"; default "30"; description "Interval at which a TE interface floods bandwidth over the network. The bandwidth that a TE LSP reserves or releases on an interface may be only a small part compared with the reservable bandwidth of the interface, which does not reach the flooding threshold of the interface. To flood the interface bandwidth over the network and avoid frequent flooding, the TE NE is configured to flood bandwidth over the network periodically."; } leaf ds-te-mode { type ds-te-mode-type; must "../ds-te-mode='non-ietf' or (../pce-delegate='no' and ../soft-preemption='false' and ../p2mp-enable='false')"; default "non-ietf"; description "DS-TE mode."; } container bcm-model { when "../ds-te-mode='ietf'"; description "Configure DS-TE bcm."; leaf bcm-mode { type ds-te-bcm-type; default "rdm"; description "DS-TE bandwidth constraints model."; } } // container bcm-model } // container global container tunnel-locks { description "List of Tunnel locks."; list tunnel-lock { key "name"; description "Configure Tunnel lock."; leaf name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Tunnel' and (/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:signal-protocol='rsvp-te' or /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:signal-protocol='segment-routing')"; description "Specifies the name of a TE tunnel interface. The name is case-insensitive."; } } // list tunnel-lock } // container tunnel-locks container rsvp { description "Configure MPLS RSVP-TE parameters."; leaf enable { when "../../enable='true'"; type boolean; default "false"; description "Enable/disable RSVP TE."; } container global { when "../enable='true'"; description "Configure global MPLS RSVP-TE."; leaf hello-enable { type boolean; default "false"; description "Enable/disable Hello enabling state."; } leaf max-hello-miss-times { when "../hello-enable='true'"; type uint32 { range "3..10"; } default "3"; description "Maximum number of Hello packet loss times. When the number of Hello packet refreshing (from the NE) times exceeds the configured maximum number, and the NE does not receive a response from its peer end, the NE considers that the session with the peer end is lost."; } leaf hello-interval { when "../hello-enable='true'"; type uint32 { range "1..25"; } units "s"; default "3"; description "Interval for refreshing Hello packets. It is the interval of refreshing a Hello packet from an NE to its peer after a Hello session is established."; } leaf support-gr-enable { when "../hello-enable='true'"; type boolean; default "false"; description "Enable/disable support GR."; } leaf keep-multiplier { type uint16 { range "3..255"; } default "3"; description "Timeout multiplier of soft state PSB or RSB. If the local NE does not receive a packet for refreshing the TE LSP soft state from its upstream or downstream neighbor in the period (that is a specified multiplier of the refreshing cycle), the NE considers that the soft state times out and will delete the TE LSP."; } leaf refresh-interval { type uint32 { range "10..65535"; } units "s"; default "30"; description "Cycle of refreshing a PATH or a RESV message (for soft state maintenance)."; } leaf resv-confirm-enable { type boolean; default "false"; description "Enable/disable reservation confirmation capability. After the reservation confirmation capability is configured on a NE, all starting nodes of TE tunnels whose destinations are the NE will send source reservation confirmation messages to the NE after receiving the RESV messages from the NE. This capability is not applicable for single-direction LSPs. Enabling reservation confirmation capability in the single-direction LSP scenario is not recommended."; } leaf srefresh-enable { type boolean; default "false"; description "Enable/disable summary refresh."; } leaf reliable-delivery-enable { type boolean; default "false"; description "Enable/disable reliable delivery."; } leaf retransmission-interval { type uint32 { range "500..5000"; } units "ms"; default "5000"; description "Interval at which interface summary messages are retransmitted."; } leaf retransmission-increment-value { type uint32 { range "1..10"; } units "ms"; default "1"; description "Incremental value for retransmitting interface summary. If a NE does not receive a response from the peer end after sending a message to the peer end, the NE will start the retransmission mechanism. The retransmission interval increases with the increase of the retransmission incremental value. The formula is as following: retransmission interval = last retransmission interval * (1 + retransmission incremental value)."; } leaf challenge-retransmission-interval { type uint32 { range "500..10000"; } units "ms"; default "1000"; description "Challenge message retransmission interval. If the NE does not receive a response message from the peer end after sending a Challenge message for handshake authentication to the peer end, the NE will retransmit the Challenge message."; } leaf max-challenge-miss-times { type uint32 { range "1..10"; } default "3"; description "Maximum challenge loss times. If the times of a retransmitting a Challenge message from the NE to its neighbor exceed the maximum challenge loss times, the NE considers that the handshake cannot be established and will not send a Challenge message again."; } leaf is-send-down-reason { type boolean; default "true"; description "Enable/disable RSVP send down reason capability. When this command is configured on a non-ingress node, RSVP can send the down reasons to the ingress through PATH ERROR message and RESV TEAR message."; } leaf transit-rro1 { type transit-rro-type; must "not(../transit-rro1='disable')"; default "incoming-with-label"; description "Transit-rro1. Special explanation: Constraint: For transit RRO types: The value of the inbound interface type can be incoming or incoming-with-label. The value of the outbound interface type can be outgoing or outgoing-with-label. The value of the Router ID type can be router-id or router-id-with-label. The value cannot be set to disable for transit-rro1. If transit-rro1 is configured, one of the inbound interface type, outbound interface type, and Router ID type can only be selected form transit RRO types. The transit RRO type of transit-rro1, transit-rro2, and transit-rro3 nodes must be different from one another."; } leaf transit-rro2 { type transit-rro-type; must "(((../transit-rro1='incoming' or ../transit-rro1='incoming-with-label') and not(../transit-rro2='incoming' or ../transit-rro2='incoming-with-label')) or ((../transit-rro1='router-id' or ../transit-rro1='router-id-with-label') and not(../transit-rro2='router-id' or ../transit-rro2='router-id-with-label')) or ((../transit-rro1='outgoing' or ../transit-rro1='outgoing-with-label') and not(../transit-rro2='outgoing' or ../transit-rro2='outgoing-with-label')))"; default "router-id-with-label"; description "Transit-rro2. Special explanation: Constraint: The value if disable type can be disable. For transit RRO types: The value of the inbound interface type can be incoming or incoming-with-label. The value of the outbound interface type can be outgoing or outgoing-with-label. The value of the Router ID type can be router-id or router-id-with-label. If transit-rro2 is configured, this leaf can be set to disable. Or one of the inbound interface type, outbound interface type, and Router ID type form transit RRO types can only be selected for transit-rro2 node, and the transit RRO type of transit-rro1, transit-rro2, and transit-rro3 nodes must be different from one another."; } leaf transit-rro3 { type transit-rro-type; must "../transit-rro3='disable' or (((../transit-rro1='incoming' or ../transit-rro1='incoming-with-label') and (((../transit-rro2='outgoing' or ../transit-rro2='outgoing-with-label') and (../transit-rro3='router-id' or ../transit-rro3='router-id-with-label')) or ((../transit-rro2='router-id' or ../transit-rro2='router-id-with-label') and (../transit-rro3='outgoing' or ../transit-rro3='outgoing-with-label')))) or ((../transit-rro1='outgoing' or ../transit-rro1='outgoing-with-label') and (((../transit-rro2='incoming' or ../transit-rro2='incoming-with-label') and (../transit-rro3='router-id' or ../transit-rro3='router-id-with-label')) or ((../transit-rro2='router-id' or ../transit-rro2='router-id-with-label') and (../transit-rro3='incoming' or ../transit-rro3='incoming-with-label')))) or ((../transit-rro1='router-id' or ../transit-rro1='router-id-with-label') and (((../transit-rro2='incoming' or ../transit-rro2='incoming-with-label') and (../transit-rro3='outgoing' or ../transit-rro3='outgoing-with-label')) or ((../transit-rro2='outgoing' or ../transit-rro2='outgoing-with-label') and (../transit-rro3='incoming' or ../transit-rro3='incoming-with-label')))))"; default "outgoing"; description "Transit-rro3. Special explanation: Constraint: The value if disable type can be disable. For transit RRO types: The value of the inbound interface type can be incoming or incoming-with-label. The value of the outbound interface type can be outgoing or outgoing-with-label. The value of the Router ID type can be router-id or router-id-with-label. If transit-rro2 is set to disable, transit-rro3 can only be set to disable, too. Or one of the inbound interface type, outbound interface type, and Router ID type can only be selected for transit-rro3 node form transit RRO types, and the transit RRO type of transit-rro1, transit-rro2, and transit-rro3 nodes must be different from one another."; } leaf egress-rro1 { type egress-rro-type; must "not(../egress-rro1='disable')"; default "incoming-with-label"; description "Egress-rro1. Special explanation: Constraint: For egress RRO types: For egress RRO types: The value of the inbound interface type can be incoming or incoming-with-label. The value of the Router ID type can be router-id or router-id-with-label. The value if disable type can be disable. The value cannot be set to disable for egress-rro1. If egress-rro1 is delivered, either the inbound interface type or Router ID type can be selected form egress RRO types. The egress RRO type of egress-rro1 must be differ from that of egress-rro2."; } leaf egress-rro2 { type egress-rro-type; must "((../egress-rro1='incoming' or ../egress-rro1='incoming-with-label') and not(../egress-rro2='incoming' or ../egress-rro2='incoming-with-label')) or ((../egress-rro1='router-id' or ../egress-rro1='router-id-with-label') and not(../egress-rro2='router-id' or ../egress-rro2='router-id-with-label'))"; default "router-id-with-label"; description "Egress-rro2. Special explanation: Constraint: For egress RRO types: The value of the inbound interface type can be incoming or incoming-with-label. The value of the Router ID type can be router-id or router-id-with-label. The value if disable type can be disable. If egress-rro2 is configured, this leaf can be set to disable. Or either the inbound interface type or Router ID type can be selected form egress RRO types, and the egress RRO type of egress-rro1 must be differ from that of egress-rro2."; } leaf frr-bw-compatible { type boolean; default "false"; description "Enable/disable fast-reroute bandwidth storage in memory, and the default mode is float."; } leaf without-affinity { type boolean; default "false"; description "Enable/disable the session-attribute object in RSVP message without affinity at ingress."; } leaf soft-preempt-interval { type uint32 { range "30..300"; } units "s"; default "30"; description "Interval for soft preempt timer."; } leaf graceful-shutdown-enable { type boolean; default "false"; description "Enable/disable graceful shutdown for system."; } leaf graceful-shutdown-time { type uint16 { range "30..1200"; } units "s"; description "Delayed deletion period of Graceful Shutdown."; } leaf-list nodeid-session { when "../hello-enable='true'"; type inet:ipv4-address; max-elements 128; description "Configure a list of establishes hello sessions with a single-hop or multi-hop neighbor of a specified IP address."; } } // container global container peer-infos { config false; description "List of MPLS RSVP-TE neighbor information."; list peer-info { key "type ip-address"; description "Operational state of MPLS RSVP-TE neighbor query information."; leaf type { type neighbor-address-type; description "Type of a neighbor."; } leaf ip-address { type inet:ipv4-address-no-zone; description "IP address of a neighbor."; } leaf local-interface-name { type pub-type:if-name; description "Local interface name for normal neighbor."; } leaf src-instance { type pub-type:hex-binary; description "Src instance of a neighbor."; } leaf neighbor-src-instance { type pub-type:hex-binary; description "Neighbor src instance of a neighbor."; } leaf psb-count { type uint32; description "Psb count of a neighbor."; } leaf rsb-count { type uint32; description "Rsb count of a neighbor."; } leaf hello-type-sent { type neighbor-hello-sent-type; description "Hello type sent of a neighbor."; } leaf hello-extension-enable { type boolean; description "Hello extension of a neighbor."; } leaf srefresh-enable { type boolean; description "Srefresh enable state of a neighbor."; } leaf authentication-enable { type boolean; description "Authentication enable state of a neighbor."; } leaf authentication-type { type neighbor-authentication-type; description "Authentication type of a neighbor."; } leaf keychain-name { type string { length "1..47"; } description "Keychain name of a neighbor."; } leaf window-size { type uint8 { range "1..255"; } description "Window size of a neighbor."; } leaf last-valid-sequence-h { type uint32; description "Upper 32 bits of last valid sequence number."; } leaf last-valid-sequence-l { type uint32; description "Lower 32 bits of last valid sequence number."; } } // list peer-info } // container peer-infos container neighbors { when "../enable='true'"; description "List of MPLS RSVP-TE neighbors."; list neighbor { key "peer-ip-address"; description "Configure RSVP-TE neighbor information."; leaf peer-ip-address { type inet:ipv4-address-no-zone; description "IP address of a neighbor."; } container authentication { description "Configure neighbor configuration of RSVP TE authentication."; leaf enable { type boolean; default "false"; description "Enable/disable neighbor authentication."; } leaf type { when "../enable='true'"; type rsvp-authentication-type; mandatory true; description "Authentication type on a RSVP-TE neighbor."; } leaf keychain-name { ext:case-sensitivity "lower-only"; when "../enable='true' and ../type='keychain'"; type string { length "1..47"; pattern '[^A-Z]+'; } mandatory true; description "Keychain name. The name is case insensitive."; } leaf md5-password { when "../enable='true' and ../type!='keychain'"; type pub-type:password-extend { pattern '[^ ]+'; } mandatory true; description "Authentication key of a RSVP TE neighbor. The two NEs that configured with neighbor authentication authenticate each other by sending and receiving RSVP packets. The packets that are sent from the local NE to its neighbor carry the authentication information that are calculated based on the authentication key by using the MD5 algorithm. The packets received from the neighbor are also authenticated based on the authentication key. The password is a string ranging from 1 to 255 characters for a simple text key and 20 to 432 characters for a cipher text key."; } leaf life-time { when "../enable='true'"; type pub-type:time-tick { range "1..86399"; } units "s"; default "1800"; description "Authentication lifetime. During the authentication lifetime, RSVP authentication lifetime will be reset after a RSVP packet is received. If no RSVP packet is received when the authentication lifetime times out, the RSVP neighbor will delete the authentication relationship to prevent persistent authentication."; } leaf handshake-enable { when "../enable='true'"; type boolean; default "false"; description "Enable/disable the handshake authentication. When RSVP packet authentication is out of order, a handshake will be initiated and authentication will be re-negotiated."; } leaf window-size { when "../enable='true' and ../handshake-enable='true'"; type uint32 { range "1..64"; } default "1"; description "Size of an authentication window that is set to prevent information loss caused by packet disorder. If the packet sequence number exceeds the window size, the packet is considered to be out of order."; } } // container authentication } // list neighbor } // container neighbors container distribute-instances { when "../enable='true'"; description "List of RSVP distributed instance."; list distribute-instance { ext:generated-by "system" { description "The attributes of distribute-instance are generated automatically when RSVP TE is enabled."; } key "instance-name"; max-elements 17; description "Configure RSVP distributed instance."; leaf instance-name { type string { length "1..31"; pattern '[a-z,A-Z][a-z,A-Z,_,\-,0-9]*'; } description "Name of RSVP distributed instance."; } leaf os-group-name { type string { length "1..31"; } mandatory true; description "Name of RSVP distributed instance os-group."; } } // list distribute-instance } // container distribute-instances container statistics { config false; description "Global RSVP statistics."; leaf lsr-id { type inet:ipv4-address-no-zone; description "LSR ID."; } leaf lsp-count { type uint32; description "Number of LSPs established by using RSVP-TE."; } leaf psb-count { type uint32; description "Number of path state blocks."; } leaf rsb-count { type uint32; description "Number of reservation state blocks."; } leaf plr-available-lsps-count { type uint32; description "Number of LSPs with the local router as the PLR and the local router is in the FRR Available state (In the FRR Available state, on the PLR, the bypass tunnel is bound to the primary tunnel but FRR does not occur)."; } leaf plr-inuse-lsps-count { type uint32; description "Number of LSPs with the local router as the PLR and the local router is in the FRR Inuse state."; } leaf mp-available-lsps-count { type uint32; description "Number of LSPs with the local router as the MP and the local router is in the FRR Available state."; } leaf mp-inuse-lsps-count { type uint32; description "Number of LSPs with the local router as the MP and the local router is in the FRR Inuse state."; } leaf psb-cleanup-timeout-count { type uint32; description "Number of times for cleaning up the PSB that times out."; } leaf rsb-cleanup-timeout-count { type uint32; description "Number of times for cleaning up the RSB that times out."; } leaf send-packet-count { type uint32; description "Number of sent RSVP signaling packets."; } leaf receive-packet-count { type uint32; description "Number of received RSVP signaling packets."; } leaf send-path-count { type uint32; description "Number of sent Path packets. The Path packets are sent from the upstream node to the downstream node."; } leaf receive-path-count { type uint32; description "Number of received Path packets. The Path packets are sent from the upstream node to the downstream node."; } leaf send-refresh-path-count { type uint32; description "Number of sent refresh Path packets. The Path packets are sent from the upstream node to the downstream node."; } leaf receive-refresh-path-count { type uint32; description "Number of received refresh Path packets. The Path packets are sent from the upstream node to the downstream node."; } leaf send-resv-count { type uint32; description "Number of sent Resv packets."; } leaf receive-resv-count { type uint32; description "Number of received Resv packets."; } leaf send-refresh-resv-count { type uint32; description "Number of sent refresh Resv packets."; } leaf receive-refresh-resv-count { type uint32; description "Number of received refresh Resv packets."; } leaf send-resv-conf-count { type uint32; description "Number of sent ResvConf packets."; } leaf receive-resv-conf-count { type uint32; description "Number of received ResvConf packets."; } leaf send-hello-count { type uint32; description "Number of sent Hello packets."; } leaf receive-hello-count { type uint32; description "Number of received Hello packets."; } leaf send-ack-count { type uint32; description "Number of sent Ack packets."; } leaf receive-ack-count { type uint32; description "Number of received Ack packets."; } leaf send-path-error-count { type uint32; description "Number of sent PathErr packets."; } leaf receive-path-error-count { type uint32; description "Number of received PathErr packets."; } leaf send-resv-error-count { type uint32; description "Number of sent ResvErr packets."; } leaf receive-resv-error-count { type uint32; description "Number of received ResvErr packets."; } leaf send-path-tear-count { type uint32; description "Number of sent PathTear packets."; } leaf receive-path-tear-count { type uint32; description "Number of received PathTear packets."; } leaf send-resv-tear-count { type uint32; description "Number of sent ResvTear packets."; } leaf receive-resv-tear-count { type uint32; description "Number of received ResvTear packets."; } leaf send-srefresh-count { type uint32; description "Number of sent Srefresh packets."; } leaf receive-srefresh-count { type uint32; description "Number of received Srefresh packets."; } leaf send-ack-msg-count { type uint32; description "Number of sent Msg_ID_ACK packets."; } leaf receive-ack-msg-count { type uint32; description "Number of received Msg_ID_ACK packets."; } leaf send-challenge-msg-count { type uint32; description "Number of sent Challenge packets."; } leaf receive-challenge-msg-count { type uint32; description "Number of received Challenge packets."; } leaf send-response-msg-count { type uint32; description "Number of sent response packets."; } leaf receive-response-msg-count { type uint32; description "Number of received response packets."; } leaf send-error-msg-count { type uint32; description "Number of sent Msg_ID_NACK packets."; } leaf receive-error-msg-count { type uint32; description "Number of received Msg_ID_NACK packets."; } leaf send-recovery-path-msg-count { type uint32; description "Number of sent Path packets. The Path packets are sent from the downstream node to the upstream node."; } leaf receive-recovery-path-msg-count { type uint32; description "Number of received Path packets. The Path packets are sent from the downstream node to the upstream node."; } leaf send-gr-path-msg-count { type uint32; description "Number of sent GRPath packets."; } leaf receive-gr-path-msg-count { type uint32; description "Number of received GRPath packets."; } leaf send-notify-msg-count { type uint32; description "Number of send notify packets."; } leaf receive-notify-msg-count { type uint32; description "Number of receive notify packets."; } leaf resource-fault-count { type uint32; description "Number of resource request fault packets."; } leaf neighbor-counter { type uint32; description "Number of RSVP neighbor."; } leaf bfd-session-counter { type uint32; description "Number of BFD session."; } leaf retransmit-packet-count { type uint32; description "Number of resend RSVP packets."; } leaf response-packet-count { type uint32; description "Number of ack packets for resend."; } leaf retransmit-path-count { type uint32; description "Number of resend Path packets."; } leaf response-path-count { type uint32; description "Number of ack packets for Path resend."; } leaf retransmit-resv-count { type uint32; description "Number of resend Resv packets."; } leaf response-resv-count { type uint32; description "Number of ack packets for Resv resend."; } leaf retransmit-resv-conf-count { type uint32; description "Number of resend ResvConf packets."; } leaf response-resv-conf-count { type uint32; description "Number of ack packets for ResvConf resend."; } leaf retransmit-path-error-count { type uint32; description "Number of resend PathErr packets."; } leaf response-path-error-count { type uint32; description "Number of ack packets for PathErr resend."; } leaf retransmit-resv-error-count { type uint32; description "Number of resend ResvErr packets."; } leaf response-resv-error-count { type uint32; description "Number of ack packets for ResvErr resend."; } leaf retransmit-path-tear-count { type uint32; description "Number of resend PathTear packets."; } leaf response-path-tear-count { type uint32; description "Number of ack packets for PathTear resend."; } leaf retransmit-resv-tear-count { type uint32; description "Number of resend ResvTear packets."; } leaf response-resv-tear-count { type uint32; description "Number of ack packets for ResvTear resend."; } leaf retransmit-srefresh-count { type uint32; description "Number of resend srefresh packets."; } leaf response-srefresh-count { type uint32; description "Number of ack packets for srefresh resend."; } leaf retransmit-recovery-path-msg-count { type uint32; description "Number of resend recovery path packets."; } leaf response-recovery-path-msg-count { type uint32; description "Number of ack packets for recovery path resend."; } leaf retransmit-gr-path-msg-count { type uint32; description "Number of resend GRPath packets."; } leaf response-gr-path-msg-count { type uint32; description "Number of ack packets for GRPath resend."; } leaf retransmit-notify-msg-count { type uint32; description "Number of resend Notify packets."; } leaf response-notify-msg-count { type uint32; description "Number of ack packets for Notify resend."; } } // container statistics container rsvp-lsps { config false; description "List of RSVP-TE tunnel LSPs."; list rsvp-lsp { key "ingress-lsr-id egress-lsr-id session-id lsp-id"; description "Statistics of tunnel LSPs."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf session-id { type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf lsp-id { type uint16 { range "0..65535"; } description "LSP ID."; } leaf tunnel-name { ext:support-filter "true"; type string { length "1..256"; } description "Tunnel name."; } leaf tunnel-role { type te-tunnel-role; description "The type of the LSP nodes."; } leaf incoming-interface-name { ext:support-filter "true"; type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } description "LSP incoming interface name. The name is case-insensitive."; } leaf outgoing-interface-name { ext:support-filter "true"; type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } description "LSP outgoing interface name. The name is case-insensitive."; } leaf setup-priority { type uint8 { range "0..7"; } description "Setup priority of a LSP."; } leaf hold-priority { type uint8 { range "0..7"; } description "Hold priority of a LSP."; } leaf record-route { type record-route-mode; description "Route record mode."; } leaf dste-mode { type boolean; description "Whether DS-TE is used for LSP bandwidth constraints."; } leaf reserved-bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; description "Reserved bandwidth for non-DS-TE."; } leaf explicit-path-name { type string { length "1..128"; } description "Explicit path name of a LSP. The name is case-insensitive."; } leaf include-all { type pub-type:hex-binary; description "Specifies the Include-all (management group attribute) of a LSP."; } leaf include-any { type pub-type:hex-binary; description "Specifies the Include-any (management group attribute) of a LSP."; } leaf exclude-any { type pub-type:hex-binary; description "Specifies the Exclude-any (management group attribute) of a LSP."; } leaf local-protect-enable { type boolean; description "Specifies the enabling or disabling state of FRR for a LSP."; } leaf local-protect-inuse { type fast-reroute-inuse-state; description "Specifies the FRR protection state of this LSP."; } leaf bypass-tunnel-name { type string { length "1..256"; } description "Specifies the name of the bypass tunnel that protects the LSP. The name is case-insensitive."; } leaf permit-bandwidth-share { type boolean; description "Indicates whether the LSP permits bandwidth sharing."; } leaf lsp-mtu { type uint32 { range "0..32000000"; } description "Specifies a LSP MTU."; } leaf oper-status { type interface-status; description "Operation status of a LSP."; } leaf xcindex { type uint32 { range "0..4294967295"; } description "Cross-connect index."; } leaf entropy-label { type boolean; description "LSP Entropy Label Capability Negotiation Result."; } container ar-hops { description "List of actual path of a LSP."; list ar-hop { key "index"; description "Statistics of actual hop of a LSP."; leaf index { type uint32; description "Actual hop index."; } leaf incomming-type { type boolean; description "Whether the hop is an inbound interface."; } leaf ip-address { type inet:ipv4-address-no-zone; description "IP address of the actual hop."; } leaf label { type uint32; description "Label of the actual hop."; } leaf local-protect-inuse { type boolean; description "FRR protection state."; } leaf local-protect-type { type local-protect-type; description "FRR protection type."; } leaf bandwidth-protection { type boolean; description "FRR bandwidth protection."; } } // list ar-hop } // container ar-hops container c-hops { config false; description "List of path calculated by CSPF according to LSP constraints."; list c-hop { key "path-index index"; description "Statistics of path calculated by CSPF according to LSP constraints."; leaf path-index { type uint32; description "Path index calculated by CSPF."; } leaf index { type uint32; description "Hop index calculated by CSPF."; } leaf include { type boolean; description "Hop include or exclude."; } leaf hop-type { type hop-strict-type; description "Hop type calculated by CSPF. The available options are strict and loose."; } leaf address-type { type hop-address-type; description "Address type calculated by CSPF. The available options are IPv4 and IPv6."; } leaf ip-address { type inet:ipv4-address-no-zone; description "IP address calculated by CSPF."; } } // list c-hop } // container c-hops container detour-lsps { config false; description "List of detour LSPs."; list detour-lsp { key "local-addr nbr-addr"; description "Statistics of detour LSPs."; leaf local-addr { type inet:ipv4-address; description "Detour Lsp local address."; } leaf nbr-addr { type inet:ipv4-address; description "Detour Lsp neighbour address."; } leaf lsr-role { type te-tunnel-role; description "Specifies the types of the LSP nodes."; } leaf incoming-interface-name { type pub-type:if-name; description "LSP incoming interface name. The name is case-insensitive."; } leaf outgoing-interface-name { type pub-type:if-name; description "LSP outgoing interface name. The name is case-insensitive."; } leaf in-label { type uint32; description "Detour LSP incoming label."; } leaf out-label { type uint32; description "Detour LSP outgoing label."; } leaf xcindex { type uint32 { range "0..4294967295"; } description "Cross-connect index."; } } // list detour-lsp } // container detour-lsps container locked-paths { config false; description "List of locked paths."; list locked-path { key "path-index hop-index"; description "Statistics of locked path."; leaf path-index { type uint32; description "Path index."; } leaf hop-index { type uint32; description "Hop index."; } leaf hop-address { type inet:ipv4-address; description "Hop address."; } } // list locked-path } // container locked-paths } // list rsvp-lsp } // container rsvp-lsps } // container rsvp container cspf { when "../enable='true'"; description "Configure CSPF parameters."; leaf enable { type boolean; default "false"; description "Enable/disable CSPF capability."; } leaf preferred-igp { when "../enable='true' and ../multi-instances-short-path-mode='disable'"; type cspf-igp-type; default "ospf"; description "Preferred IGP TEDB in CSPF to calculate path."; } leaf preferred-ospf-process-id { when "../preferred-igp='ospf'"; type uint32 { range "1..4294967295"; } description "Preferred IGP OSPF process."; } leaf preferred-ospf-area-id { when "../preferred-ospf-process-id"; type inet:ipv4-address; description "Preferred IGP OSPF area."; } leaf preferred-isis-process-id { when "../preferred-igp='isis'"; type uint32 { range "1..4294967295"; } description "Preferred IGP IS-IS process."; } leaf preferred-isis-level { when "../preferred-isis-process-id"; type cspf-isis-level-type; description "Preferred IGP IS-IS level."; } leaf multi-instances-short-path-mode { when "../enable='true'"; type cspf-multiple-area-shortpath-mode; default "disable"; description "Multiple IGP instances shortest path Mode."; } leaf multi-preferred-igp { when "../multi-instances-short-path-mode='preferred-igp'"; type cspf-igp-type; default "ospf"; description "Multi-Instance preferred IGP."; } leaf multi-preferred-ospf-process-id { when "../multi-preferred-igp='ospf'"; type uint32 { range "1..4294967295"; } description "Multi-Instance preferred IGP OSPF process."; } leaf multi-preferred-isis-process-id { when "../multi-preferred-igp='isis'"; type uint32 { range "1..4294967295"; } description "Multi-Instance preferred IGP IS-IS process."; } 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 "Referenced metric type of one link for calculating path when creating TE tunnels. The available options IGP and TE, default is TE."; } leaf srlg-path-calculate-mode { type mpls-te-cspf-srlg-path-calculation-mode; default "default"; description "SRLG path calculation mode. It is configured on the ingress of a tunnel so that a TE HSB path can be calculated based on the SRLG if TE HSB is enabled. In strict mode, the ingress keeps using the SRLG as a constraint. In preferred mode, SRLG will be considered as a constraint only when the ingress computes a backup CR-LSP at the first time. If the path computation fails, the ingress will no longer uses the SRLG as a constraint."; } leaf fast-notice { when "../enable='true'"; type boolean; default "false"; description "Enable/disable CSPF tedb fast notice."; } leaf disable-optimize-mode { when "../enable='true'"; type boolean; default "false"; description "Enable/disable CSPF algorithm optimization mode."; } container tedbs { config false; description "List of TEDB records of MPLS-TE."; list tedb { key "igp-type process-id area-id router-id igp-router-id"; description "Statistics of TEDB record of MPLS-TE."; leaf igp-type { type tedb-srdb-igp-type; description "IGP type of the node."; } leaf process-id { type uint32; description "Process ID of the IGP protocol."; } leaf area-id { type string { length "1..31"; } description "ID of the area where the node resides."; } leaf router-id { type inet:ipv4-address; description "Router ID of the node."; } leaf igp-router-id { type string { length "1..256"; } description "ISIS system ID or OSPF router-id."; } leaf link-count { type uint32; description "Number of TE interfaces of the node."; } } // list tedb } // container tedbs container srdbs { config false; description "List of SRDB records of MPLS-TE."; list srdb { key "process-id area-id igp-type router-id igp-router-id ipv4-node-sid"; description "Statistics of SRDB record of MPLS-TE."; leaf process-id { type uint32; description "Process ID of the IGP protocol."; } leaf area-id { type uint32; description "ID of the area where the node resides."; } leaf igp-type { type tedb-srdb-igp-type; description "IGP type of the node."; } leaf router-id { type inet:ipv4-address; description "Router ID of the node."; } leaf igp-router-id { type string { length "1..256"; } description "ISIS system ID or OSPF router-id."; } leaf ipv4-node-sid { type uint32 { range "0..65534"; } description "SID of the node."; } leaf adjacent-sid-count { type uint32; description "Number of adjacent SID."; } } // list srdb } // container srdbs } // container cspf container p2mp-leaf-lists { when "../enable='true'"; description "List of p2mp leaf list configuration."; list p2mp-leaf-list { key "name"; description "Configure p2mp leaf list."; leaf name { type string { length "1..31"; pattern '[^ \?]*'; } description "Name of leaf list of P2mp."; } container leafs { description "List of leaf configuration."; list leaf { key "destination"; max-elements 1024; description "Configure leaf."; leaf destination { type inet:ipv4-address-no-zone; description "Leaf destination ip address."; } leaf explicit-path-name { type leafref { path "/te:te/te:explicit-paths/te:explicit-path/te:name"; } description "Explicit path name of a leaflist. The name is case-insensitive."; } } // list leaf } // container leafs } // list p2mp-leaf-list } // container p2mp-leaf-lists container p2mp-templates { when "../enable='true'"; description "List of P2MP Template configuration."; list p2mp-template { must "((not(include-all-affinity-name) and not(include-any-affinity-name) and not(exclude-affinity-name)) or (include-any='0x0' and exclude-any='0x0'))"; must "((./bandwidth>=./frr/bandwidth) or (./bandwidth and not(./frr/bandwidth)) or (not(./bandwidth) and not(./frr/bandwidth)))"; key "name"; description "Configure P2MP Template."; leaf name { type string { length "1..31"; pattern '[^ ]*'; } description "Name of P2MP Template."; } leaf cspf-disable { type boolean; default "false"; description "Enable/disable CSPF of LSP."; } leaf record-route { type record-route-mode; default "disable"; description "Route record mode."; } leaf resv-style { type resource-reservation-style; must "../resv-style='se' or (../reoptimization='false' and ../soft-preempt!='enable')"; default "se"; description "P2MP Template reservation styles."; } leaf setup-priority { type uint8 { range "0..7"; } must "../frr/setup-priority>=../setup-priority and ../setup-priority>=../hold-priority"; default "7"; description "Specifies a P2MP Template setup priority. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The setup priority must be equal to or smaller than its holding priority."; } leaf hold-priority { type uint8 { range "0..7"; } must "../frr/hold-priority>=../hold-priority and ../setup-priority>=../hold-priority"; default "7"; description "Specifies a P2MP Template holding priority. The smaller the value, the higher the holding priority. 0 is the highest priority. Special explanation: Constraint: The holding priority must be equal to or larger than its setup priority."; } leaf soft-preempt { type tunnel-soft-preempt-type; must "(../soft-preempt='enable' and ../resv-style='se') or (../soft-preempt='disable' or ../soft-preempt='block')"; default "disable"; description "Enable/disable/block soft preempt."; } leaf bandwidth { type uint32 { range "1..4000000000"; } units "kbit/s"; description "Specifies a tunnel bandwidth."; } leaf reoptimization { type boolean; must "../reoptimization='false' or ../resv-style='se'"; default "false"; description "Enable/disable auto reoptimization of P2MP Template."; } leaf reoptimization-frequency { type uint32 { range "60..604800"; } units "s"; must "../reoptimization-frequency=3600 or ../reoptimization='true'"; default "3600"; description "Frequency of auto reoptimization."; } leaf lsp-tp-outbound { type boolean; default "false"; description "Enable/disable traffic policing capability."; } leaf path-metric-type { type tunnel-path-metric-type; default "none"; description "Referenced metric type of one link for calculating path when creating TE tunnels. The available options are DEFAULT, IGP and TE, default is inheriting from global configuration."; } leaf tie-breaking { type p2p-tunnel-tie-breaking; default "default"; description "Routing rules for a P2MP Template with multiple equal-cost routes. Random: Select a link randomly. Least fill: Select the link with smallest bandwidth usage. Most fill: Select the link with biggest bandwidth usage. By default, routing rules are inherited from the global MPLS TE routing rules. If multiple paths meet certain limits, a path will be selected based on the preceding rules."; } 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 "Administrative group attribute of a LSP (includeAny)."; } leaf exclude-any { type pub-type:hex-binary; default "0x0"; description "Administrative group attribute of a LSP (excludeAny)."; } leaf include-all { type pub-type:hex-binary; config false; description "Administrative group attribute of a LSP (includeAll)."; } leaf leaf-list-name { type leafref { path "../../../p2mp-leaf-lists/p2mp-leaf-list/name"; } description "Specifies the leaf-list."; } leaf-list include-any-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "not(../include-all-affinity-name)"; must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include any."; } leaf-list include-all-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "not(../include-any-affinity-name)"; must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include all."; } leaf-list exclude-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure tunnel path affinity attribute: Exclude."; } leaf refer-number { type uint32; config false; description "Refer number for P2MP Template."; } container frr { description "Configure fast reroute attribute of P2MP Template."; leaf enable { type boolean; must "../enable='false' or (../../record-route='record-label' and ../../resv-style='se')"; default "false"; description "Enable/disable fast reroute capability."; } leaf bandwidth-protection-enable { when "../enable='true'"; type boolean; default "false"; description "Enable/disable the tunnel with fast reroute capability requests bandwidth protection."; } leaf bandwidth { when "../bandwidth-protection-enable='true'"; type uint32 { range "1..4000000000"; } units "kbit/s"; description "FRR-protection bandwidth (kbit/s) requested by an active tunnel. The value cannot exceed the bandwidth of the active tunnel."; } leaf setup-priority { type uint8 { range "0..7"; } must "../setup-priority>=../../setup-priority and ../setup-priority>=../hold-priority and ((../setup-priority=7) or ../bandwidth-protection-enable='true')"; default "7"; description "Setup priority of FRR-protection tunnels. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The protection tunnel setup priority cannot exceed the setup priority of the active tunnel."; } leaf hold-priority { type uint8 { range "0..7"; } must "../setup-priority>=../hold-priority and ../hold-priority>=../../hold-priority and ((../hold-priority=7) or ../bandwidth-protection-enable='true')"; default "7"; description "Holding priority of FRR protection tunnels. The smaller the value, the higher the priority. The value 0 is the highest priority. Special explanation: Constraint: The protection tunnel holding priority cannot exceed the active tunnel holding priority."; } } // container frr } // list p2mp-template } // container p2mp-templates container p2p-templates { when "../enable='true'"; description "List of P2P Template configuration."; list p2p-template { must "auto-bandwidth-max-bandwidth>=auto-bandwidth-min-bandwidth"; must "((./bandwidth>=./frr/bandwidth) or (./bandwidth and not(./frr/bandwidth)) or (not(./bandwidth) and not(./frr/bandwidth)) or ./frr/bandwidth='0')"; key "name"; description "Configure P2P Template."; leaf name { type string { length "1..31"; pattern '[^ ]*'; } description "Name of P2P Template."; } leaf record-route { type record-route-mode; default "disable"; description "Route record mode. The available options are not record, recording routes only, and recording routes and labels."; } leaf resv-style { type resource-reservation-style; must "../resv-style='se' or ../reoptimization='false'"; default "se"; description "P2P Template reservation styles. SE style: shared explicit style; FF: fixed filter style. The default tunnel reservation style is SE."; } leaf setup-priority { type uint8 { range "0..7"; } must "../frr/setup-priority>=../setup-priority and ../setup-priority>=../hold-priority"; default "7"; description "Specifies a P2P Template setup priority. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The setup priority must be equal to or smaller than its holding priority."; } leaf hold-priority { type uint8 { range "0..7"; } must "../frr/hold-priority>=../hold-priority and ../setup-priority>=../hold-priority"; default "7"; description "Specifies a P2P Template holding priority. The smaller the value, the higher the holding priority. 0 is the highest priority. Special explanation: Constraint: The holding priority must be equal to or larger than its setup priority."; } leaf bandwidth { type uint32 { range "1..4000000000"; } units "kbit/s"; description "Specifies a tunnel bandwidth."; } leaf reoptimization { type boolean; must "../reoptimization='false' or ../resv-style='se'"; default "false"; description "Enable/disable auto reoptimization enabling state of P2P Template."; } leaf reoptimization-frequency { type uint32 { range "60..604800"; } units "s"; must "../reoptimization-frequency=3600 or ../reoptimization='true'"; default "3600"; description "Frequency of auto reoptimization."; } leaf lsp-tp-outbound { type boolean; default "false"; description "Enable/disable traffic policing enabling state."; } leaf path-metric-type { type tunnel-path-metric-type; default "none"; description "Referenced metric type of one link for calculating path when creating TE tunnels. The available options are DEFAULT, IGP and TE, default is inheriting from global configuration."; } leaf tie-breaking { type p2p-tunnel-tie-breaking; default "default"; description "Routing rules for a P2P Template with multiple equal-cost routes. Random: Select a link randomly. Least fill: Select the link with smallest bandwidth usage. Most fill: Select the link with biggest bandwidth usage. By default, routing rules are inherited from the global MPLS TE routing rules. If multiple paths meet certain limits, a path will be selected based on the preceding rules."; } leaf auto-bandwidth-mode { type auto-bandwidth-type; default "none"; description "Auto bandwidth mode."; } leaf auto-bandwidth-frequency { when "../auto-bandwidth-mode!='none'"; type uint32 { range "300..604800"; } default "86400"; description "Set frequency of auto bandwidth."; } leaf auto-bandwidth-max-bandwidth { when "../auto-bandwidth-mode!='none'"; type uint32 { range "0..4000000000"; } default "4000000000"; description "Set maximum bandwidth."; } leaf auto-bandwidth-min-bandwidth { when "../auto-bandwidth-mode!='none'"; type uint32 { range "0..4000000000"; } default "0"; description "Set minimum bandwidth."; } leaf auto-bandwidth-threshold { when "../auto-bandwidth-mode='adjustment'"; type uint32 { range "0..100"; } default "0"; description "Set the threshold of the adjustment bandwidth."; } leaf auto-bandwidth-threshold-absolute { when "../auto-bandwidth-mode='adjustment'"; type uint64 { range "0..4000000000"; } default "0"; description "Set the absolute minimum bandwidth of the adjustment bandwidth."; } leaf hotstandby-enable { type boolean; must "../hotstandby-enable='false' or (../record-route!='disable' and ../resv-style='se')"; default "false"; description "Enable/disable hot standby for protecting TE tunnels. When an active LSP is set up successfully, a standby LSP that meets certain limits will be set up to protect the active LSP. When the active LSP fails, the traffic on the active LSP will be switched to the standby LSP."; } leaf hotstandby-revertive-mode { type tunnel-hotstandby-revert-mode; must "../hotstandby-revertive-mode='revertive' or ../hotstandby-enable='true'"; default "revertive"; description "Hot-standby revertive."; } leaf hotstandby-wtr { type uint32 { range "0..2592000"; } units "s"; must "../hotstandby-wtr=10 or (../hotstandby-revertive-mode='revertive' and ../hotstandby-enable='true')"; default "10"; description "Time of waiting recovering back to primary LSP. When hot-standby backup is in use, after primary LSP restores, the traffic will switch to primary LSP after waiting some time instead of switching to primary LSP immediately. This is to avoid frequent switching between primary LSP and backup LSP caused by network flapping."; } leaf hotstandby-path-overlap { type boolean; must "../hotstandby-path-overlap='false' or ../hotstandby-enable='true'"; default "false"; description "Enable/disable hot-standby LSP can overlap primary LSP. If there is no other path to choose, the hot-standby LSP can overlap the primary LSP."; } leaf hotstandby-dynamic-bandwidth { type boolean; must "../hotstandby-dynamic-bandwidth='false' or ../hotstandby-enable='true'"; default "false"; description "Enable/disable hot-standby dynamic-bandwidth."; } leaf statistic-enable { type boolean; default "false"; description "Enable/disable statistic."; } leaf entropy-label { type entropy-label-enable; default "default"; description "Entropy Label Enable."; } leaf refer-number { type uint32; config false; description "Refer number for P2P Template."; } container frr { description "Configure fast reroute attribute of P2P Template."; leaf enable { type boolean; must "../enable='false' or (../../record-route='record-label' and ../../resv-style='se')"; default "false"; description "Enable/disable fast reroute capability."; } leaf bandwidth-protection-enable { when "../enable='true'"; type boolean; default "false"; description "Enable/disable the tunnel with fast reroute capability requests bandwidth protection."; } leaf bandwidth { when "../bandwidth-protection-enable='true'"; type uint32 { range "0..4000000000"; } units "kbit/s"; description "FRR-protection bandwidth (kbits/s) requested by an active tunnel. The value cannot exceed the bandwidth of the active tunnel."; } leaf setup-priority { type uint8 { range "0..7"; } must "../setup-priority>=../../setup-priority and ../setup-priority>=../hold-priority and ((../setup-priority=7) or ../bandwidth-protection-enable='true')"; default "7"; description "Setup priority of FRR-protection tunnels. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The protection tunnel setup priority cannot exceed the setup priority of the active tunnel."; } leaf hold-priority { type uint8 { range "0..7"; } must "../setup-priority>=../hold-priority and ../hold-priority>=../../hold-priority and ((../hold-priority=7) or ../bandwidth-protection-enable='true')"; default "7"; description "Holding priority of FRR protection tunnels. The smaller the value, the higher the priority. The value 0 is the highest priority. Special explanation: Constraint: The protection tunnel holding priority cannot exceed the active tunnel holding priority."; } } // container frr container lsp-paths { description "List of LSP attribute parameter."; list lsp-path { must "((not(include-all-affinity-name) and not(include-any-affinity-name) and not(exclude-affinity-name)) or (include-any='0x0' and exclude-any='0x0'))"; key "path-type"; max-elements 1; description "Configure LSP attribute parameter."; leaf path-type { type lsp-path-type; must "../path-type='primary'"; description "Set LSP type. Only support primary type."; } leaf hop-limit { type uint32 { range "1..32"; } default "32"; description "Hop limit on a TE LSP."; } leaf include-all { type pub-type:hex-binary; config false; description "Administrative group attribute of a LSP (includeAll)."; } leaf include-any { type pub-type:hex-binary; default "0x0"; description "Administrative group attribute of a LSP (includeAny)."; } leaf exclude-any { type pub-type:hex-binary; default "0x0"; description "Administrative group attribute of a LSP (excludeAny)."; } leaf-list include-any-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "not(../include-all-affinity-name)"; must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include any."; } leaf-list include-all-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "not(../include-any-affinity-name)"; must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include all."; } leaf-list exclude-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure tunnel path affinity attribute: Exclude."; } } // list lsp-path } // container lsp-paths } // list p2p-template } // container p2p-templates container ip-prefixs { when "../enable='true'"; description "List of IP prefix auto tunnel."; list ip-prefix { key "name"; description "Configure IP prefix auto tunnel."; leaf name { type leafref { path "/rtp:routing-policy/rtp:ipv4-prefix-filters/rtp:ipv4-prefix-filter/rtp:name"; } description "Ip prefix name of ip prefix auto tunnel."; } leaf template-name { type leafref { path "../../../p2p-templates/p2p-template/name"; } description "Template name of ip prefix auto tunnel."; } } // list ip-prefix } // container ip-prefixs container te-class-mapping { when "../enable='true'"; presence "Enter te-class-mapping view."; description "Enable/disable TE class mapping."; container te-classes { description "List of TE class configuration."; list te-class { key "te-class-mode"; unique "te-class-type priority"; max-elements 8; description "Configure TE class."; leaf te-class-mode { type te-class-mode-type; description "TE-Class only configured from te-class0 to te-class7."; } leaf te-class-type { type te-class-type; mandatory true; description "Class-Type 0 to 7."; } leaf priority { type uint8 { range "0..7"; } mandatory true; description "Class type priority."; } leaf description { type string { length "1..31"; } description "Set TE-Class description."; } } // list te-class } // container te-classes } // container te-class-mapping container associate-groups { when "../enable='true'"; description "List of associated tunnel groups."; list associate-group { key "group-id"; max-elements 1024; description "Configure associated tunnel group."; leaf group-id { type uint32 { range "1..4294967295"; } description "Associated tunnel group id."; } leaf backup-type { type backup-type; default "load-balance"; description "Backup type of a tunnel association group."; } leaf wtr { when "../backup-type='backup'"; type uint32 { range "0..2592000"; } units "s"; default "300"; description "Configure the time of wait to restore."; } container original-tunnels { description "List of original tunnels."; list original-tunnel { must "(/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:split-tunnel='false' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:ordinary-enable='false' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:best-effort-enable='false' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:bypass/mpls-te:enable='false' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:fast-reroute/mpls-te:mode!='detour-backup' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:fast-reroute/mpls-te:enable='false') or (/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:sr-te/mpls-te:split-tunnel='false')"; key "name"; max-elements 1; description "Configure original tunnel."; leaf name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Tunnel' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:egress-lsr-id and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:tunnel-id"; must "../../../backup-type='load-balance' or (/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:signal-protocol='rsvp-te')"; description "Original tunnel name."; } leaf state { type associate-tunnel-group-state; config false; description "Original tunnel status."; } container split-tunnels { description "List of split tunnels."; list split-tunnel { must "(/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:signal-protocol='rsvp-te' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:rsvp-te/mpls-te:split-tunnel='true') or (/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:signal-protocol='segment-routing' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:sr-te/mpls-te:split-tunnel='true')"; must "../../name!=name"; must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/../../name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:egress-lsr-id=/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()/name]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:egress-lsr-id"; key "name"; max-elements 63; description "Configure split tunnel."; leaf name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:type='Tunnel' and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:tunnel-id"; must "../../../../../backup-type='load-balance' or (/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/tnlm:tunnel-protocol/mpls-te:te-tunnel/mpls-te:common-attributes/mpls-te:signal-protocol='rsvp-te')"; description "Split tunnel name."; } leaf state { type associate-tunnel-group-state; config false; description "Split tunnel status."; } } // list split-tunnel } // container split-tunnels } // list original-tunnel } // container original-tunnels } // list associate-group } // container associate-groups container tunnel-statistic { config false; description "Statistics of tunnel about quantities and status."; leaf ingress-tunnel { type uint32; description "Number of tunnels of the ingress."; } leaf ingress-tunnel-up { type uint32; description "Number of up tunnels of the ingress."; } leaf ingress-cr-lsps-up { type uint32; description "Number of up CR-LSPs of the ingress."; } leaf ingress-tunnel-modified { type uint32; description "Number of modified tunnels of the ingress."; } leaf ingress-tunnel-in-progress { type uint32; description "Number of being-created tunnels of the ingress."; } leaf ingress-tunnel-failed { type uint32; description "Number of down tunnels of the ingress."; } leaf transit-tunnel-up { type uint32; description "Number of up tunnels of the transit node."; } leaf egress-tunnel-up { type uint32; description "Number of up tunnels of the egress."; } leaf tunnel-group-count { type uint32; description "Tunnel group statistic."; } leaf p2mp-tunnel-count { type uint32; description "Total number of P2MP tunnel."; } } // container tunnel-statistic container stitch-label-stacks { config false; description "List of stitch label stacks of the tunnel."; list stitch-label-stack { key "stitch-label"; description "Operational data of stitch label stack."; leaf stitch-label { type uint32; description "Stitch label of the tunnel."; } leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf session-id { type uint16; description "Tunnel session ID."; } leaf lsp-id { type uint16; description "LSP ID."; } leaf is-local-reserved { type boolean; description "Indicate that the stitch label is local reserve."; } container c-hops { description "List of path calculated by stitch label stack."; list c-hop { key "index"; description "Operational data of path calculated by stitch label stack."; leaf index { type uint32; description "Hop index calculated by stitch label."; } leaf type { type hop-strict-type; description "Hop type calculated by stitch label. The available options are strict and loose."; } leaf label { type uint32; description "Hop label calculated by stitch label."; } leaf label-type { type sr-te-label-type; description "Label type."; } leaf nai { type string { length "1..63"; } description "Node or adjacency identifier."; } } // list c-hop } // container c-hops } // list stitch-label-stack } // container stitch-label-stacks container segment-crc-errors { config false; description "List of several segment bit error detection."; list segment-crc-error { key "ingress-lsr-id egress-lsr-id session-id lsp-id"; description "Statistics of several segment bit error detection."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf session-id { type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf lsp-id { type uint16 { range "0..65535"; } description "LSP ID."; } leaf lsp-type { type mpls-rsvp-te-lsp-type; description "LSP type."; } leaf tunnel-name { ext:support-filter "true"; type pub-type:if-name; description "Tunnel name."; } leaf lsr-role { ext:support-filter "true"; type lsr-role; description "LSR role."; } leaf bit-error-detection-state { type crc-state; description "Bit error detection State."; } leaf forward-bit-error-coe-value { type uint8 { range "0..9"; } description "The coefficient value of forward total switch-threshold."; } leaf forward-bit-error-pow-value { type uint8 { range "0..7"; } description "The power value of forward total switch-threshold."; } leaf reverse-bit-error-coe-value { type uint8 { range "0..9"; } description "The coefficient value of reverse total switch-threshold."; } leaf reverse-bit-error-pow-value { type uint8 { range "0..7"; } description "The power value of reverse total switch-threshold."; } container segment-crc-err-routers { description "List of single segment bit error detection."; list segment-crc-err-router { key "lsr-id"; description "Statistics of single segment bit error detection."; leaf lsr-id { type inet:ipv4-address-no-zone; description "LSR ID."; } leaf bit-error-coe-value { type uint8 { range "0..9"; } description "The coefficient value of switch-threshold."; } leaf bit-error-pow-value { type uint8 { range "0..7"; } description "The power value of switch-threshold."; } } // list segment-crc-err-router } // container segment-crc-err-routers } // list segment-crc-error } // container segment-crc-errors container te-tunnels { config false; description "List of TE tunnels query information."; list te-tunnel { key "tunnel-name"; description "Statistics of TE tunnel query information."; leaf tunnel-name { type pub-type:if-name; description "Tunnel Name."; } leaf signal-protocol { ext:support-filter "true"; type te-tunnel-signal-protocol; description "MPLS-TE tunnel signal-protocol."; } leaf ingress-lsr-id { ext:support-filter "true"; type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { ext:support-filter "true"; type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf ipv6-ingress-lsr-id { ext:support-filter "true"; type inet:ipv6-address-no-zone; description "IPv6 Ingress LSR ID."; } leaf ipv6-egress-lsr-id { ext:support-filter "true"; type inet:ipv6-address-no-zone; description "IPv6 Egress LSR ID."; } leaf session-id { ext:support-filter "true"; type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf tunnel-description { ext:support-filter "true"; type string { length "0..128"; pattern '[^ \?]*'; } description "Tunnel description."; } leaf lsr-role { type lsr-role; description "LSR role."; } leaf direction { type tunnel-direction; description "Tunnel direction."; } leaf cir { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of cir."; } leaf cbs { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of cbs."; } leaf pir { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of pir."; } leaf pbs { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of pbs."; } leaf remain-bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; description "Remain bandwidth."; } leaf exp { type mpls-pipe-service-class; description "EXP."; } leaf in-bearer-type { type bearer-type; description "Inbound bearer type."; } leaf incoming-interface-name { ext:support-filter "true"; type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } description "Incoming interface name."; } leaf quit-ring-id { type uint16 { range "1..65535"; } description "Ring ID of outgoing interface ring."; } leaf quit-ring-direction { type ring-direction-type; description "Direction of outgoing interface ring."; } leaf quit-ring-src-node-id { type uint8 { range "1..255"; } description "Quit ring source node id."; } leaf out-bearer-type { type bearer-type; description "Outbound bearer type."; } leaf outgoing-interface-name { ext:support-filter "true"; type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } description "Outgoing interface name."; } leaf enter-ring-id { type uint16 { range "1..65535"; } description "Ring ID of incoming interface ring."; } leaf enter-ring-direction { type ring-direction-type; description "Direction of incoming interface ring."; } leaf enter-ring-sink-node-id { type uint8 { range "1..255"; } description "Enter ring sink node id."; } leaf reverse-for-binding { type boolean; description "Tunnel reserved for VPN binding."; } } // list te-tunnel } // container te-tunnels container te-egress-lsps { config false; description "List of reverse lsps of a tunnel."; list te-egress-lsp { key "ingress-lsr-id egress-lsr-id session-id"; description "Statistics of reverse lsp of a tunnel."; leaf ingress-lsr-id { type inet:ip-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { type inet:ip-address-no-zone; description "Egress LSR ID."; } leaf session-id { type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf tunnel-name { type pub-type:if-name; description "Tunnel Name."; } leaf signal-protocol { type signal-protocol-type; description "MPLS-TE tunnel signal-protocol."; } leaf reverse-lsp-id { type uint16 { range "0..65535"; } description "Reverse LSP ID."; } leaf tunnel-description { type string { length "0..128"; pattern '[^ \?]*'; } description "Tunnel description."; } leaf lsr-role { type lsr-role; description "LSR role."; } leaf direction { type tunnel-direction; description "Tunnel direction."; } leaf cir { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of cir."; } leaf cbs { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of cbs."; } leaf pir { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of pir."; } leaf pbs { type uint32 { range "0..4000000000"; } units "kbit/s"; description "The value of pbs."; } leaf remain-bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; description "Remain bandwidth."; } leaf exp { type mpls-pipe-service-class; description "EXP."; } leaf in-bearer-type { type bearer-type; description "Inbound bearer type."; } leaf incoming-interface-name { type pub-type:if-name; description "Incoming interface name."; } leaf quit-ring-id { type uint16 { range "1..65535"; } description "Ring ID of outgoing interface ring."; } leaf quit-ring-direction { type ring-direction-type; description "Direction of outgoing interface ring."; } leaf quit-ring-src-node-id { type uint8 { range "1..255"; } description "Quit ring source node id."; } leaf out-bearer-type { type bearer-type; description "Outbound bearer type."; } leaf outgoing-interface-name { type pub-type:if-name; description "Outgoing interface name."; } leaf enter-ring-id { type uint16 { range "1..65535"; } description "Ring ID of incoming interface ring."; } leaf enter-ring-direction { type ring-direction-type; description "Direction of incoming interface ring."; } leaf enter-ring-sink-node-id { type uint8 { range "1..255"; } description "Enter ring sink node id."; } } // list te-egress-lsp } // container te-egress-lsps container te-crlsp-infos { config false; description "List of CR-LSPs."; list te-crlsp-info { key "lsp-type is-modify-lsp tunnel-name"; description "Statistics of CR-LSP."; leaf lsp-type { type tunnel-backup-lsp-type; description "CR-LSP type."; } leaf is-modify-lsp { type boolean; description "Whether a modified LSP."; } leaf tunnel-name { type pub-type:if-name; description "Tunnel Name."; } leaf signal-protocol { ext:support-filter "true"; type lsp-signal-protocol-type; description "MPLS-TE tunnel signal-protocol."; } leaf ingress-lsr-id { ext:support-filter "true"; type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { ext:support-filter "true"; type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf session-id { ext:support-filter "true"; type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf lsp-id { type uint16 { range "0..65535"; } description "CR-LSP ID."; } leaf lsp-state { type cr-lsp-state; description "CR-LSP state."; } leaf lsp-bfd-state { type bfd-status-type; description "CR-LSP bfd state."; } leaf lsp-pce-flag { type pce-flag-type; description "CR-LSP pce-flag."; } leaf lsp-path-setup-type { type lsp-path-setup-type; description "CR-LSP path setup type."; } leaf is-best-effort { type boolean; description "Whether a best-effort LSP."; } } // list te-crlsp-info } // container te-crlsp-infos } // container te } augment /ni:network-instance/ni:instances/ni:instance/mpls:mpls { description "MPLS TE Configuration information augment to network instance."; container te { when "/mpls:mpls/mpls-te:te/mpls-te:enable='true'"; description "Configure MPLS TE parameters."; } // container te } augment /ifm:ifm/ifm:interfaces/ifm:interface/tnlm:tunnel-protocol/tnlm:type { description "MPLS TE Tunnel Configuration information augment to tnlm."; case mpls-te { description "Tunnel protocol MPLS te."; container te-tunnel { when "/mpls:mpls/mpls-te:te/mpls-te:enable='true'"; presence "Specifies tunnel-protocol MPLS TE."; description "Enable/disable MPLS TE tunnel."; container common-attributes { description "Configure Te tunnel common attributes."; leaf signal-protocol { ext:operation-exclude "update|delete" { when "../../p2mp-te"; description "When tunnel mode is P2MP TE, the signal-protocol is not allowd to delete and update."; } type te-tunnel-signal-protocol; default "rsvp-te"; description "MPLS-TE tunnel signal-protocol."; } leaf tunnel-id { type uint16 { range "1..32768"; } description "Session ID of a tunnel. Special explanation: Range: The min value of MPLSTunnelIndex leaf is 1, and max value is dynamic."; } leaf egress-lsr-id { when "not(../../p2mp-te)"; type inet:ipv4-address-no-zone; description "Specifies egress LSR ID of the tunnel."; } leaf reserved-for-binding { when "not(../../p2mp-te)"; type boolean; default "false"; description "Enable/disable the tunnel can transmit only the service of the specified VPN."; } leaf lsp-tp-outbound { type boolean; default "false"; description "Enable/disable traffic policing enabling state."; } leaf statistic-enable { type boolean; default "false"; description "Enable/disable TE tunnel interface statistic enabling state."; } } // container common-attributes choice tunnel-mode { description "The tunnel mode is used to distinguish between common RSVP-TE and P2MP-TE tunnel."; case p2p-rsvp-te { description "The tunnel mode is RSVP-TE."; container rsvp-te { when "../common-attributes/signal-protocol='rsvp-te'"; must "not((hotstandby and reverse-lsp) or (hotstandby and bypass/enable='true'))"; must "not(path-disjoint-calculate='true' and count(lsp-paths/lsp-path[hop-limit!=32])>0)"; description "Configure TE E2E Dynamic unicast tunnel."; leaf signalled-tunnel-name { type string { length "1..63"; pattern '[a-z,A-Z,_][^ /]*'; } description "User Defined el Name, use tunnel interface name as default. The first character cannot be numbers. And cannot use physical interface name."; } leaf traffic-enable { type boolean; default "true"; description "Enable/disable traffic for a tunnel."; } leaf bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; must "(../fast-reroute/bypass-attributes/frr-bandwidth and ../bandwidth>=../fast-reroute/bypass-attributes/frr-bandwidth) or not(../fast-reroute/bypass-attributes/frr-bandwidth)"; default "0"; description "Specifies a tunnel bandwidth."; } leaf class-type { type te-class-type; must "/mpls:mpls/mpls-te:te/mpls-te:global/mpls-te:ds-te-mode='ietf' or ../class-type='ct0'"; must "../class-type='ct0' or ../bandwidth!=0"; default "ct0"; description "The class type for IETF mode."; } leaf setup-priority { type uint8 { range "0..7"; } must "((../fast-reroute/bypass-attributes/setup-priority>=../setup-priority) or not(../fast-reroute/bypass-attributes/setup-priority)) and ((../setup-priority>=../hold-priority) or (../setup-priority='7' and not(../hold-priority)))"; default "7"; description "Specifies a tunnel setup priority. The smaller the value, the higher the setup priority. 0 is the highest priority."; } leaf hold-priority { type uint8 { range "0..7"; } must "((../fast-reroute/bypass-attributes/hold-priority>=../hold-priority) or not(../fast-reroute/bypass-attributes/hold-priority)) and ((../setup-priority>=../hold-priority) or not(../setup-priority))"; default "7"; description "Specifies a tunnel holding priority. The smaller the value, the higher the holding priority. 0 is the highest priority."; } leaf ordinary-enable { type boolean; must "(../ordinary-enable='false') or (../record-route!='disable' and ../best-effort-enable='false' and ../pce-delegate='no')"; default "false"; description "Enable/disable a tunnel ordinary backup protection capability. When it is enabled, and the primary LSP fails, a backup LSP that meets certain limits will be set up. Then, the traffic on the primary LSP will be switched to the backup LSP."; } leaf best-effort-enable { type boolean; must "(../best-effort-enable='false') or (../record-route!='disable' and ../ordinary-enable='false')"; default "false"; description "Enable/disable best-effort path protection of tunnels. When best-effort path is enabled for a TE tunnel, and both active and standby LSP fail, a LSP will be set up in the best effort method."; } leaf backup-frr-inuse { when "../ordinary-enable='true' or ../hotstandby"; type boolean; default "false"; description "Enable/disable the capability of creating backup lsp during frr in use. When configured fast-reroute and backup protection, and the tunnel is down, it will switch to frr-in-use, and it will try to restore the primary LSP, if you configure this capability, the same time, it will try to create backup LSP. This capability depends on configuration of enabling hot-standby or ordinary."; } leaf path-disjoint-calculate { type boolean; must "(../path-disjoint-calculate='false') or (../hotstandby and ../disable-cspf='false')"; default "false"; description "Enable/disable the capability of calculate fully disjoint path for main and hot-standby."; } leaf soft-preempt-enable { type boolean; must "(../reserve-style='se' and ../soft-preempt-enable='true' and ../disable-reroute='false' and /mpls:mpls/mpls-te:te/mpls-te:global/mpls-te:ds-te-mode='non-ietf') or (../soft-preempt-enable='false')"; default "false"; description "Enable/disable soft preempt."; } leaf disable-cspf { type boolean; default "false"; description "Enable/disable Cspf of a Tunnel."; } leaf reserve-style { type resource-reservation-style; must "(../reserve-style='ff' and ../best-effort-enable='false' and ../ordinary-enable='false' and ../fast-reroute/enable='false' and ../reoptimization='false' and ../soft-preempt-enable='false') or (../reserve-style='se')"; default "se"; description "Tunnel reservation styles."; } leaf record-route { type record-route-mode; default "disable"; description "Route record mode of a tunnel."; } leaf reoptimization { type boolean; default "false"; description "Enable/disable auto reoptimization enabling state of TE Tunnel."; } leaf reoptimization-frequency { type uint32 { range "60..604800"; } units "s"; must "../reoptimization-frequency=3600 or ../reoptimization='true'"; default "3600"; description "Frequency of auto reoptimization."; } leaf inter-area-reoptimization { type boolean; must "../inter-area-reoptimization='false' or ../reoptimization='true'"; default "false"; description "Enable/disable inter-area reoptimization enabling state of TE Tunnel."; } leaf tie-breaking { type p2p-tunnel-tie-breaking; default "default"; description "Routing rules for a tunnel with multiple equal-cost routes. Random: Select a link randomly. Least fill: Select the link with smallest bandwidth usage. Most fill: Select the link with biggest bandwidth usage. By default, routing rules are inherited from the global MPLS TE routing rules. If multiple paths meet certain limits, a path will be selected based on the preceding rules."; } leaf path-metric-type { type tunnel-path-metric-type; default "none"; description "Referenced metric type of one link for calculating path when creating TE tunnels. The available options are DEFAULT, IGP and TE, default is inheriting from global configuration."; } leaf metric-inherit-igp { type boolean; default "false"; description "Enable/disable the TE tunnel metric inherits the IGP metric."; } leaf pce-delegate { type delegate-type; must "(/mpls:mpls/mpls-te:te/mpls-te:global/mpls-te:ds-te-mode='non-ietf') and (not(../reserve-style='ff'))"; default "no"; description "Specifies the enabling state of PCE delegation capability."; } leaf entropy-label { type entropy-label-enable; default "default"; description "Entropy Label Enable."; } leaf split-tunnel { type boolean; default "false"; description "Enable/disable the RSVP-TE tunnel as a split tunnel."; } leaf soft-preempt-block { type boolean; must "(../soft-preempt-enable='false' and not(../reserve-style='ff') and ../disable-reroute='false' and ../soft-preempt-block='true') or ../soft-preempt-block='false'"; default "false"; description "Enable/disable block soft preempt."; } leaf disable-reroute { type boolean; must "(../disable-reroute='false') or (../pce-delegate='no')"; default "false"; description "Enable/disable MPLS te rerouting function."; } leaf self-ping { type tunnel-self-ping-type; default "disable"; description "Self-ping enabling state of an RSVP-TE tunnel."; } leaf self-ping-duration { type uint32 { range "60..65535"; } units "s"; default "1800"; description "Self-ping timeout period of an RSVP-TE tunnel. Value 65535 indicates no limit on the detection time."; } leaf tunnel-weight { type uint8 { range "1..100"; } description "Specifies load-balance weight of the rsvp-te tunnel."; } container fast-reroute { must "(enable='true' and mode and mode='facility-backup') or (enable='false' and not(mode='facility-backup'))"; must "not(../disable-reroute='true' and enable='true')"; description "Configure fast reroute attribute of a Tunnel."; leaf enable { type boolean; must "(../../record-route='record-label' and ../enable='true') or (../enable='false')"; must "not(../../bypass/enable='true' and ../enable='true')"; default "false"; description "Enable/disable fast reroute capability."; } leaf mode { type tunnel-fast-reroute-type; must "not (../mode='detour-backup' and (../../bypass/enable='true' or ../../reserve-style='ff' or count(../../bypass/protection-interfaces)>0 or ../../pce-delegate!='no'))"; description "The tunnel with fast reroute mode."; } leaf bandwidth-protection-enable { when "../enable='true'"; type boolean; must "../bandwidth-protection-enable='false' or /mpls:mpls/mpls-te:te/mpls-te:global/mpls-te:ds-te-mode='non-ietf'"; default "false"; description "Enable/disable the tunnel with fast reroute capability requests bandwidth protection."; } leaf frr-switch-degrade { when "../enable='true'"; type boolean; default "false"; description "Enable/disable fast reroute tunnel degrade capability."; } container bypass-attributes { when "../enable='true'"; must "((not(include-all-affinity-name) and not(include-any-affinity-name) and not(exclude-affinity-name)) or (include-any='0x0' and exclude-any='0x0'))"; description "Configure fast reroute attributes."; leaf frr-bandwidth { when "../../bandwidth-protection-enable='true'"; type uint32 { range "0..4000000000"; } units "kbit/s"; must "../../../bandwidth>=../frr-bandwidth"; description "FRR-protection bandwidth (kbits/s) requested by an active tunnel. The value cannot exceed the bandwidth of the active tunnel."; } leaf setup-priority { type uint32 { range "0..7"; } must "((../setup-priority>=../../../setup-priority) or (../setup-priority='7' and not(../../../setup-priority))) and ((../setup-priority>=../hold-priority) or (../setup-priority='7' and not(../hold-priority)))"; default "7"; description "Setup priority of FRR-protection tunnels. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The protection tunnel setup priority cannot exceed the setup priority of the active tunnel."; } leaf hold-priority { type uint32 { range "0..7"; } must "((../hold-priority>=../../../hold-priority) or (../hold-priority='7' and not(../../../hold-priority))) and ((../setup-priority>=../hold-priority) or (not(../setup-priority)))"; default "7"; description "Holding priority of FRR protection tunnels. The value 0 is the highest priority. Special explanation: Constraint: The protection tunnel holding priority cannot exceed the active tunnel holding priority."; } leaf include-any { type pub-type:hex-binary; default "0x0"; description "Tunnel path management attribute of FRR protection tunnel: 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 a LSP, the link can be a candidate LSP link."; } leaf exclude-any { type pub-type:hex-binary; default "0x0"; description "Tunnel path management attribute of FRR protection tunnel: 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 a LSP, the link cannot be a candidate LSP link."; } leaf include-all { type pub-type:hex-binary; config false; description "Tunnel path management attribute of FRR protection tunnel: Include-all. The management attribute is a 32-bit vector. The management attribute of a selected link must contain the entire Include-all attribute field of the tunnel."; } leaf-list include-any-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include any."; } leaf-list include-all-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include all."; } leaf-list exclude-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure tunnel path affinity attribute: Exclude."; } } // container bypass-attributes } // container fast-reroute container hotstandby { must "../record-route!='disable' and ../ordinary-enable='false'"; presence "Indicates hotstandby-enable a node is configured."; description "Enable/disable hot standby for protecting TE tunnels. When an active LSP is set up successfully, a standby LSP that meets certain limits will be set up to protect the active LSP. When the active LSP fails, the traffic on the active LSP will be switched to the standby LSP."; leaf wtr { when "../revertive-mode='revertive'"; type uint32 { range "0..2592000"; } units "s"; default "10"; description "Time of waiting recovering back to primary LSP. When hot-standby backup is in use, after primary LSP restores, the traffic will switch to primary LSP after waiting some time instead of switching to primary LSP immediately. This is to avoid frequent switching between primary LSP and backup LSP caused by network flapping."; } leaf revertive-mode { type tunnel-hotstandby-revert-mode; default "revertive"; description "Hot-standby revertive. There are two revert modes, e.g. revertive and non-revertive. The default mode is revertive."; } leaf path-overlap { type boolean; default "false"; description "Enable/disable hot-standby LSP can overlap primary LSP. If there is no other path to choose, the hot-standby LSP can overlap the primary LSP."; } leaf dynamic-bandwidth { type boolean; default "false"; description "Enable/disable hot-standby dynamic bandwidth."; } } // container hotstandby container lsp-paths { must "not((count(lsp-path[path-type='ordinary'])>0) and (count(lsp-path[path-type='hot-standby'])>0))"; description "List of LSP path of a tunnel."; list lsp-path { must "((not(include-all-affinity-name) and not(include-any-affinity-name) and not(exclude-affinity-name)) or (include-any='0x0' and exclude-any='0x0'))"; key "path-type"; max-elements 4; description "Configure LSP path of a tunnel. Four roles are available."; leaf path-type { type te-tunnel-path-type; description "Path role of a tunnel. The available options are primary (used by primary LSP), hot-standby (used by hot-standby backup LSP), ordinary (used by ordinary backup LSP), and best-effort (used by best-effort LSP)."; } leaf explicit-path-name { when "not(../path-type='best-effort')"; type leafref { path "/te:te/te:explicit-paths/te:explicit-path/te:name"; } must "../path-type='primary' or ../path-type='ordinary' or (../path-type='hot-standby' and ../../../path-disjoint-calculate='false')"; description "Referenced explicit path by the tunnel. The name is case-insensitive."; } leaf hop-limit { type uint32 { range "1..32"; } default "32"; description "Hop limit on a TE LSP."; } leaf lsp-id { type uint32 { range "0..65535"; } config false; description "LSP ID of a tunnel path."; } leaf lsp-state { type mpls-te-lsp-status-type; config false; description "The state of LSP."; } leaf modify-lsp-id { type uint32 { range "0..65535"; } config false; description "Modified LSP ID of a tunnel path."; } leaf include-all { type pub-type:hex-binary; config false; description "Tunnel path management attribute: Include-all. The management attribute is a 32-bit vector. The management attribute of a selected link must contain the entire Include-all attribute field of the tunnel."; } 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 a 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 a LSP, the link cannot be a candidate LSP link."; } leaf-list include-any-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include any."; } leaf-list include-all-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include all."; } leaf-list exclude-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure tunnel path affinity attribute: Exclude."; } } // list lsp-path } // container lsp-paths container bypass { description "Configure bypass tunnel attribute."; leaf enable { type boolean; must "(../enable='true' and ../../record-route!='disable') or (../enable='false')"; default "false"; description "Enable/disable bypass tunnel capability. A bypass tunnel can be enabled to protect a tunnel that requests FRR protection. Special explanation: Constraint: A bypass tunnel cannot request FRR protection."; } leaf-list protection-interfaces { type leafref { path "/ni:network-instance/ni:instances/ni:instance/mpls:mpls/mpls:common/mpls:mpls-interfaces/mpls:mpls-interface/mpls:name"; } max-elements 24; description "Configure interface that can be protected by a bypass tunnel."; } } // container bypass container hotstandby-state { config false; description "Operational state of hot-standby informations."; leaf switch-result { type hotstandby-switch-result; description "Hot-standby switching result."; } leaf wtr-state { type boolean; description "Whether the hot-standby WTR timer is running."; } leaf wtr-remaining-time { type uint32 { range "0..2592000"; } description "Hot-standby WTR remaining time."; } leaf switch-state { type hotstandby-switch-state; description "Hot-switching status."; } leaf using-overlap { type overlap-type; description "Using HSB path overlapping."; } leaf switch-reason { type hotstandby-switch-reason; description "The reason of hot-stanby LSP switch."; } } // container hotstandby-state container lsps { config false; description "List of LSPs of a tunnel."; list lsp { key "ingress-lsr-id egress-lsr-id session-id lsp-id"; max-elements 4; description "Statistics of LSP of a tunnel."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf session-id { type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf lsp-id { type uint16 { range "0..65535"; } description "LSP ID."; } leaf tunnel-role { type te-tunnel-role; description "Specifies the types of the LSP nodes."; } leaf incoming-interface-name { type pub-type:if-name; description "LSP incoming interface name. The name is case-insensitive."; } leaf outgoing-interface-name { type pub-type:if-name; description "LSP outgoing interface name. The name is case-insensitive."; } leaf setup-priority { type uint8 { range "0..7"; } description "Setup priority of a LSP."; } leaf hold-priority { type uint8 { range "0..7"; } description "Hold priority of a LSP."; } leaf record-route { type record-route-mode; description "Route record mode."; } leaf dste-mode { type boolean; description "Whether DS-TE is used for LSP bandwidth constraints."; } leaf reserved-bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; description "Reserved bandwidth for non-DS-TE."; } leaf explicit-path-name { type string { length "1..128"; } description "Explicit path name of a LSP. The name is case-insensitive."; } leaf include-all { type pub-type:hex-binary; description "Specifies the Include-all (management group attribute) of a LSP."; } leaf include-any { type pub-type:hex-binary; description "Specifies the Include-any (management group attribute) of a LSP."; } leaf exclude-any { type pub-type:hex-binary; description "Specifies the Exclude-any (management group attribute) of a LSP."; } leaf local-protect-enable { type boolean; description "Specifies the enabling or disabling state of FRR for a LSP."; } leaf local-protect-inuse { type fast-reroute-inuse-state; description "Specifies the FRR protection state of this LSP."; } leaf bypass-tunnel-name { type string { length "1..256"; } description "Specifies the name of the bypass tunnel that protects the LSP. The name is case-insensitive."; } leaf permit-bandwidth-share { type boolean; description "Indicates whether the LSP permits bandwidth sharing."; } leaf lsp-mtu { type uint32 { range "0..32000000"; } description "Specifies a LSP MTU."; } leaf oper-status { type interface-status; description "Operation status of a LSP."; } leaf lsp-delegate { type delegate-type; description "The type of LSP delegation."; } leaf xcindex { type uint32 { range "0..4294967295"; } description "Cross-connect index."; } leaf entropy-label { type boolean; description "LSP Entropy Label Capability Negotiation Result."; } container ar-hops { description "List of actual path of a LSP."; list ar-hop { key "index"; description "Statistics of actual hop of a LSP."; leaf index { type uint32; description "Actual hop index."; } leaf incomming-type { type boolean; description "Whether the hop is an inbound interface."; } leaf ip-address { type inet:ipv4-address-no-zone; description "IP address of the actual hop."; } leaf label { type uint32; description "Label of the actual hop."; } leaf local-protect-inuse { type boolean; description "FRR protection state."; } leaf local-protect-type { type local-protect-type; description "FRR protection type."; } leaf bandwidth-protection { type boolean; description "FRR bandwidth protection."; } } // list ar-hop } // container ar-hops container c-hops { config false; description "List of path calculated by CSPF according to LSP constraints."; list c-hop { key "index path-index"; description "Statistics of path calculated by CSPF according to LSP constraints."; leaf index { type uint32; description "Hop index calculated by CSPF."; } leaf path-index { type uint32; description "Path index calculated by CSPF."; } leaf include { type boolean; description "Hop include or exclude."; } leaf hop-type { type hop-strict-type; description "Hop type calculated by CSPF. The available options are strict and loose."; } leaf address-type { type hop-address-type; description "Address type calculated by CSPF. The available options are IPv4 and IPv6."; } leaf ip-address { type inet:ipv4-address-no-zone; description "IP address calculated by CSPF."; } } // list c-hop } // container c-hops } // list lsp } // container lsps container auto-bandwidths { description "Configure auto bandwidth configuration of a tunnel."; leaf mode { type auto-bandwidth-type; default "none"; description "Auto bandwidth mode."; } leaf threshold-percent { when "../mode='adjustment'"; type uint8 { range "0..100"; } default "0"; description "Set the threshold of the adjustment bandwidth."; } leaf threshold-absolute { when "../mode='adjustment'"; type uint64 { range "0..4000000000"; } default "0"; description "Set the absolute minimum bandwidth of the adjustment bandwidth."; } leaf frequency { when "../mode!='none'"; type uint32 { range "300..604800"; } default "86400"; description "Set Frequency of Auto bandwidth."; } leaf max-bandwidth { when "../mode!='none'"; type uint64 { range "0..4000000000"; } default "4000000000"; description "Max Bandwidth."; } leaf min-bandwidth { when "../mode!='none'"; type uint64 { range "0..4000000000"; } default "0"; description "Min Bandwidth."; } leaf overflow-limit { when "../mode='adjustment'"; type uint16 { range "2..65535"; } description "Overflow Limit."; } leaf underflow-limit { when "../mode='adjustment'"; type uint16 { range "2..65535"; } description "Underflow Limit."; } leaf threshold-logic { when "../mode='adjustment'"; type threshold-logic-type; default "and"; description "Set thresholds to adjust the bandwidth of the threshold absolute value and percentage of the effective logic."; } } // container auto-bandwidths container bit-error-detection { must "((switch-threshold-coe-value and switch-threshold-pow-value and resume-threshold-coe-value and resume-threshold-pow-value) and (resume-threshold-pow-value>switch-threshold-pow-value or (switch-threshold-pow-value=resume-threshold-pow-value and not(resume-threshold-coe-value>switch-threshold-coe-value)))) or not(switch-threshold-coe-value or switch-threshold-pow-value or resume-threshold-coe-value or resume-threshold-pow-value)"; description "Configure bit error detection of LSP."; leaf bit-error-switch { type boolean; default "false"; description "Enable/disable bit error detection switch capability."; } leaf detection-mode { when "../bit-error-switch='true'"; type bit-error-switch-mode; default "bidirectional"; description "Specifies the switch mode. Include unidirectional switching and bidirectional switching."; } leaf switch-threshold-coe-value { type uint8 { range "1..9"; } description "Specifies the coefficient value of switch-threshold."; } leaf switch-threshold-pow-value { type uint8 { range "1..7"; } description "Specifies the power value of switch-threshold."; } leaf resume-threshold-coe-value { type uint8 { range "1..9"; } description "Specifies the coefficient value of resume-threshold."; } leaf resume-threshold-pow-value { type uint8 { range "1..7"; } description "Specifies the power value of resume-threshold."; } } // container bit-error-detection container reverse-lsp { must "../fast-reroute/enable = 'false' and ../ordinary-enable = 'false' and ../best-effort-enable = 'false' and ../split-tunnel='false'"; presence "Configure the reverse LSP function."; description "Configure reverse LSP of TE tunnel."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; mandatory true; description "LSP id of a backward tunnel path."; } leaf tunnel-id { type uint16 { range "1..65535"; } mandatory true; description "Session id of a backward tunnel."; } } // container reverse-lsp container tunnel-interface { config false; description "Statistics of TE tunnel interface."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Specifies ingress LSR ID of the tunnel."; } leaf tunnel-ftid { type uint32; description "Tunnel FTID."; } leaf state { type tunnel-state; description "Tunnel status."; } leaf state-description { type tunnel-state-description-type; description "Tunnel state description."; } leaf admin-status { type interface-status; description "Interface administrative status. The available options are Up and Down."; } leaf oper-status { type interface-status; description "Interface operation status. The available options are Up and Down."; } leaf active-lsp-type { type active-lsp-type; description "Type of LSP that is transmitting traffic."; } leaf working-lsp-id { type uint16 { range "0..65535"; } description "The working LSP ID of a Tunnel."; } leaf traffic-switch-action { type switch-action-type; description "Traffic switching action."; } leaf current-collect-bandwith { type uint32; description "Existing collected bandwidth in automatic bandwidth adjustment."; } leaf offload-enable { type boolean; description "Whether the offload is enabled."; } leaf offload-frequency { type uint32; description "Offload frequency."; } leaf offload-low-bandwith { type uint32; description "Offload lower bandwidth threshold."; } leaf offload-high-bandwith { type uint32; description "Offload higher bandwidth threshold."; } leaf offload-path-name { type string { length "1..63"; } description "UNI explicit path name."; } leaf readjust-bandwith { type uint32; description "UNI tunnel bandwidth."; } leaf excluded-ip { type inet:ipv4-address-no-zone; description "Excluded IP address."; } leaf referred-lsp-count { type uint32; description "Number of referenced LSPs."; } leaf oam-status { type oam-status-type; description "OAM status."; } leaf bfd-status { type bfd-status-type; description "BFD status."; } leaf backup-lsp-type { type tunnel-backup-lsp-type; description "CR-LSP backup type."; } leaf lsp-control-status { type lsp-control-status-type; description "LSP control status."; } leaf auto-bandwidth-remain-time { type uint32; description "Remaining time of automatic bandwidth adjustment."; } leaf reoptimization-remain-time { type uint32; description "Remaining time of automatic re-optimization."; } leaf associate-group-id { type uint32; description "Associated tunnel group ID."; } } // container tunnel-interface container tunnel-group { description "Configure the rsvp-te tunnel group."; leaf protection-tunnel-id { type uint16 { range "1..32768"; } must "../../../mpls-te:common-attributes/mpls-te:tunnel-id and ../../../mpls-te:common-attributes/mpls-te:tunnel-id!=../protection-tunnel-id"; must "../../reverse-lsp"; description "Name of a protection tunnel in a protection group. The name is case-insensitive."; } leaf revertive-mode { when "../protection-tunnel-id"; type revert-type; default "revertive"; description "Revertive mode."; } leaf wtr { when "../revertive-mode='revertive'"; type uint16 { range "0..60"; } units "min"; default "24"; description "Wtr value(30s)."; } leaf hold-off { when "../protection-tunnel-id"; type uint16 { range "0..100"; } units "100 ms"; default "0"; description "Delay period. The value ranges from 0 to 100. Steps is 100ms."; } leaf aps-state { type aps-state-type; config false; description "Aps state."; } leaf prot-tnl-name { type string { length "1..63"; } config false; description "Protection tunnel name."; } leaf aps-protocol { type aps-protocol-type; config false; description "Aps protocol."; } container paths { config false; description "List of Tunnel paths information."; list path { key "path-type"; description "Statistics of path."; leaf path-type { type path-type; description "The path type of static tunnel group."; } leaf traffic-state { type traffic-type; description "Traffic state."; } leaf tunnel-state { type defect-state-type; description "Tunnel state."; } leaf tnl-direction { type tunnel-direction; config false; description "Tunnel direction."; } leaf rvs-tnl-name { type string { length "0..63"; } config false; description "Reverse tunnel name."; } leaf forward-lsp-defect-state { type defect-state-type; config false; description "Forward LSP detection status."; } leaf reverse-lsp-defect-state { type defect-state-type; config false; description "Reverse LSP detection status."; } } // list path } // container paths container aps-info { config false; description "Statistics of tunnel aps information."; leaf local-work-path-state { type defect-state-type; description "Local APS work path status."; } leaf local-prot-path-state { type defect-state-type; description "Local APS protect path status."; } leaf local-channel-type { type aps-channel-type; description "Local APS channel type."; } leaf local-bridge-type { type aps-bridge-type; description "Local APS bridge type."; } leaf local-switch-type { type aps-switch-type; description "Local APS switching type."; } leaf local-aps-state { type aps-state; description "Local APS state."; } leaf local-bridge-result { type aps-path-type; description "Local APS bridge result."; } leaf local-request-result { type aps-path-type; description "Local APS request result."; } leaf local-revertive-mode { type tunnel-hotstandby-revert-mode; description "Local APS revertive mode."; } leaf hardware-resource-state { type aps-resource-state; description "APS resource status."; } leaf remote-channel-type { type aps-channel-type; description "Remote APS channel type."; } leaf remote-bridge-type { type aps-bridge-type; description "Remote APS bridge type."; } leaf remote-switch-type { type aps-switch-type; description "Remote APS switching type."; } leaf remote-aps-state { type aps-state; description "Remote APS state."; } leaf remote-bridge-result { type aps-path-type; description "Remote APS bridge result."; } leaf remote-request-result { type aps-path-type; description "Remote APS request result."; } leaf remote-revertive-mode { type tunnel-hotstandby-revert-mode; description "Remote APS revertive mode."; } leaf using-same-path { type aps-same-path-state; description "Whether the primary and protection tunnel path is same."; } } // container aps-info } // container tunnel-group container reverse-lsp-state-infos { config false; description "List of Tunnel reverse lsp information."; list reverse-lsp-state-info { key "reverse-lsp-id"; description "Statistics of tunnel reverse lsp information."; leaf reverse-lsp-id { type uint16; description "The LSP ID of the reverse tunnel."; } leaf reverse-tunnel-name { type string { length "1..256"; } description "The name of reverse tunnel."; } leaf in-label { type uint32 { range "0..1048575"; } description "Reverse LSP incomping label."; } leaf in-interface { type pub-type:if-name; description "Reverse LSP incoming interface name."; } leaf reverse-lsp-status { type lsp-status-type; description "Reverse LSP status."; } } // list reverse-lsp-state-info } // container reverse-lsp-state-infos } // container rsvp-te } // case p2p-rsvp-te case p2mp-te { description "The tunnel type is P2MP-TE."; container p2mp-te { when "../common-attributes/signal-protocol='rsvp-te'"; presence "Specifies a P2MP TE tunnel."; description "Enable/disable P2MP mode in a RSVP-TE tunnel."; leaf traffic-enable { type boolean; default "true"; description "Enable/disable traffic for a P2MP tunnel."; } leaf bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; must "../fast-reroute/bypass-attributes/frr-bandwidth and ../bandwidth>=../fast-reroute/bypass-attributes/frr-bandwidth or not(../fast-reroute/bypass-attributes/frr-bandwidth)"; default "0"; description "Specifies a tunnel bandwidth."; } leaf setup-priority { type uint8 { range "0..7"; } must "(not(../fast-reroute/bypass-attributes/setup-priority) or ../fast-reroute/bypass-attributes/setup-priority>=../setup-priority) and ../setup-priority>=../hold-priority"; default "7"; description "Specifies a tunnel setup priority. The smaller the value, the higher the setup priority. 0 is the highest priority."; } leaf hold-priority { type uint8 { range "0..7"; } must "(not(../fast-reroute/bypass-attributes/hold-priority) or ../fast-reroute/bypass-attributes/hold-priority>=../hold-priority) and ../setup-priority>=../hold-priority"; default "7"; description "Specifies a tunnel holding priority. The smaller the value, the higher the holding priority. 0 is the highest priority."; } leaf soft-preempt { type tunnel-soft-preempt-type; must "(../soft-preempt='enable' and ../reserve-style='se') or (../soft-preempt='disable' or ../soft-preempt='block')"; default "disable"; description "Enable/disable/block soft preempt."; } leaf disable-cspf { type boolean; default "false"; description "Enable/disable Cspf of a P2MP tunnel."; } leaf reserve-style { type resource-reservation-style; must "(../reserve-style='ff' and ../fast-reroute/enable='false' and ../reoptimization='false' and ../soft-preempt!='enable') or (../reserve-style='se')"; default "se"; description "Tunnel reservation styles."; } leaf record-route { type record-route-mode; default "disable"; description "Route record mode of a tunnel."; } leaf reoptimization { type boolean; default "false"; description "Enable/disable auto reoptimization enabling state of P2MP TE Tunnel."; } leaf reoptimization-frequency { type int32 { range "60..604800"; } units "s"; must "../reoptimization-frequency=3600 or ../reoptimization='true'"; default "3600"; description "Frequency of auto reoptimization."; } leaf tie-breaking { type p2p-tunnel-tie-breaking; default "default"; description "Routing rules for a tunnel with multiple equal-cost routes. Random: Select a link randomly. least fill: Select the link with smallest bandwidth usage. most fill: Select the link with biggest bandwidth usage. By default, routing rules are inherited from the global MPLS TE routing rules. If multiple paths meet certain limits, a path will be selected based on the preceding rules."; } leaf path-metric-type { type tunnel-path-metric-type; default "none"; description "Referenced metric type of one link for calculating path when creating TE tunnels. The available options are DEFAULT, IGP and TE, default is inheriting from global configuration."; } leaf leaf-list-name { type leafref { path "/mpls:mpls/mpls-te:te/mpls-te:p2mp-leaf-lists/mpls-te:p2mp-leaf-list/mpls-te:name"; } description "Specifies the leaf-list name."; } container fast-reroute { description "Configure fast reroute attribute of a P2MP tunnel."; leaf enable { type boolean; must "(../../record-route='record-label' and ../enable='true') or (../enable='false')"; default "false"; description "Enable/disable fast reroute capability."; } leaf bandwidth-protection-enable { when "../enable='true'"; type boolean; default "false"; description "Enable/disable the tunnel with fast reroute capability requests bandwidth protection."; } container bypass-attributes { when "../enable='true'"; description "Configure fast reroute attributes."; leaf frr-bandwidth { when "../../bandwidth-protection-enable='true'"; type uint32 { range "0..4000000000"; } units "kbit/s"; must "(../frr-bandwidth and ../../../bandwidth>=../frr-bandwidth) or not(../frr-bandwidth)"; description "FRR-protection bandwidth (kbits/s) requested by an active tunnel. The value cannot exceed the bandwidth of the active tunnel."; } leaf setup-priority { type uint32 { range "0..7"; } must "../setup-priority>=../../../setup-priority and ../setup-priority>=../hold-priority"; default "7"; description "Setup priority of FRR-protection tunnels. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The protection tunnel setup priority cannot exceed the setup priority of the active tunnel."; } leaf hold-priority { type uint32 { range "0..7"; } must "../hold-priority>=../../../hold-priority and ../setup-priority>=../hold-priority"; default "7"; description "Holding priority of FRR protection tunnels. The value 0 is the highest priority. Special explanation: Constraint: The protection tunnel holding priority cannot exceed the active tunnel holding priority."; } } // container bypass-attributes } // container fast-reroute container lsp-paths { description "List of LSP path of a P2MP tunnel."; list lsp-path { ext:generated-by "system" { description "The attributes of lsp-path are generated automatically when p2mp-te is created."; } must "not(include-any-affinity-name or include-all-affinity-name or exclude-affinity-name) or (include-any='0x0' and exclude-any='0x0')"; key "path-type"; max-elements 1; description "Configure LSP path of a P2MP tunnel. Only primary type is available."; leaf path-type { type te-tunnel-path-type; must "../path-type='primary'"; description "Path role of a P2MP tunnel."; } leaf hop-limit { type uint32 { range "1..32"; } default "32"; description "Hop limit on a P2MP TE LSP."; } leaf include-any { type pub-type:hex-binary; default "0x0"; description "Tunnel path management attribute of FRR protection tunnel: 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 of FRR protection tunnel: 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 include-all { type pub-type:hex-binary; config false; description "Tunnel path management attribute of FRR protection tunnel: Include-all. The management attribute is a 32-bit vector. The management attribute of a selected link must contain the entire Include-all attribute field of the tunnel."; } leaf-list include-any-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include any."; } leaf-list include-all-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include all."; } leaf-list exclude-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure tunnel path affinity attribute: exclude."; } } // list lsp-path } // container lsp-paths } // container p2mp-te } // case p2mp-te } // choice tunnel-mode container sr-te { when "../common-attributes/signal-protocol='segment-routing'"; description "Configure segment-routing TE tunnel information."; leaf bandwidth { type uint32 { range "0..4000000000"; } units "kbit/s"; default "0"; description "Specifies a tunnel bandwidth."; } leaf setup-priority { type uint8 { range "0..7"; } must "(../setup-priority>=../hold-priority) or (../setup-priority='7' and not(../hold-priority))"; default "7"; description "Specifies a tunnel setup priority. The smaller the value, the higher the setup priority. 0 is the highest priority. Special explanation: Constraint: The setup priority of a tunnel must be equal to or smaller than its holding priority."; } leaf hold-priority { type uint8 { range "0..7"; } must "(../setup-priority>=../hold-priority) or not(../setup-priority)"; default "7"; description "Specifies a tunnel holding priority. The smaller the value, the higher the holding priority. 0 is the highest priority. Special explanation: Constraint: The holding priority of a tunnel must be equal to or larger than its setup priority."; } leaf pce-delegate { type delegate-type; default "no"; description "Specifies the enabling state of PCE delegation capability."; } leaf split-tunnel { type boolean; default "false"; description "Enable/disable an SR-TE tunnel as a split tunnel."; } leaf binding-sid { type uint32 { range "16..1048575"; } description "Working binding SID of a Tunnel."; } leaf reverse-binding-sid { type uint32 { range "16..1048575"; } must "../split-tunnel='false'"; description "The working reverse binding SID of a LSP."; } leaf path-verification { type path-verify-type; default "inherit"; description "SR-TE Tunnel path verify."; } leaf adjacency-sid { type boolean; default "false"; description "Enable/disable SR-TE tunnel CSPF path select label type adjacency."; } leaf tunnel-weight { type uint8 { range "1..100"; } description "Specifies load-balance weight of the sr-te tunnel."; } container reoptimization { presence "Indicates reoptimization a node is configured."; description "Enable/disable auto reoptimization of TE Tunnel."; leaf frequency { type uint32 { range "60..604800"; } units "s"; default "3600"; description "Frequency of auto reoptimization."; } } // container reoptimization container hotstandby { presence "Indicates hotstandby-enable a node is configured."; description "Enable/disable hot standby for protecting TE tunnels. When an active LSP is set up successfully, a standby LSP that meets certain limits will be set up to protect the active LSP. When the active LSP fails, the traffic on the active LSP will be switched to the standby LSP."; leaf revertive-mode { type tunnel-hotstandby-revert-mode; default "revertive"; description "Hot-standby revertive."; } leaf wtr-time { when "../revertive-mode='revertive'"; type uint32 { range "0..2592000"; } units "s"; default "10"; description "Time of waiting recovering back to primary LSP. Its range is 0~2592000, default is 10. When hot-standby backup is in use, after primary LSP restores, the traffic will switch to primary LSP after waiting some time instead of switching to primary LSP immediately. This is to avoid frequent switching between primary LSP and backup LSP caused by network flapping."; } leaf path-overlap { type boolean; default "false"; description "Enable/disable hot-standby LSP overlap capability. If there is no other path to choose, the hot-standby LSP can overlap the primary LSP."; } } // container hotstandby container lsp-paths { description "List of path configuration of a SR-TE tunnel."; list lsp-path { must "((not(include-all-affinity-name) and not(include-any-affinity-name) and not(exclude-affinity-name)) or (include-any='0x0' and exclude-any='0x0'))"; key "type"; max-elements 2; description "Configure LSP path of a SR-TE tunnel. Two roles are available."; leaf type { type sr-te-tunnel-path-type; must "../type='primary' or ../../../hotstandby"; description "Path role of a tunnel. The available options are primary (used by primary LSP), hot-standby (used by hot-standby backup LSP)."; } leaf explicit-path-name { type leafref { path "/te:te/te:explicit-paths/te:explicit-path/te:name"; } description "Referenced explicit path by the tunnel. The name is case-insensitive."; } leaf hop-limit { type uint32 { range "1..32"; } default "32"; description "Hop limit on a SR-MPLS TE LSP. If the default value (32) is used in the hop-limit, both adjacency and node SIDs can be used for local SR-MPLS TE path calculation. If a non-default value (1-31) is used in the hop-limit, only adjacency SIDs can be used for local SR-MPLS TE path computation."; } leaf lsp-state { type mpls-te-lsp-status-type; config false; description "The state of LSP."; } leaf lsp-id { type uint32 { range "0..65535"; } config false; description "LSP ID of a tunnel path."; } leaf modify-lsp-id { type uint32 { range "0..65535"; } config false; description "Modified LSP ID of a tunnel path."; } leaf include-all { type pub-type:hex-binary; config false; description "Tunnel path management attribute: Include-all. The management attribute is a 32-bit vector. The management attribute of a selected link must contain the entire Include-all attribute field of the tunnel."; } 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 a 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 a LSP, the link cannot be a candidate LSP link."; } leaf-list include-all-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include all."; } leaf-list include-any-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure affinity name that can be refer to a tunnel to include any."; } leaf-list exclude-affinity-name { type leafref { path "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping/te:attribute-name"; } must "/te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence>=0 and /te:te/te:affinity-define/te:affinity-mappings/te:affinity-mapping[te:attribute-name=current()]/te:bit-sequence<=31"; max-elements 32; description "Configure tunnel path affinity attribute: Exclude."; } } // list lsp-path } // container lsp-paths container hotstandby-state { config false; description "Statistics of hot-standby informations."; leaf switch-result { type hotstandby-switch-result; description "Hot-standby switching result."; } leaf wtr-state { type boolean; description "Whether the hot-standby WTR timer is running."; } leaf wtr-remaining-time { type uint32 { range "0..2592000"; } description "Hot-standby WTR remaining time."; } leaf switch-state { type hotstandby-switch-state; description "Hot-standby switching status."; } leaf using-overlap { type overlap-type; description "Whether the primary and HSB LSPs overlap."; } leaf switch-reason { type hotstandby-switch-reason; description "The reason of hot-stanby LSP switch."; } } // container hotstandby-state container tunnel-interface { config false; description "Statistics of SR-TE tunnel interface."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Specifies ingress LSR ID of the tunnel."; } leaf tunnel-ftid { type uint32; description "Tunnel forwarding ID."; } leaf state { type tunnel-state; description "Tunnel Status."; } leaf state-description { type tunnel-state-description-type; description "Tunnel status description."; } leaf active-lsp { type active-lsp-type; description "Active LSP."; } leaf working-lsp-id { type uint16 { range "0..65535"; } description "The working LSP ID of a Tunnel."; } leaf traffic-switch-action { type switch-action-type; description "Traffic switching action."; } leaf current-collect-bandwith { type uint32; description "Existing collected bandwidth in automatic bandwidth adjustment."; } leaf offload-enable { type boolean; description "Whether the offload is enabled."; } leaf offload-frequency { type uint32; description "Offload frequency."; } leaf offload-low-bandwith { type uint32; description "Offload lower bandwidth threshold."; } leaf offload-high-bandwith { type uint32; description "Offload higher bandwidth threshold."; } leaf offload-path-name { type string { length "1..63"; } description "UNI explicit path name."; } leaf readjust-bandwith { type uint32; description "UNI tunnel bandwidth."; } leaf excluded-ip { type inet:ipv4-address-no-zone; description "Excluded IP address."; } leaf referred-lsp-count { type uint32; description "Number of referenced LSPs."; } leaf oam-status { type oam-status-type; description "OAM status."; } leaf bfd-status { type bfd-status-type; description "BFD status."; } leaf backup-lsp-type { type tunnel-backup-lsp-type; description "CR-LSP backup type."; } leaf lsp-control-status { type lsp-control-status-type; description "LSP control status."; } leaf auto-bandwidth-remain-time { type uint32; description "Remaining time of automatic bandwidth adjustment."; } leaf reoptimization-remain-time { type uint32; description "Remaining time of automatic re-optimization."; } leaf associate-group-id { type uint32; description "Associated tunnel group ID."; } leaf admin-status { type interface-status; description "Interface administrative status. The available options are Up and Down."; } leaf oper-status { type interface-status; description "Interface operation status. The available options are Up and Down."; } } // container tunnel-interface container lsps { config false; description "List of LSPs for SR-TE Tunnel."; list lsp { key "ingress-lsr-id egress-lsr-id session-id lsp-id"; max-elements 4; description "Statistics of LSP for SR-TE Tunnel."; leaf ingress-lsr-id { type inet:ipv4-address-no-zone; description "Ingress LSR ID."; } leaf egress-lsr-id { type inet:ipv4-address-no-zone; description "Egress LSR ID."; } leaf session-id { type uint16 { range "0..65535"; } description "Tunnel ID."; } leaf lsp-id { type uint16 { range "0..65535"; } description "LSP ID."; } leaf lsp-delegate { type delegate-type; description "The type of LSP delegation."; } leaf oper-status { type interface-status; description "Operation status of an LSP."; } leaf xcindex { type uint32 { range "0..4294967295"; } description "Cross-connect index."; } container c-hops { description "List of path calculated by PCE according to LSP constraints."; list c-hop { key "index"; description "Statistics of path calculated by PCE according to LSP constraints."; leaf index { type uint32; description "Hop index calculated by PCE."; } leaf type { type hop-strict-type; description "Hop type calculated by PCE or CSPF. The available options are strict and loose."; } leaf label-type { type sr-te-label-type; description "Label type."; } leaf label { type uint32; description "HOP label calculated by PCE."; } leaf nai { type string { length "1..63"; } description "Node or adjacency identifier."; } } // list c-hop } // container c-hops } // list lsp } // container lsps } // container sr-te container tunnel-last-errors { config false; description "List of tunnel last error information."; list tunnel-last-error { key "lsp-id"; max-elements 10; description "Statistics of tunnel last error information."; leaf lsp-id { type uint16; description "LSP ID."; } leaf lsp-type { type lsp-path-type; description "LSP type."; } leaf error-node { type inet:ipv4-address-no-zone; description "Error node."; } leaf error-lsr-id { type inet:ipv4-address-no-zone; description "Eroor lsr id."; } leaf occur-time { type string { length "1..23"; } description "Occur time."; } leaf error-code { type uint16; description "Error code."; } leaf error-sub-code { type uint16; description "Error sub code."; } leaf error-value { type uint16; description "Error value."; } leaf error-info { type string { length "1..255"; } description "Last error information."; } leaf down-reason { type string { length "1..255"; } description "Reason of LSP down."; } } // list tunnel-last-error } // container tunnel-last-errors } // container te-tunnel } // case mpls-te } augment /mpls:mpls/mpls:common/mpls:session-car { description "MPLS TE Session CAR Configuration information augment to module MPLS."; container rsvp-te { must "cir<=pir"; must "cbs<=pbs"; description "Configure RSVP-TE Session CAR."; leaf enable { type boolean; default "true"; description "Enable/disable RSVP-TE Session CAR."; } leaf cir { type uint32 { range "1..1000000"; } units "kbit/s"; default "75"; description "Specify the Session CAR CIR value."; } leaf cbs { type uint32 { range "1..9000000"; } units "Byte"; default "15000"; description "Specify the Session CAR CBS value."; } leaf pir { type uint32 { range "1..1000000"; } units "kbit/s"; default "4000"; description "Specify the Session CAR PIR value."; } leaf pbs { type uint32 { range "1..9000000"; } units "Byte"; default "9000000"; description "Specify the Session CAR PBS value."; } } // container rsvp-te container self-ping { must "cir<=pir"; must "cbs<=pbs"; description "Configure SELF-PING Session CAR."; leaf enable { type boolean; default "true"; description "Enable/disable SELF-PING Session CAR."; } leaf cir { type uint32 { range "1..1000000"; } units "kbit/s"; default "256"; description "Specify the Session CAR CIR value."; } leaf cbs { type uint32 { range "1..9000000"; } units "Byte"; default "50000"; description "Specify the Session CAR CBS value."; } leaf pir { type uint32 { range "1..1000000"; } units "kbit/s"; default "600"; description "Specify the Session CAR PIR value."; } leaf pbs { type uint32 { range "1..9000000"; } units "Byte"; default "76800"; description "Specify the Session CAR PBS value."; } } // container self-ping } } // module huawei-mpls-te
© 2023 YumaWorks, Inc. All rights reserved.