|
@@ -998,6 +998,8 @@ static bool __vxlan_sock_release_prep(struct vxlan_sock *vs)
|
|
|
spin_lock(&vn->sock_lock);
|
|
|
hlist_del_rcu(&vs->hlist);
|
|
|
udp_tunnel_notify_del_rx_port(vs->sock,
|
|
|
+ (vs->flags & VXLAN_F_GPE) ?
|
|
|
+ UDP_TUNNEL_TYPE_VXLAN_GPE :
|
|
|
UDP_TUNNEL_TYPE_VXLAN);
|
|
|
spin_unlock(&vn->sock_lock);
|
|
|
|
|
@@ -2488,6 +2490,8 @@ static void vxlan_push_rx_ports(struct net_device *dev)
|
|
|
for (i = 0; i < PORT_HASH_SIZE; ++i) {
|
|
|
hlist_for_each_entry_rcu(vs, &vn->sock_list[i], hlist)
|
|
|
udp_tunnel_push_rx_port(dev, vs->sock,
|
|
|
+ (vs->flags & VXLAN_F_GPE) ?
|
|
|
+ UDP_TUNNEL_TYPE_VXLAN_GPE :
|
|
|
UDP_TUNNEL_TYPE_VXLAN);
|
|
|
}
|
|
|
spin_unlock(&vn->sock_lock);
|
|
@@ -2691,6 +2695,8 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, bool ipv6,
|
|
|
spin_lock(&vn->sock_lock);
|
|
|
hlist_add_head_rcu(&vs->hlist, vs_head(net, port));
|
|
|
udp_tunnel_notify_add_rx_port(sock,
|
|
|
+ (vs->flags & VXLAN_F_GPE) ?
|
|
|
+ UDP_TUNNEL_TYPE_VXLAN_GPE :
|
|
|
UDP_TUNNEL_TYPE_VXLAN);
|
|
|
spin_unlock(&vn->sock_lock);
|
|
|
|