| Submitter | Eric Dumazet |
|---|---|
| Date | Sept. 30, 2010, 12:16 p.m. |
| Message ID | <1285849004.2615.394.camel@edumazet-laptop> |
| Download | mbox | patch |
| Permalink | /patch/66150/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Thu, 30 Sep 2010 14:16:44 +0200 > [PATCH] vlan: dont drop packets from unknown vlans in promiscuous mode > > Roger Luethi noticed packets for unknown VLANs getting silently dropped > even in promiscuous mode. > > Check for promiscuous mode in __vlan_hwaccel_rx() and vlan_gro_common() > before drops. > > As suggested by Patrick, mark such packets to have skb->pkt_type set to > PACKET_OTHERHOST to make sure they are dropped by IP stack. > > Reported-by: Roger Luethi <rl@hellgate.ch> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > CC: Patrick McHardy <kaber@trash.net> Applied and queued up for -stable, thanks everyone! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c index 01ddb04..0eb96f7 100644 --- a/net/8021q/vlan_core.c +++ b/net/8021q/vlan_core.c @@ -24,8 +24,11 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, if (vlan_dev) skb->dev = vlan_dev; - else if (vlan_id) - goto drop; + else if (vlan_id) { + if (!(skb->dev->flags & IFF_PROMISC)) + goto drop; + skb->pkt_type = PACKET_OTHERHOST; + } return (polling ? netif_receive_skb(skb) : netif_rx(skb)); @@ -102,8 +105,11 @@ vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, if (vlan_dev) skb->dev = vlan_dev; - else if (vlan_id) - goto drop; + else if (vlan_id) { + if (!(skb->dev->flags & IFF_PROMISC)) + goto drop; + skb->pkt_type = PACKET_OTHERHOST; + } for (p = napi->gro_list; p; p = p->next) { NAPI_GRO_CB(p)->same_flow =