Fix ixgbe(4) support for ifconfig's vlanhwtag flag. Disabling this flag

will now prevent the driver from stripping vlan tags from packets.

PR:		219390
Submitted by:	Piotr Pietruszewski <piotr.pietruszewski@intel.com>
Reported by:	Charles Goncalves <halfling@halfling.com.br>
Obtained from:	1 week
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D12795
This commit is contained in:
Sean Bruno 2017-11-06 18:08:59 +00:00
parent bb0c3a6b03
commit 9c92bb71de

View File

@ -1754,15 +1754,17 @@ ixgbe_setup_vlan_hw_support(struct adapter *adapter)
return;
/* Setup the queues for vlans */
for (i = 0; i < adapter->num_queues; i++) {
rxr = &adapter->rx_rings[i];
/* On 82599 the VLAN enable is per/queue in RXDCTL */
if (hw->mac.type != ixgbe_mac_82598EB) {
ctrl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(rxr->me));
ctrl |= IXGBE_RXDCTL_VME;
IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(rxr->me), ctrl);
if (ifp->if_capenable & IFCAP_VLAN_HWTAGGING) {
for (i = 0; i < adapter->num_queues; i++) {
rxr = &adapter->rx_rings[i];
/* On 82599 the VLAN enable is per/queue in RXDCTL */
if (hw->mac.type != ixgbe_mac_82598EB) {
ctrl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(rxr->me));
ctrl |= IXGBE_RXDCTL_VME;
IXGBE_WRITE_REG(hw, IXGBE_RXDCTL(rxr->me), ctrl);
}
rxr->vtag_strip = TRUE;
}
rxr->vtag_strip = TRUE;
}
if ((ifp->if_capenable & IFCAP_VLAN_HWFILTER) == 0)