]> git.baikalelectronics.ru Git - kernel.git/commit
net: Fix vti use case with oif in dst lookups
authorDavid Ahern <dsa@cumulusnetworks.com>
Tue, 15 Sep 2015 22:10:50 +0000 (15:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Sep 2015 23:36:34 +0000 (16:36 -0700)
commit91c754603a3475fae1877fe5d77d82a018d014fe
treea193039f8278a234772c8a84fc21aaead1370457
parent553d3f2556c2496da5e427071692c408e44858ec
net: Fix vti use case with oif in dst lookups

Steffen reported that the recent change to add oif to dst lookups breaks
the VTI use case. The problem is that with the oif set in the flow struct
the comparison to the nh_oif is triggered. Fix by splitting the
FLOWI_FLAG_VRFSRC into 2 flags -- one that triggers the vrf device cache
bypass (FLOWI_FLAG_VRFSRC) and another telling the lookup to not compare
nh oif (FLOWI_FLAG_SKIP_NH_OIF).

Fixes: c2aa866fb2cf ("xfrm: Add oif to dst lookups")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c
include/net/flow.h
include/net/route.h
net/ipv4/fib_trie.c
net/ipv4/udp.c
net/ipv4/xfrm4_policy.c