Load balancing.
Version: 2021-05-26
module huawei-loadbalance { yang-version 1; namespace "urn:huawei:yang:huawei-loadbalance"; prefix loadbalance; import huawei-ifm { prefix ifm; } import huawei-pub-type { prefix pub-type; } import huawei-extension { prefix ext; } import huawei-devm { prefix devm; } import huawei-devm-vnf { prefix devm-vnf; } 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 "Load balancing."; revision "2021-05-26" { description "Add hash-arithmetic-trunk-enhance node."; reference "Huawei private."; } revision "2019-04-01" { description "Initial revision."; reference "Huawei private."; } ext:task-name "forwarding"; typedef trunk-ecmp { type enumeration { enum "invalid" { value 0; description "Invalid value."; } enum "ecmp" { value 4; description "IIP module load balancing."; } enum "ecmp1" { value 1; description "IIP module one-level load balancing."; } enum "ecmp2" { value 2; description "IIP module two-level load balancing."; } enum "trunk" { value 3; description "Trunk mode."; } enum "ip" { value 5; description "IP mode."; } enum "mac" { value 6; description "MAC mode."; } enum "vll" { value 7; description "VLL mode."; } } description "Load balancing trunk ecmp."; } typedef hash-material { type enumeration { enum "invalid" { value 0; description "Invalid value."; } enum "l2" { value 1; description "L2 (Hash based on the source MAC address and destination MAC address. If the source IP address and destination IP address of the uplink traffic on the interface board remain unchanged but the MAC address changes, L2 is recommended as the hash factor.)."; } enum "l3" { value 2; description "L3 (Hash based on the source IP address and destination IP address. If the source IP address and destination IP address of the uplink traffic on the interface board are evenly distributed, L3 is recommended as the hash factor.)."; } enum "l4" { value 3; description "L4 (Hash based on the source IP address, destination IP address, source port number, destination port number, and protocol number. If the source IP address and destination IP address of the uplink traffic on the interface board are not evenly distributed, L4 is recommended as the hash factor.)."; } } description "Load balancing hash material."; } typedef cx-hash-arithmetic { type enumeration { enum "arithmetic1" { value 1; description "Arithmetic 1."; } enum "arithmetic2" { value 2; description "Arithmetic 2."; } enum "arithmetic3" { value 3; description "Arithmetic 3."; } enum "arithmetic4" { value 4; description "Arithmetic 4."; } enum "arithmetic5" { value 5; description "Arithmetic 5."; } enum "random" { value 6; description "Random algorithm."; } } description "CX load balancing arithmetic."; } typedef cx-trunk-ecmp { type enumeration { enum "ip" { value 5; description "IP mode."; } enum "mac" { value 6; description "MAC mode."; } enum "vll" { value 7; description "VLL mode."; } enum "tunnel-info" { value 8; description "Tunnel information."; } enum "tunnel-inner-ip" { value 9; description "Tunnel inner IP information."; } enum "gtp" { value 10; description "GTP tunnel."; } enum "fec" { value 11; description "FEC mode."; } enum "gtp-inner-ip" { value 12; description "GTP tunnel inner IP information."; } } description "CX load balancing trunk ecmp."; } typedef cx-hash-material { type enumeration { enum "l2" { value 1; description "L2 (Hash based on the source MAC address and destination MAC address. If the source IP address and destination IP address of the uplink traffic on the interface board remain unchanged but the MAC address changes, L2 is recommended as the hash factor.)."; } enum "l3" { value 2; description "L3 (Hash based on the source IP address and destination IP address. If the source IP address and destination IP address of the uplink traffic on the interface board are evenly distributed, L3 is recommended as the hash factor.)."; } enum "l4" { value 3; description "L4 (Hash based on the source IP address, destination IP address, source port number, destination port number, and protocol number. If the source IP address and destination IP address of the uplink traffic on the interface board are not evenly distributed, L4 is recommended as the hash factor.)."; } enum "undo-disable" { value 4; description "Enable the tunnel information function for the hash factor when an IP tunnel's fragmented packets are balanced."; } enum "disable" { value 5; description "Disable the tunnel information function for the hash factor when an IP tunnel's fragmented packets are balanced."; } enum "label-ip" { value 6; description "Label-IP."; } enum "label" { value 7; description "Pw-label in VLL."; } } description "CX load balancing hash material."; } typedef cx-mulpe-flag { type enumeration { enum "enable" { value 0; description "Enable multi-path load balancing."; } enum "disable" { value 255; description "Disable multi-path load balancing."; } } description "CX load balancing multi-path."; } typedef hash-ip-type { type enumeration { enum "destination-ip" { value 4; description "Use destination IP addresses as hash key."; } enum "source-ip" { value 5; description "Use source IP addresses as hash key."; } } description "Hash key type."; } typedef cfg-type { type enumeration { enum "all" { value 0; description "Query load balancing hash information on all boards."; } enum "slot" { value 1; description "Query load balancing hash information on a board."; } } description "Query mode."; } container loadbalance { description "Load balancing configuration."; container global-attribute { description "Configure global attribute."; leaf ucmp-enable { type boolean; default "false"; description "Enable/disable UCMP globally."; } leaf mpls-ucmp-enable { type boolean; default "false"; description "Enable/disable MPLS UCMP."; } leaf vxlan-l2vni-enable { type boolean; default "false"; description "Enable/disable L2VXLAN VNI-based load balancing."; } leaf vxlan-l3vni-enable { type boolean; default "false"; description "Enable/disable L3VXLAN VNI-based load balancing."; } leaf vxlan-l2deep-hash-enable { type boolean; default "false"; description "Enable/disable L2VXLAN DEEP HASH load balancing."; } leaf trunk-multicast-enable { type boolean; default "false"; description "Enable/disable trunk multicast load balancing."; } leaf mpls-te-convergence-enable { type boolean; default "false"; status obsolete; description "Enable/disable MPLS TE convergence separate."; } leaf mpls-loadblc-wtr { type uint32 { range "0|5..60"; } units "s"; default "0"; description "Configures the delay time for MPLS equal-cost multiple path (ECMP) switchback."; } leaf tunnel-info-gtp-enable { type boolean; default "true"; description "Enable/disable GTP deep hash load balancing."; } container hash-arithmetic-trunk-enhance { presence "Enable hash arithmetic trunk enhance"; description "Enable/disable load balance hash-arithmetic trunk-enhance."; } // container hash-arithmetic-trunk-enhance } // container global-attribute container hash-key-ip { description "Configure a device to use source or destination IP addresses as hash key to balance all incoming IP packets on a specific or all interface boards."; leaf ip-type { type hash-ip-type; description "Set IP hash type."; } } // container hash-key-ip container hash-key-ip-slots { description "List of configurations that enable a device to use source or destination IP addresses as hash key to balance all incoming IP packets on a specific or all interface boards."; list hash-key-ip-slot { key "slot-id"; description "Configure a device to use source or destination IP addresses as hash key to balance all incoming IP packets on a specific or all interface boards."; leaf slot-id { type string { length "1..32"; } description "Slot ID of an interface board. The value range varies according to router hardware. NULL is for all slot."; } leaf ip-type { type hash-ip-type; mandatory true; description "Set IP hash type."; } } // list hash-key-ip-slot } // container hash-key-ip-slots container hash-instructions { config false; description "List of load balancing hash information on a specified board or on all boards."; list hash-instruction { key "slot-id query-type"; config false; description "Statistics of load balancing hash information on a specified board or on all boards."; leaf slot-id { type string { length "0..32"; } config false; description "Slot ID of an interface board. The value range varies according to router hardware."; } leaf query-type { type cfg-type; config false; description "Query mode of load balancing hash information."; } container infos { config false; description "Statistics of load balancing hash-related configurations."; leaf info { type string { length "1..127"; } config false; status deprecated; description "Load balancing hash information. To check load balancing information, querying the load-balancing configuration node is recommended."; } } // container infos leaf tunnel-gtp-enable { type boolean; config false; description "This node displays whether tunnel information is used as a hash factor during hash calculation for GTP tunnel load balancing."; } } // list hash-instruction } // container hash-instructions container ecmp-stateful { must "maximum>minimum or not(maximum) or not(minimum)"; presence "Configure ECMP stateful load balancing."; description "Configure ECMP stateful load balancing."; leaf minimum { type uint32 { range "1..63"; } default "1"; description "Minimum interface number."; } leaf maximum { type uint32 { range "2..64"; } default "64"; description "Maximum interface number."; } leaf accuracy { type uint32 { range "1..4"; } default "1"; description "Accuracy of ECMP load balancing."; } } // container ecmp-stateful container mpls-hashpacket { description "Configure load balance based on packet."; list hashpacket { ext:generated-by "system" { description "The all instances are generated automatically."; } ext:operation-exclude "create" { description "The all instances cannot be created."; } key "slotid"; description "Configure load balance based on packet."; leaf slotid { type string { length "1..32"; } description "Slot ID."; } leaf hash-type { ext:support-filter "true"; type hash-type; default "flow"; description "Load balance mode."; } } // list hashpacket } // container mpls-hashpacket container mpls-intfmtu { description "Configure interface MTU check mode."; list intfmtu { ext:generated-by "system" { description "The all instances are generated automatically."; } ext:operation-exclude "create" { description "The all instances cannot be created."; } key "slotid"; description "Configure interface MTU check mode."; leaf slotid { type string { length "1..32"; } description "Slot ID."; } leaf chkmode { ext:support-filter "true"; type check-mode; mandatory true; description "Check mode configuration."; } } // list intfmtu } // container mpls-intfmtu container mpls-hashpacket { description "Configure load balance based on packet."; leaf hash-type { type hash-type; default "flow"; description "Load balance mode."; } } // container mpls-hashpacket container mpls-intfmtu { description "Configure interface MTU check mode."; leaf chkmode { type check-mode; default "ip"; description "Check mode configuration."; } } // container mpls-intfmtu container mpls-loadblc-elawords { description "Configure MPLS entropy label load balance control word enable."; leaf elawords-enable { type enable-flag; default "disable"; description "MPLS entropy label load balance control word enable value."; } } // container mpls-loadblc-elawords container p2mp-load-balance-num { description "Configure P2MP trunk load balance."; leaf number { type uint32 { range "2..64"; } default "16"; description "P2MP trunk load balance number."; } } // container p2mp-load-balance-num } // container loadbalance } // module huawei-loadbalance
© 2023 YumaWorks, Inc. All rights reserved.