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
|
* A soft reset zero's out the VFTA, so
|
||||||
* we need to repopulate it now.
|
* 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 */
|
/* Enable the Filter Table */
|
||||||
em_if_vlan_filter_enable(sc);
|
em_if_vlan_filter_enable(sc);
|
||||||
|
Loading…
Reference in New Issue
Block a user