Knowledge Search


×
 

[EX] Hash-Table collision occurs even with lookup-length increased to 8

  [KB33365] Show Article Properties


Summary:

Hash-table collision failure occurs when hash buckets are full. Any mac that hash to an already full bucket causes collision. The existing work-around is to increase the mac-lookup length to 8 or 12. However, when increasing the lookup length to 8, which scans two consecutive buckets (4 entries each), and when the consecutive buckets are also full, hash-table collision is still observed.

Symptoms:

Even though the ethernet-switching table capacity is not reached, continuous add/delete is seen happening for the mac:

Mon Sep 24 11:38:19 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:38:19 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:38:21 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:38:21 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:38:23 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Cause:

Consider 4 MACs which hash to the same hash bucket index:

00:00:00:33:69:70
00:00:00:33:89:4c
00:00:00:33:b1:43
00:00:00:33:c1:5d

The four MACs are learned in the ethernet-switching-table and PFE:

root@bng-5konadev> show ethernet-switching table
Ethernet-switching table: 6 entries, 4 learned, 0 persistent entries
  VLAN              MAC address       Type         Age Interfaces
  vlan22            2c:21:72:8f:50:c1 Static         - Router
  vlan100           *                 Flood          - All-members
  vlan100           00:00:00:33:69:70 Learn          0 ge-0/0/21.0           
  vlan100           00:00:00:33:89:4c Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:b1:43 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:c1:5d Learn          0 ge-0/0/21.0
  
FDB table for VlanIdx: 6, VlanTag: 100, HwToken: 100
 Legend: SP - Storm Prevention, V - Valid, s - Skip,
         R - Refresh, S - Static, Vl - VlanId, Vx - Vidx
 Dev Core HwTkn UCast-Mac/MCast-G;S   Dest    SP|V|s|R|S Cmd Rt Mir SId Dev QoS Sec Idx/Offset
 --- ---- ----- --------------------- ------- ---------- --- -- --- --- --- --- --- ----------
   0    0   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    1   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    2   100 00:00:00:33:69:70        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    3   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    0   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    1   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    2   100 00:00:00:33:89:4C        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    3   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    0   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    1   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    2   100 00:00:00:33:B1:43        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    3   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    0   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    1   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    2   100 00:00:00:33:C1:5D        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    3   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2


All of these four macs are hashed to the same bucket 0x0000.
We tried to add a fifth MAC 00:00:00:22:45:ed which also hash to same bucket (0x0000). 
We see that the fifth MAC 00:00:00:22:45:ed is continuously added / deleted from the logs:

Mon Sep 24 11:38:19 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:38:19 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:38:21 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:38:21 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:38:23 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:38:23 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:38:25 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:38:25 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0


Increase the lookup length to 8:

master:0}[edit]
root@bng-5konadev# set ethernet-switching-options mac-lookup-length 8

{master:0}[edit]
root@bng-5konadev# commit
configuration check succeeds
commit complete


The mac entry 00:00:00:22:45:ed was added:

[master:0][edit]
root@bng-5konadev# run show ethernet-switching table
Ethernet-switching table: 7 entries, 5 learned, 0 persistent entries
  VLAN              MAC address       Type         Age Interfaces
  vlan22            2c:21:72:8f:50:c1 Static         - Router
  vlan100           *                 Flood          - All-members
  vlan100           00:00:00:22:45:ed Learn          0 ge-0/0/21.0 <-- 5th mac
  vlan100           00:00:00:33:69:70 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:89:4c Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:b1:43 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:c1:5d Learn          0 ge-0/0/21.0
  
[master:0][edit]
% cprod -A fpc0 -c "show shim bridge fdb"
FDB table for VlanIdx: 6, VlanTag: 100, HwToken: 100
 Legend: SP - Storm Prevention, V - Valid, s - Skip,
         R - Refresh, S - Static, Vl - VlanId, Vx - Vidx
 Dev Core HwTkn UCast-Mac/MCast-G;S   Dest    SP|V|s|R|S Cmd Rt Mir SId Dev QoS Sec Idx/Offset
 --- ---- ----- --------------------- ------- ---------- --- -- --- --- --- --- --- ----------
   0    0   100 00:00:00:22:45:ED        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    1   100 00:00:00:22:45:ED        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    2   100 00:00:00:22:45:ED        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    3   100 00:00:00:22:45:ED        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0 <--Was added in the subsequent bucket
   0    0   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    1   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    2   100 00:00:00:33:69:70        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    3   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    0   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    1   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    2   100 00:00:00:33:89:4C        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    3   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    0   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    1   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    2   100 00:00:00:33:B1:43        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    3   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    0   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    1   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    2   100 00:00:00:33:C1:5D        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    3   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   

Same test when the subsequent buckets are full.
Clearing ethernet-switching-table:

[master:0][edit]
root@bng-5konadev# run show ethernet-switching table
Ethernet-switching table: 2 entries, 0 learned, 0 persistent entries
  VLAN              MAC address       Type         Age Interfaces
  vlan22            2c:21:72:8f:50:c1 Static         - Router
  vlan100           *                 Flood          - All-members

[master:0][edit]
root@bng-5konadev# run show configuration ethernet-switching-options
inactive: traceoptions {
    file eswd.log size 10m;
    flag all;
}
mac-lookup-length 8;
mac-table-aging-time 60;


Sent streams with 8 MAC address, which will fill up 0x0000 and 0x0004 buckets:

[master:0][edit]
root@bng-5konadev# run show ethernet-switching table
Ethernet-switching table: 10 entries, 8 learned, 0 persistent entries
  VLAN              MAC address       Type         Age Interfaces
  vlan22            2c:21:72:8f:50:c1 Static         - Router
  vlan100           *                 Flood          - All-members
  vlan100           00:00:00:33:3e:28 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:69:70 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:76:39 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:89:4c Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:96:05 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:ae:0a Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:b1:43 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:c1:5d Learn          0 ge-0/0/21.0
  
[master:0][edit]
FDB table for VlanIdx: 6, VlanTag: 100, HwToken: 100
 Legend: SP - Storm Prevention, V - Valid, s - Skip,
         R - Refresh, S - Static, Vl - VlanId, Vx - Vidx
 Dev Core HwTkn UCast-Mac/MCast-G;S   Dest    SP|V|s|R|S Cmd Rt Mir SId Dev QoS Sec Idx/Offset
 --- ---- ----- --------------------- ------- ---------- --- -- --- --- --- --- --- ----------
   0    0   100 00:00:00:33:3E:28        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    1   100 00:00:00:33:3E:28        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    2   100 00:00:00:33:3E:28        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    3   100 00:00:00:33:3E:28        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    0   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    1   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    2   100 00:00:00:33:69:70        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    3   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    0   100 00:00:00:33:76:39        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    1   100 00:00:00:33:76:39        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    2   100 00:00:00:33:76:39        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    3   100 00:00:00:33:76:39        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    0   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    1   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    2   100 00:00:00:33:89:4C        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    3   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    0   100 00:00:00:33:96:05        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    1   100 00:00:00:33:96:05        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    2   100 00:00:00:33:96:05        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    3   100 00:00:00:33:96:05        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    0   100 00:00:00:33:AE:0A        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    1   100 00:00:00:33:AE:0A        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    2   100 00:00:00:33:AE:0A        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    3   100 00:00:00:33:AE:0A        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    0   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    1   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    2   100 00:00:00:33:B1:43        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    3   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    0   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    1   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    2   100 00:00:00:33:C1:5D        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    3   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   
Attempted to add a ninth MAC 00:00:00:22:45:ed which also hash to same bucket (0x0004). 

We see that the fifth MAC 00:00:00:22:45:ed is continuously added / deleted from the logs:

[master:0][edit]
root@bng-5konadev# run show ethernet-switching mac-learning-log
Mon Sep 24 11:53:08 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:53:08 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:53:10 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:53:10 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:53:12 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:53:12 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:53:14 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:53:14 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0
Mon Sep 24 11:53:16 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was learned on ge-0/0/21.0
Mon Sep 24 11:53:16 2018  vlan_name vlan100 mac 00:00:00:22:45:ed was deleted on ge-0/0/21.0

MAC 00:00:00:22:45:ed can't be added, as the adjacent buckets are full.
Attempted to increase mac lookup length to 12:

[master:0][edit]
root@bng-5konadev# set ethernet-switching-options mac-lookup-length 12

[master:0][edit]
root@bng-5konadev# commit
configuration check succeeds
commit complete


Mac addition for 00:00:00:22:45:ed is successful:

root@bng-5konadev# run show ethernet-switching table
Ethernet-switching table: 11 entries, 9 learned, 0 persistent entries
  VLAN              MAC address       Type         Age Interfaces
  vlan22            2c:21:72:8f:50:c1 Static         - Router
  vlan100           *                 Flood          - All-members
  vlan100           00:00:00:22:45:ed Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:3e:28 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:69:70 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:76:39 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:89:4c Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:96:05 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:ae:0a Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:b1:43 Learn          0 ge-0/0/21.0
  vlan100           00:00:00:33:c1:5d Learn          0 ge-0/0/21.0

[master:0][edit]
root@bng-5konadev#

FDB table for VlanIdx: 6, VlanTag: 100, HwToken: 100
 Legend: SP - Storm Prevention, V - Valid, s - Skip,
         R - Refresh, S - Static, Vl - VlanId, Vx - Vidx
 Dev Core HwTkn UCast-Mac/MCast-G;S   Dest    SP|V|s|R|S Cmd Rt Mir SId Dev QoS Sec Idx/Offset
 --- ---- ----- --------------------- ------- ---------- --- -- --- --- --- --- --- ----------
   0    0   100 00:00:00:22:45:ED        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0008/0x0 <-- New bucket
   0    1   100 00:00:00:22:45:ED        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0008/0x0
   0    2   100 00:00:00:22:45:ED        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0008/0x0
   0    3   100 00:00:00:22:45:ED        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0008/0x0
   0    0   100 00:00:00:33:3E:28        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    1   100 00:00:00:33:3E:28        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    2   100 00:00:00:33:3E:28        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    3   100 00:00:00:33:3E:28        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x1
   0    0   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    1   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    2   100 00:00:00:33:69:70        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    3   100 00:00:00:33:69:70        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x3
   0    0   100 00:00:00:33:76:39        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    1   100 00:00:00:33:76:39        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    2   100 00:00:00:33:76:39        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    3   100 00:00:00:33:76:39        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x0
   0    0   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    1   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    2   100 00:00:00:33:89:4C        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    3   100 00:00:00:33:89:4C        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x0
   0    0   100 00:00:00:33:96:05        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    1   100 00:00:00:33:96:05        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    2   100 00:00:00:33:96:05        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    3   100 00:00:00:33:96:05        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x2
   0    0   100 00:00:00:33:AE:0A        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    1   100 00:00:00:33:AE:0A        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    2   100 00:00:00:33:AE:0A        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    3   100 00:00:00:33:AE:0A        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0004/0x3
   0    0   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    1   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    2   100 00:00:00:33:B1:43        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    3   100 00:00:00:33:B1:43        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x1
   0    0   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    1   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    2   100 00:00:00:33:C1:5D        0/37  F|1|0|1|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
   0    3   100 00:00:00:33:C1:5D        0/37  F|1|0|0|0 0|0  0   0   0   0 0|0 0|0 0x0000/0x2
Solution:
  • It is possible that even when the mac lookup length was increased to 8, and the buckets are full, it would result in MAC not being able to get added. 

  • In the above test, we did not see hash collision prints in PFE, but there is a collision occurring.

  • Increasing the mac lookup length to 8 does not guarantee non-collisions. 

  • The reason  we see this specific issue is because the major part of the mac address is the same 00:00:00:33. Hence, when the hashing is done, the macs are getting hashed to the same bucket.

  • This issue will not be seen if the macs are different.

  • This is as per Marvel design.

Related Links: