...
Under certain networking conditions and environments, the default algorithm may default to using a single interface.Examples:When the source MAC address is the same (aka when using a router), the MAC will always be the same and the port that is used for transmissions will always be the same.Also, under special circumstances, different MACs may also result in the same value. For example, if MACs always end in an even number (0,2,4,6,8,A,C, or E) and there are two ports in the LACP trunk or bond, calculation of the hash will direct traffic through the same port every time as well.LACP trunks or bonds are showing traffic is not balanced, using a single interface instead of all interfaces evenly.This can be confirmed on the customer network (by the customer), or by looking at the graphical network display in Unisphere under SYSTEM > Performance. NOTE: This can also be seen in 'netstat -i' output in the service shell.
LACP on the Unity uses layer2 as its default hash policy.The calculation algorithm is as follows: layer2 Uses XOR of hardware MAC addresses and packet type ID field to generate the hash. The formula is hash = source MAC XOR destination MAC XOR packet type ID child number = hash modulo child count. This algorithm places all traffic to a particular network peer on the same child. This algorithm is 802.3ad compliant.
For Unity OE Code 4.3 and above:You may change the xmit_hash_policy with the svc_network_bond command.Dell EMC Unity™ Family Version 4.3: Service Commands Technical Notes - page 74.Usage: svc_network_bond [-h|--help] -d {-s -o -v } {-g [-o ]} The syntax would be similar to the below example: service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2 The acceptable values for xmit_hash_policy are: 0 or layer2 Default settingThis parameter uses the XOR of hardware MAC addresses to generate the hash.1 or layer3+4 Uses upper layer protocol information (when available) to generate the hash.This allows for traffic to a particular network peer to span multiple slaves, although a single connection will not span multiple slaves.2 or layer2+3 Uses a combination of layer2 and layer3 protocol information to generate the hash. For Unity OE Code 4.2.3.9670635 and older:Contact Dell Customer Service and reference this KBA number.For Unity OE Code 5.3.x or higherMaking the change does not require the service shell and no reboot is required.Here is an example setting the Unity Array in our lab's xmit_has_policy.This Unity Array is configured with an LACP trunk known as bond22.SSH in to the Unity array using the service account.First, check what its xmit_hash_policy is set to # svc_network_bond --get --device bond22 -o xmit_hash_policy INFO: Selected device: bond22 INFO: Option to show: xmit_hash_policy INFO: Execution code: 0 xmit_hash_policy=0 Next, set the xmit_hash_policy to 2 # svc_network_bond --set --device bond22 -o xmit_hash_policy -v 2 INFO: Selected device: bond22 INFO: Option to modify: xmit_hash_policy INFO: Requested value: 2 WARNING: Do you want to proceed? [yes/no]: yes INFO: Execution code: 0 INFO: Option 'xmit_hash_policy' has been successfully changed. Check, if xmit_hash_policy was configure to 2 # svc_network_bond --get --device bond22 -o xmit_hash_policy INFO: Selected device: bond22 INFO: Option to show: xmit_hash_policy INFO: Execution code: 0 xmit_hash_policy=2 #