Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Dell PowerEdge FN I/O Module Command Line Reference Guide 9.10(0.0)

PDF

hash-algorithm

Changes the hash algorithm used to distribute traffic flows across a Port Channel.

Syntax hash-algorithm { algorithm-number | {ecmp {crc16 | crc16cc | crc32MSB | crc32LSB | crc-upper | dest-ip | lsb | xor1 | xor2 | xor4 | xor8 | xor16} [number] lag {checksum | crc | xor} [ number] nh-ecmp {checksum | crc | xor}[ number] linecard number ip-sa-mask value ip-da-mask value | seed seed-value } 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] | [seed value]

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.

To remove the hash algorithm on a particular stack-unit / line-card, use the no hash-algorithm linecard number command.

Parameters
algorithm-number Enter the algorithm number. The range is from 0 to 47.
ecmp { crc16 | crc16cc | crc32MSB | crc32LSB | crc-upper | dest-ip | lsb | xor1 | xor2 | xor4 | xor8 | xor16} TeraScale and ExaScale Only: 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
  • 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
lag hash algorithm value Enter the keyword lag then the LAG hash algorithm value. The range is from 0 to 47.
nh-ecmp hash algorithm value (OPTIONAL) Enter the keyword nh-ecmp then the ECMP hash algorithm value.
linecard number (OPTIONAL) Enter the keyword linecard then the linecard slot number.
ip-sa-mask value (OPTIONAL) Enter the keywords ip-sa-mask then the ECMP/LAG hash mask value. The range is from 0 to FF. The default is FF.
ip-da-mask value (OPTIONAL) Enter the keywords ip-da-mask then the ECMP/LAG hash mask value. The range is from 0 to FF. The default is FF.
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 0 for hash-algorithm value on TeraScale and ExaScale IPSA and IPDA mask value is FF for a line card.
Command Modes CONFIGURATION
Supported Modes Full–Switch
Command History
Version Description
9.9(0.0) Introduced on the FN IOM. Added flow-based-hashing support for hashing on ECMP.
9.2(0.0) Introduced on the MXL 10/40GbE Switch IO Module.
Usage Information To ensure that CRC is not used for LAG, set the default hash-algorithm method on ExaScale systems. For example, hash-algorithm ecmp xor lag checksum nh-ecmp checksum.

To achieve the functionality of hash-align on the ExaScale platform, do not use CRC as a hash-algorithm method.

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

The line card option is applicable with the lag-hash-align microcode only (refer to CAM Profile Commands). Any other microcode returns an error message as follows:
  • Dell(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, the Dell Networking OS maintains bi-directionality with masks set to XX 00 for line card 1 and 00 XX for line card 2 ( ip-sa-mask and ip-da-mask). The mask value must be the same for both line cards when using multiple line cards as ingress (where XX is any value from 00 to FF for both line cards). 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.

On TeraScale, if you do not enter the keyword ECMP or LAG, the Dell Networking OS assumes it to be common for both. If the keyword ECMP or LAG is entered separately, both should fall in the range of 0 to 23 or 24 to 47 since compression enable/disable is common for bothTeraScale and ExaScale support the range 0-47. The default for ExaScale is 24.


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: <>()\