]> git.baikalelectronics.ru Git - kernel.git/commit
ipvlan: remove excessive packet scrubbing
authorMahesh Bandewar <maheshb@google.com>
Wed, 13 Dec 2017 22:40:26 +0000 (14:40 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Dec 2017 16:36:53 +0000 (11:36 -0500)
commitcb68701785b4b03c5a8ac76ce51251e6b8fbc037
treed80bc791215a1923cff066949151932415ff3bcb
parentf9279d9947c7a1d3d5d9aebe10484c27a6b1d9a3
ipvlan: remove excessive packet scrubbing

IPvlan currently scrubs packets at every location where packets may be
crossing namespace boundary. Though this is desirable, currently IPvlan
does it more than necessary. e.g. packets that are going to take
dev_forward_skb() path will get scrubbed so no point in scrubbing them
before forwarding. Another side-effect of scrubbing is that pkt-type gets
set to PACKET_HOST which overrides what was already been set by the
earlier path making erroneous delivery of the packets.

Also scrubbing packets just before calling dev_queue_xmit() has detrimental
effects since packets lose skb->sk and because of that miss prio updates,
incorrect socket back-pressure and would even break TSQ.

Fixes: 6ce0abbd62a4 ('ipvlan: Scrub skb before crossing the namespace boundary')
Signed-off-by: Mahesh Bandewar <maheshb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipvlan/ipvlan_core.c