Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 173e79fb authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

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: default avatarRoger Luethi <rl@hellgate.ch>
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
CC: Patrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 92629195
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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)
	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)
	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 =