diff options
| author | suresh kumar <[email protected]> | 2022-04-16 11:14:10 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2022-04-17 12:34:01 +0000 |
| commit | 49aefd131739df552f83c566d0665744c30b1d70 (patch) | |
| tree | e5311b9a57f1d0de6bd0e8933d27c24a6bd9ed56 /tools/perf/util/c++/clang.cpp | |
| parent | net: lan966x: Make sure to release ptp interrupt (diff) | |
| download | kernel-49aefd131739df552f83c566d0665744c30b1d70.tar.gz kernel-49aefd131739df552f83c566d0665744c30b1d70.zip | |
bonding: do not discard lowest hash bit for non layer3+4 hashing
Commit b5f862180d70 was introduced to discard lowest hash bit for layer3+4 hashing
but it also removes last bit from non layer3+4 hashing
Below script shows layer2+3 hashing will result in same slave to be used with above commit.
$ cat hash.py
#/usr/bin/python3.6
h_dests=[0xa0, 0xa1]
h_source=0xe3
hproto=0x8
saddr=0x1e7aa8c0
daddr=0x17aa8c0
for h_dest in h_dests:
hash = (h_dest ^ h_source ^ hproto ^ saddr ^ daddr)
hash ^= hash >> 16
hash ^= hash >> 8
print(hash)
print("with last bit removed")
for h_dest in h_dests:
hash = (h_dest ^ h_source ^ hproto ^ saddr ^ daddr)
hash ^= hash >> 16
hash ^= hash >> 8
hash = hash >> 1
print(hash)
Output:
$ python3.6 hash.py
522133332
522133333 <-------------- will result in both slaves being used
with last bit removed
261066666
261066666 <-------------- only single slave used
Signed-off-by: suresh kumar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/util/c++/clang.cpp')
0 files changed, 0 insertions, 0 deletions
