Dell Command Line Reference Guide for the S4048–ON System 9.14.2.8

PDF

hash-algorithm

Changes the hash algorithm used to distribute traffic flows across a Port Channel and ECMP. The ECMP and LAG options are supported on the S-Series and Z-Series.

Syntax
hash-algorithm {ecmp {crc16 | crc16cc | crc32MSB | crc32LSB | crc-upper | dest-ip | flow-based-hashing {crc16|crc16cc|crc32MSB|crc32LSB|xor1|xor2|xor4|xor8|xor16}|lsb | xor1 | xor2 | xor4 | xor8 | xor16}[[hg {crc16 | crc16cc | crc32MSB | crc32LSB | xor1 | xor2 | xor4 | xor8 | xor16}]| [lag {crc16 | crc16cc | crc32MSB | crc32LSB | xor1 | xor2 | xor4 | xor8 | xor16 }][stack-unit|linecard number | port-set number] | [hg—seed value] | [seedvalue]

To return to the default hash algorithm, use the no hash-algorithm command.

To return to the default ECMP hash algorithm, use the no hash-algorithm ecmp algorithm-value command.

Parameters
ecmp crc16 | crc16cc | crc32MSB | crc32LSB | crc-upper | dest-ip | flow-based-hashing | crc16|crc16cc|crc32MSB|crc32LSB|xor1 | xor2 | xor4 | xor8 | xor16}|lsb | xor1 | xor2 | xor4 | xor8 | xor16
Enter the keyword ecmp then one of the following options:
  • crc16: Use CRC16_BISYNC — 16 bit CRC16-bisync polynomial (default)
  • crc16cc: Use CRC16_CCITT — 16 bit CRC16 using CRC16-CCITT polynomial
  • crc32MSB: Use CRC32_UPPER — MSB 16 bits of computed CRC32
  • crc32LSB: Use CRC32_LOWER — LSB 16 bits of computed CRC32
  • crc-upper: Uses the upper 32 bits of the key for the hash computation
  • dest-ip: Uses the destination IP for ECMP hashing
  • flow-based-hashing: Enter the keywords flow-based-hashing followed by the algorithm

    crc16 |crc16cc |crc32MSB |crc32LSB |xor1 |xor2 |xor4 |xor8 | xor16

  • lsb: Returns the LSB of the key as the hash
  • xor1: Use CRC16_BISYNC_AND_XOR1 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor1
  • xor2: Use CRC16_BISYNC_AND_XOR2 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor2
  • xor4: Use CRC16_BISYNC_AND_XOR4 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor4
  • xor8: Use CRC16_BISYNC_AND_XOR8 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor8
  • xor16: Use CR16 — 16 bit XOR
hg {crc16 | crc16cc | crc32MSB | crc32LSB | xor1 | xor2 | xor4 | xor8 | xor16}
Enter the keyword hg then one of the following options available in the stack-unit and linecard provisioned devices:
  • crc16: Use CRC16_BISYNC — 16 bit CRC16-bisync polynomial (default)
  • crc16cc: Use CRC16_CCITT — 16 bit CRC16 using CRC16-CCITT polynomial
  • crc32MSB: Use CRC32_UPPER — MSB 16 bits of computed CRC32
  • crc32LSB: Use CRC32_LOWER — LSB 16 bits of computed CRC32
  • xor1: Use CRC16_BISYNC_AND_XOR1 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor1
  • xor2: Use CRC16_BISYNC_AND_XOR2 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor2
  • xor4: Use CRC16_BISYNC_AND_XOR4 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor4
  • xor8: Use CRC16_BISYNC_AND_XOR8 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor8
  • xor16: Use CR16 — 16 bit XOR
lag {crc16 | crc16cc | crc32MSB | crc32LSB | xor1 | xor2 | xor4 | xor8 | xor16}
Enter the keyword hg then one of the following options available in the stack-unit and linecard provisioned devices::
  • crc16: Use CRC16_BISYNC — 16 bit CRC16-bisync polynomial (default)
  • crc16cc: Use CRC16_CCITT — 16 bit CRC16 using CRC16-CCITT polynomial
  • crc32MSB: Use CRC32_UPPER — MSB 16 bits of computed CRC32
  • crc32LSB: Use CRC32_LOWER — LSB 16 bits of computed CRC32
  • xor1: Use CRC16_BISYNC_AND_XOR1 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor1
  • xor2: Use CRC16_BISYNC_AND_XOR2 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor2
  • xor4: Use CRC16_BISYNC_AND_XOR4 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor4
  • xor8: Use CRC16_BISYNC_AND_XOR8 — Upper 8 bits of CRC16-BISYNC and lower 8 bits of xor8
  • xor16: Use CR16 — 16 bit XOR
hg-seed seed-value
(This option is available in stack-unit and linecard provisioned devices): Enter the keywords hg-seed then the hash algorithm seed value. The range is from 0 to 2147483646.
stack-unit number

(OPTIONAL) : Enter the keyword stack-unit then the stack-unit slot number.

linecard number

(OPTIONAL) : Enter the keyword linecard then the linecard slot number.

port-set number

(OPTIONAL) Enter the keyword port-set then the port-set slot number.

Defaults
IPSA and IPDA mask value is FF for the stack-unit.
Command Modes
CONFIGURATION
Command History

This guide is platform-specific. For command information about other platforms, see the relevant Dell EMC Networking OS Command Line Reference Guide.

Version
Description
9.10(0.1)
Introduced on the S6010-ON and S4048T-ON.
9.10(0.0)
Introduced on the S3148.
9.10(0.0)
Introduced on the S6100-ON.
9.9(0.0)
Added flow-based-hashing support for hashing on ECMP for S4820T, S6000, S4048 and Z9500.
9.8(2.0)
Introduced on the S3100 series.
9.8(1.0)
Introduced on the Z9100–ON.
9.8(0.0P5)
Introduced on the S4048-ON.
9.8(0.0P2)
Introduced on the S3048-ON.
9.7(0.0)
Introduced on the S6000-ON.
9.2(1.0)
Introduced on the Z9500.
9.0.2.0
Introduced on the S6000.
8.3.19.0
Introduced on the S4820T.
8.3.11.1
Introduced on the Z9000.
8.3.10.0
Introduced on the S4810.
8.1.1.0
Introduced on the E-Series.
7.8.1.0
Added the nh-ecmp option.
7.7.1.1
Added the nh-ecmp option.
Usage Information
To ensure that CRC is not used for LAG, set the default hash-algorithm method on E-Series systems. For example,hash-algorithm ecmp xor lag checksum nh-ecmp checksum.

The hash value calculated with the hash-algorithm command is unique to the entire unit. The hash algorithm command with the stack-unit option changes the hash for a particular stack-unit by applying the mask specified in the IPSA and IPDA fields.

The stack-unit option is applicable with the lag-hash-align microcode only. Any other microcode returns an error message as follows:
  • DellEMC(conf)#hash-algorithm linecard 5 ip-sa-mask ff ip-da-mask ff
  • % Error: This command is not supported in the current microcode configuration
In addition, the linecard number ip-sa-mask value ip-da-mask value option has the following behavior to maintain bi-directionality:
  • When hashing is done on both IPSA and IPDA, the ip-sa-mask and ip-da-mask values must be equal. (Single Linecard).
  • When hashing is done only on IPSA or IPDA, Dell EMC Networking OS maintains bi-directionality with masks set to XX 00 for stack-unit 1 and 00 XX for stack-unit 2 (ip-sa-mask and ip-da-mask). The mask value must be the same for both stack-units when using multiple stack-units as ingress (where XX is any value from 00 to FF for both stack-units). For example, assume that traffic is flowing between linecard 1 and linecard 2:
  • hash-algorithm linecard 1 ip-sa-mask aa ip-da-mask 00
  • hash-algorithm linecard 2 ip-sa-mask 00 ip-da-mask aa

The different hash algorithms are based on the number of Port Channel members and packet values. The default hash algorithm (number 0) yields the most balanced results in various test scenarios, but if the default algorithm does not provide a satisfactory distribution of traffic, use the hash-algorithm command to designate another algorithm.

When a Port Channel member leaves or is added to the Port Channel, the hash algorithm is recalculated to balance traffic across the members.


Rate this content

Accurate
Useful
Easy to understand
Was this article helpful?
0/3000 characters
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please select whether the article was helpful or not.
  Comments cannot contain these special characters: <>()\