net: don't reforward packets already forwarded by offload device
authorScott Feldman <sfeldma@gmail.com>
Sun, 19 Jul 2015 01:24:48 +0000 (18:24 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2015 01:32:44 +0000 (18:32 -0700)
commit0c4f691ff6791e55ac831666df0b49b1679c56e4
tree18117c556b621eb90c9d9ce1ebfd131ca2f681b6
parent8254973fa3459b512b6c0cd5b0e4641e4d7c048c
net: don't reforward packets already forwarded by offload device

Just before queuing skb for xmit on port, check if skb has been marked by
switchdev port driver as already fordwarded by device.  If so, drop skb.  A
non-zero skb->offload_fwd_mark field is set by the switchdev port
driver/device on ingress to indicate the skb has already been forwarded by
the device to egress ports with matching dev->skb_mark.  The switchdev port
driver would assign a non-zero dev->offload_skb_mark for each device port
netdev during registration, for example.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
include/linux/skbuff.h
net/core/dev.c