Skip to content

Commit f57c79c

Browse files
authored
Generic Hashing Algorithm HLD update, add IPV6_FLOW_LABEL attribute as hash field (#1905)
* Generic Hashing Algorithm HLD update, add IPV6_FLOW_LABEL attirbute as hash field * Adding new vendor SAI configuration capability.
1 parent 52a292a commit f57c79c

File tree

1 file changed

+26
-12
lines changed

1 file changed

+26
-12
lines changed

doc/hash/hash-design.md

+26-12
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@
4747

4848
## Revision
4949

50-
| Rev | Date | Author | Description |
51-
|:---:|:----------:|:--------------:|:--------------------------------|
52-
| 0.1 | 12/09/2022 | Nazarii Hnydyn | Initial version |
53-
| 0.2 | 05/12/2022 | Nazarii Hnydyn | Capabilities validation |
54-
| 0.3 | 25/09/2023 | Nazarii Hnydyn | Hashing algorithm configuration |
50+
| Rev | Date | Author | Description |
51+
|:---:|:----------:|:--------------:|:------------------------------------------------|
52+
| 0.1 | 12/09/2022 | Nazarii Hnydyn | Initial version |
53+
| 0.2 | 05/12/2022 | Nazarii Hnydyn | Capabilities validation |
54+
| 0.3 | 25/09/2023 | Nazarii Hnydyn | Hashing algorithm configuration |
55+
| 0.4 | 23/01/2025 | Andriy Yurkiv | Add 'IPv6 flow label' field for hashing packets |
5556

5657
## About this manual
5758

@@ -223,6 +224,7 @@ i.e. configuration is tunnel-agnostic
223224
| SAI_NATIVE_HASH_FIELD_INNER_SRC_IP | |
224225
| SAI_NATIVE_HASH_FIELD_INNER_L4_DST_PORT | |
225226
| SAI_NATIVE_HASH_FIELD_INNER_L4_SRC_PORT | |
227+
| SAI_NATIVE_HASH_FIELD_IPV6_FLOW_LABEL | |
226228

227229
**SAI hash algorithms which shall be used for GH:**
228230

@@ -360,6 +362,7 @@ hash-field = "IN_PORT"
360362
/ "INNER_SRC_IP"
361363
/ "INNER_L4_DST_PORT"
362364
/ "INNER_L4_SRC_PORT"
365+
/ "IPV6_FLOW_LABEL"
363366
hash-field-list = hash-field [ 1*( "," hash-field ) ]
364367
hash-algorithm = "CRC"
365368
/ "XOR"
@@ -408,6 +411,7 @@ hash-field = ""
408411
/ "INNER_SRC_IP"
409412
/ "INNER_L4_DST_PORT"
410413
/ "INNER_L4_SRC_PORT"
414+
/ "IPV6_FLOW_LABEL"
411415
hash-field-list = hash-field [ 1*( "," hash-field ) ]
412416
hash-algorithm = ""
413417
/ "N/A"
@@ -427,10 +431,10 @@ hash-algorithm = ""
427431
redis-cli -n 4 HGETALL 'SWITCH_HASH|GLOBAL'
428432
1) "ecmp_hash@"
429433
2) "DST_MAC,SRC_MAC,ETHERTYPE,IP_PROTOCOL,DST_IP,SRC_IP,L4_DST_PORT,L4_SRC_PORT, \
430-
INNER_DST_MAC,INNER_SRC_MAC,INNER_ETHERTYPE,INNER_IP_PROTOCOL,INNER_DST_IP,INNER_SRC_IP,INNER_L4_DST_PORT,INNER_L4_SRC_PORT"
434+
INNER_DST_MAC,INNER_SRC_MAC,INNER_ETHERTYPE,INNER_IP_PROTOCOL,INNER_DST_IP,INNER_SRC_IP,INNER_L4_DST_PORT,INNER_L4_SRC_PORT,IPV6_FLOW_LABEL"
431435
3) "lag_hash@"
432436
4) "DST_MAC,SRC_MAC,ETHERTYPE,IP_PROTOCOL,DST_IP,SRC_IP,L4_DST_PORT,L4_SRC_PORT, \
433-
INNER_DST_MAC,INNER_SRC_MAC,INNER_ETHERTYPE,INNER_IP_PROTOCOL,INNER_DST_IP,INNER_SRC_IP,INNER_L4_DST_PORT,INNER_L4_SRC_PORT"
437+
INNER_DST_MAC,INNER_SRC_MAC,INNER_ETHERTYPE,INNER_IP_PROTOCOL,INNER_DST_IP,INNER_SRC_IP,INNER_L4_DST_PORT,INNER_L4_SRC_PORT,IPV6_FLOW_LABEL"
434438
5) "ecmp_hash_algorithm"
435439
6) "CRC"
436440
7) "lag_hash_algorithm"
@@ -447,7 +451,7 @@ redis-cli -n 6 HGETALL 'SWITCH_CAPABILITY|switch'
447451
5) "HASH|NATIVE_HASH_FIELD_LIST"
448452
6) "IN_PORT,DST_MAC,SRC_MAC,ETHERTYPE,VLAN_ID,IP_PROTOCOL,DST_IP,SRC_IP,L4_DST_PORT,L4_SRC_PORT, \
449453
INNER_DST_MAC,INNER_SRC_MAC,INNER_ETHERTYPE,INNER_IP_PROTOCOL,INNER_DST_IP,INNER_SRC_IP, \
450-
INNER_L4_DST_PORT,INNER_L4_SRC_PORT"
454+
INNER_L4_DST_PORT,INNER_L4_SRC_PORT,IPV6_FLOW_LABEL"
451455
7) "ECMP_HASH_ALGORITHM_CAPABLE"
452456
8) "true"
453457
9) "LAG_HASH_ALGORITHM_CAPABLE"
@@ -481,7 +485,8 @@ INNER_L4_DST_PORT,INNER_L4_SRC_PORT"
481485
"INNER_DST_IP",
482486
"INNER_SRC_IP",
483487
"INNER_L4_DST_PORT",
484-
"INNER_L4_SRC_PORT"
488+
"INNER_L4_SRC_PORT",
489+
"IPV6_FLOW_LABEL"
485490
],
486491
"lag_hash": [
487492
"DST_MAC",
@@ -499,7 +504,8 @@ INNER_L4_DST_PORT,INNER_L4_SRC_PORT"
499504
"INNER_DST_IP",
500505
"INNER_SRC_IP",
501506
"INNER_L4_DST_PORT",
502-
"INNER_L4_SRC_PORT"
507+
"INNER_L4_SRC_PORT",
508+
"IPV6_FLOW_LABEL"
503509
],
504510
"ecmp_hash_algorithm": "CRC",
505511
"lag_hash_algorithm": "CRC"
@@ -580,7 +586,8 @@ config switch-hash global ecmp-hash \
580586
'INNER_DST_IP' \
581587
'INNER_SRC_IP' \
582588
'INNER_L4_DST_PORT' \
583-
'INNER_L4_SRC_PORT'
589+
'INNER_L4_SRC_PORT' \
590+
'IPV6_FLOW_LABEL'
584591
config switch-hash global lag-hash \
585592
'DST_MAC' \
586593
'SRC_MAC' \
@@ -597,7 +604,8 @@ config switch-hash global lag-hash \
597604
'INNER_DST_IP' \
598605
'INNER_SRC_IP' \
599606
'INNER_L4_DST_PORT' \
600-
'INNER_L4_SRC_PORT'
607+
'INNER_L4_SRC_PORT' \
608+
'IPV6_FLOW_LABEL'
601609
```
602610

603611
**The following command updates switch hash algorithm global:**
@@ -633,6 +641,7 @@ root@sonic:/home/admin# show switch-hash global
633641
| | | INNER_SRC_IP | | |
634642
| | | INNER_L4_DST_PORT | | |
635643
| | | INNER_L4_SRC_PORT | | |
644+
| | | IPV6_FLOW_LABEL | | |
636645
| | +-------------------+-------------+ |
637646
+--------+-------------------------------------+
638647
| LAG | +-------------------+-------------+ |
@@ -654,6 +663,7 @@ root@sonic:/home/admin# show switch-hash global
654663
| | | INNER_SRC_IP | | |
655664
| | | INNER_L4_DST_PORT | | |
656665
| | | INNER_L4_SRC_PORT | | |
666+
| | | IPV6_FLOW_LABEL | | |
657667
| | +-------------------+-------------+ |
658668
+--------+-------------------------------------+
659669
```
@@ -685,6 +695,7 @@ root@sonic:/home/admin# show switch-hash capabilities
685695
| | | INNER_SRC_IP | | |
686696
| | | INNER_L4_DST_PORT | | |
687697
| | | INNER_L4_SRC_PORT | | |
698+
| | | IPV6_FLOW_LABEL | | |
688699
| | +-------------------+-------------+ |
689700
+--------+-------------------------------------+
690701
| LAG | +-------------------+-------------+ |
@@ -708,6 +719,7 @@ root@sonic:/home/admin# show switch-hash capabilities
708719
| | | INNER_SRC_IP | | |
709720
| | | INNER_L4_DST_PORT | | |
710721
| | | INNER_L4_SRC_PORT | | |
722+
| | | IPV6_FLOW_LABEL | | |
711723
| | +-------------------+-------------+ |
712724
+--------+-------------------------------------+
713725
```
@@ -744,6 +756,7 @@ will be extended with a new common type.
744756
enum INNER_SRC_IPV6;
745757
enum INNER_L4_DST_PORT;
746758
enum INNER_L4_SRC_PORT;
759+
enum IPV6_FLOW_LABEL;
747760
}
748761
}
749762
@@ -804,6 +817,7 @@ module sonic-hash {
804817
enum INNER_SRC_IP;
805818
enum INNER_L4_DST_PORT;
806819
enum INNER_L4_SRC_PORT;
820+
enum IPV6_FLOW_LABEL;
807821
}
808822
}
809823

0 commit comments

Comments
 (0)