iptunnel: Set tun_flags in the iptunnel_metadata_reply from src
authorwenxu <wenxu@ucloud.cn>
Sun, 23 Dec 2018 08:18:39 +0000 (16:18 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Dec 2018 22:20:25 +0000 (14:20 -0800)
ip l add tun type gretap external
ip r a 10.0.0.2 encap ip id 1000 dst 172.168.0.2 key dev tun
ip a a 10.0.0.1/24 dev tun

The peer arp request to 10.0.0.1 with tunnel_id, but the arp reply
only set the tun_id but not the tun_flags with TUNNEL_KEY. The arp
reply packet don't contain tun_id field.

Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_tunnel_core.c

index c248e0dccbe17afa397910b0d68260daf2a9eb3f..43f519c9b3183a405f71f5e2348c71a1c1f913b4 100644 (file)
@@ -151,6 +151,7 @@ struct metadata_dst *iptunnel_metadata_reply(struct metadata_dst *md,
                       sizeof(struct in6_addr));
        else
                dst->key.u.ipv4.dst = src->key.u.ipv4.src;
+       dst->key.tun_flags = src->key.tun_flags;
        dst->mode = src->mode | IP_TUNNEL_INFO_TX;
 
        return res;