Skip to content

Commit

Permalink
datapath: backport: net: vxlan: lwt: Fix vxlan local traffic.
Browse files Browse the repository at this point in the history
Upstream commit:
    commit bbec7802c6948c8626b71a4fe31283cb4691c358
    Author: pravin shelar <pshelar@ovn.org>
    Date:   Fri Aug 5 17:45:37 2016 -0700

    net: vxlan: lwt: Fix vxlan local traffic.

    vxlan driver has bypass for local vxlan traffic, but that
    depends on information about all VNIs on local system in
    vxlan driver. This is not available in case of LWT.
    Therefore following patch disable encap bypass for LWT
    vxlan traffic.

    Fixes: ee122c79d42 ("vxlan: Flow based tunneling").
    Reported-by: Jakub Libosvar <jlibosva@redhat.com>
    Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
    Acked-by: Jiri Benc <jbenc@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
Acked-by: Jesse Gross <jesse@kernel.org>
  • Loading branch information
pshelar committed Aug 9, 2016
1 parent 885f001 commit b1c74f3
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions datapath/linux/compat/vxlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1118,7 +1118,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
}

/* Bypass encapsulation if the destination is local */
if (rt->rt_flags & RTCF_LOCAL &&
if (!info && rt->rt_flags & RTCF_LOCAL &&
!(rt->rt_flags & (RTCF_BROADCAST | RTCF_MULTICAST))) {
struct vxlan_dev *dst_vxlan;

Expand Down Expand Up @@ -1178,7 +1178,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,

/* Bypass encapsulation if the destination is local */
rt6i_flags = ((struct rt6_info *)ndst)->rt6i_flags;
if (rt6i_flags & RTF_LOCAL &&
if (!info && rt6i_flags & RTF_LOCAL &&
!(rt6i_flags & (RTCF_BROADCAST | RTCF_MULTICAST))) {
struct vxlan_dev *dst_vxlan;

Expand Down

0 comments on commit b1c74f3

Please sign in to comment.