enhanced-hash-key
List of Syntax
Syntax (EX Series)Syntax (QFX5000 Line of Switches)Syntax (QFX10000 Series Switches)Syntax (EX Series)
enhanced-hash-key {
ecmp-resilient-hash;
layer2-header;
layer2-payload;
}
no-ipv4-destination-address;
no-ipv4-source-address;
no-l4-destination-port;
no-l4-source-port;
no-protocol;
vlan-id;
}
no-ipv6-destination-address;
no-ipv6-source-address;
no-l4-destination-port;
no-l4-source-port;
no-next-header;
vlan-id;
}
layer2 {
no-destination-mac-address;
no-ether-type;
no-source-mac-address;
vlan-id;
}
}
Syntax (QFX5000 Line of Switches)
enhanced-hash-key {
offset1 {
base-offset1 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
matchdata1 matchdata1;
matchdata1-mask matchdata1-mask;
offset1-value offset1-value;
}
offset2 {
base-offset2 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
matchdata2 matchdata2;
matchdata2-mask matchdata2-mask;
offset2-value offset2-value;
}
offset3 {
base-offset3 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
matchdata3 matchdata3;
matchdata3-mask matchdata3-mask;
offset3-value offset3-value;
}
offset4 {
base-offset4 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
matchdata4 matchdata4;
matchdata4-mask matchdata4-mask;
offset4-value offset4-value;
}
}
ecmp-dlb {
assigned-flow;
per-packet;
flowlet inactivity-interval;
}
ecmp-resilient-hash;
ethtype {
inet {
conditional-match conditional-match;
hash-offset {
offset1 {
base-offset1 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
offset1-mask offset1-mask;
offset1-value offset1-value;
offset2 {
base-offset2 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
offset2-mask offset2-mask;
offset2-value offset2-value;
}
}
}
interface interface;
}
inet6 {
conditional-match conditional-match;
hash-offset {
offset1 {
base-offset1 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
offset1-mask offset1-mask;
offset1-value offset1-value;
offset2 {
base-offset2 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
offset2-mask offset2-mask;
offset2-value offset2-value;
}
}
}
interface interface;
}
mpls {
conditional-match conditional-match;
hash-offset {
offset1 {
base-offset1 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
offset1-mask offset1-mask;
offset1-value offset1-value;
offset2 {
base-offset2 (start-of-L2Header | start-of-L3-InnerHeader
| start-of-L3-OuterHeader | start-of-L4-Header);
offset2-mask offset2-mask;
offset2-value offset2-value;
}
}
}
interface interface;
num-labels num-labels;
}
}
}
layer2-header;
layer2-payload;
}
ecmp {
function {
(crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo);
}
offset offset;
preprocess;
}
lag {
function {
(crc16-bisync | crc16-ccitt | crc32-hi | crc32-lo);
}
offset offset;
preprocess;
}
}
no-incoming-port;
no-ipv4-destination-address;
no-ipv4-source-address;
no-l4-destination-port;
no-l4-source-port;
no-protocol;
vlan-id;
}
no-incoming-port;
no-ipv6-destination-address;
no-ipv6-source-address;
no-l4-destination-port;
no-l4-source-port;
no-next-header;
vlan-id;
}
layer2 {
no-destination-mac-address;
no-ether-type;
no-source-mac-address;
vlan-id;
}
symmetric-hash {
inet;
inet6;
}
}
Syntax (QFX10000 Series Switches)
enhanced-hash-key {
no-ipv4-destination-address;
no-ipv4-source-address;
no-l4-destination-port;
no-l4-source-port;
no-incoming-port;
}
ipv6-flow-label;
no-ipv6-destination-address;
no-ipv6-source-address;
no-l4-destination-port;
no-l4-source-port;
no-incoming-port;
}
destination-mac-address
inner-vlan-id;
no-ether-type;
no-vlan-id;
source-mac-address;
}
no-mpls;
vxlan-vnid
}
}
Hierarchy Level
[edit forwarding-options]
Release Information
Statement introduced in Junos OS Release
13.2X51-D15.
The fabric-load-balance statement introduced in Junos
OS Release 14.1X53-D10.
The fabric-load-balance statement deprecated starting
in Junos OS Releases 14.1X53-D46, 15.1R7, 16.1R6, 17.1R3, 17.2R2,
17.3R2, and 17.4R1.
The hash-seed statement introduced in Junos OS Release
15.1X53-D30.
The ecmp-dlb statement introduced in Junos OS Release
19.4R1 for QFX5120-32C and QFX5120-48Y switches.
Option symmetric-hash introduced in Junos OS Release
20.4R1.
Description
Configure the hashing key used to hash link aggregation
group (LAG) and equal-cost multipath (ECMP) traffic, or enable adaptive
load balancing (ALB) in a Virtual Chassis Fabric (VCF).
NoteStarting in Junos OS Release 14.1X53-D46, 15.1R7, 16.1R6,
17.1R3, 17.2R2, 17.3R2, and 17.4R1, the ALB feature is deprecated.
If fabric-load-balance is enabled in the configuration
for a VCF, delete the configuration item upon upgrading Junos OS.
The hashing algorithm is used to make traffic-forwarding decisions
for traffic entering a LAG bundle or for traffic exiting a switch
when ECMP is enabled.
For LAG bundles, the hashing algorithm determines how traffic
entering a LAG bundle is placed onto the bundle’s member links.
The hashing algorithm tries to manage bandwidth by evenly load-balancing
all incoming traffic across the member links in the bundle.
When ECMP is enabled, the hashing algorithm determines how incoming
traffic is forwarded to the next-hop device.
On QFX10000 Series switches, you can configure the hash seed
for load balancing. By default, the QFX10000 Series switches use the
system MAC address to generate a hash seed value. You can configure
the hash seed value using the hash-seed statement at the [edit forwarding-options enhanced-hash-key] hierarchy level. Set a value between 0 and 4294967295. If you do
not configure a hash seed value, the system generates a hash seed
value based on the system MAC address.
The remaining statements are explained separately. See CLI Explorer.
Starting in Junos OS Release 18.4R1, symmetric hashing is supported
on the QFX10000 Series switches. You configure the no-incoming-port option under the [edit forwarding-options enhanced-hash-key] hierarchy.
By default, Dynamic IP (DIP), SIP, Layer 4 source and destination
ports, and the incoming port are used for hashing. You can only configure
symmetric hashing at the global level.
Starting in Junos OS Release 19.4R1, the dynamic load balancing
on ECMP is supported on QFX5120-32C and QFX5120-48Y switches. You
can configure the ecmp-dlb option under the [edit forwarding-options
enhanced-hash-key] hierarchy. Refer Dynamic Load Balancing for more details.
To enable symmetric hashing on the QFX5000 line of switches,
configure the symmetric-hash option.
Required Privilege Level
interface—To view this statement in the
configuration.
interface-control—To add this statement to the configuration.