Re: [net-next 02/10] ixgbevf: Fix broken trunk vlan
flat view
From: Jesse Gross <hidden>
Date: 2011-09-24 16:33:35
On Sat, Sep 24, 2011 at 2:17 AM, Jeff Kirsher [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Greg Rose <redacted> Changes to clean up the vlan rx path broke trunk vlan. Trunk vlans in a VF driver are those set using: "ip link set <pfdev> vf <n> <vlanid>" Signed-off-by: Greg Rose <redacted> CC: Jiri Pirko <redacted> Signed-off-by: Jeff Kirsher <redacted> --- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-)diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index d72905b..4930c46 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c@@ -293,12 +293,10 @@ static void ixgbevf_receive_skb(struct ixgbevf_q_vector *q_vector,{ struct ixgbevf_adapter *adapter = q_vector->adapter; bool is_vlan = (status & IXGBE_RXD_STAT_VP); + u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan); - if (is_vlan) { - u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan); - + if (is_vlan && test_bit(tag, adapter->active_vlans)) __vlan_hwaccel_put_tag(skb, tag); - }
What happens if you run tcpdump without configuring vlan devices? Shouldn't you see tagged packets for the vlans that are being trunked to you? I think this will strip tags in that case. The apparent behavior of vlan filters here is also surprising to me because on one hand if they're truly filtering this test shouldn't be needed and on the other hand they don't seem to be disabled in promiscuous mode.