e1000: fix VLAN 0
VLAN 0 essentially means "Treat as untagged, but with priority bits", and is used by some ISPs. On igb/em interfaces we did not receive packets with VLAN tag 0 unless vlanhwfilter was disabled. This can be fixed by explicitly listing VLAN 0 in the hardware VLAN filter (VFTA). Do this from em_setup_vlan_hw_support(), where we already (re-)write the VFTA. Reviewed by: kbowling Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D40046
This commit is contained in:
parent
27e74c8fff
commit
0229fab2fe
@ -3681,8 +3681,10 @@ em_setup_vlan_hw_support(if_ctx_t ctx)
|
||||
/*
|
||||
* A soft reset zero's out the VFTA, so
|
||||
* we need to repopulate it now.
|
||||
* We also insert VLAN 0 in the filter list, so we pass VLAN 0 tagged
|
||||
* traffic through. This will write the entire table.
|
||||
*/
|
||||
em_if_vlan_filter_write(sc);
|
||||
em_if_vlan_register(ctx, 0);
|
||||
|
||||
/* Enable the Filter Table */
|
||||
em_if_vlan_filter_enable(sc);
|
||||
|
Loading…
Reference in New Issue
Block a user