]> git.baikalelectronics.ru Git - kernel.git/commit
openvswitch: Use inverted tuple in ovs_ct_find_existing() if NATted.
authorJarno Rajahalme <jarno@ovn.org>
Thu, 9 Feb 2017 19:21:53 +0000 (11:21 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 10 Feb 2017 03:59:34 +0000 (22:59 -0500)
commit78127d72345636791b0706639286b0281e5be732
treeae2f2d9dc0053de452287bc0b0f00433efb59ebe
parent64a1dd29fa9798bfa54aa1e13f9229cc8a86b704
openvswitch: Use inverted tuple in ovs_ct_find_existing() if NATted.

The conntrack lookup for existing connections fails to invert the
packet 5-tuple for NATted packets, and therefore fails to find the
existing conntrack entry.  Conntrack only stores 5-tuples for incoming
packets, and there are various situations where a lookup on a packet
that has already been transformed by NAT needs to be made.  Looking up
an existing conntrack entry upon executing packet received from the
userspace is one of them.

This patch fixes ovs_ct_find_existing() to invert the packet 5-tuple
for the conntrack lookup whenever the packet has already been
transformed by conntrack from its input form as evidenced by one of
the NAT flags being set in the conntrack state metadata.

Fixes: 468ea2e68792 ("openvswitch: Interface with NAT.")
Signed-off-by: Jarno Rajahalme <jarno@ovn.org>
Acked-by: Joe Stringer <joe@ovn.org>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/openvswitch/conntrack.c