openvswitch: Only set TUNNEL_VXLAN_OPT if VXLAN-GBP metadata is set
authorThomas Graf <tgraf@suug.ch>
Mon, 9 Feb 2015 15:56:37 +0000 (16:56 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Feb 2015 22:25:52 +0000 (14:25 -0800)
This avoids setting TUNNEL_VXLAN_OPT for VXLAN frames which don't
have any GBP metadata set. It is not invalid to set it but unnecessary.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/openvswitch/vport-vxlan.c

index ff07d4062d601d6c6a0ba22930680143103a08ef..3277a7520e31320479e0d40bbd66b6dd6f89de59 100644 (file)
@@ -76,7 +76,7 @@ static void vxlan_rcv(struct vxlan_sock *vs, struct sk_buff *skb,
 
        flags = TUNNEL_KEY | (udp_hdr(skb)->check != 0 ? TUNNEL_CSUM : 0);
        vxlan_port = vxlan_vport(vport);
-       if (vxlan_port->exts & VXLAN_F_GBP)
+       if (vxlan_port->exts & VXLAN_F_GBP && md->gbp)
                flags |= TUNNEL_VXLAN_OPT;
 
        /* Save outer tunnel values */