Thread (30 messages) 30 messages, 5 authors, 2011-09-27

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help