net: Remove deprecated tunnel specific UDP offload functions

Now that we have all the drivers using udp_tunnel_get_rx_ports,
ndo_add_udp_enc_rx_port, and ndo_del_udp_enc_rx_port we can drop the
function calls that were specific to VXLAN and GENEVE.

Signed-off-by: Alexander Duyck <[email protected]>
Acked-by: Hannes Frederic Sowa <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Alexander Duyck 2016-06-16 12:23:12 -07:00 • committed by David S. Miller
commit 1938ee1fd3
4 changed files with 14 additions and 113 deletions

View file

@ -76,47 +76,20 @@ void setup_udp_tunnel_sock(struct net *net, struct socket *sock,
}
EXPORT_SYMBOL_GPL(setup_udp_tunnel_sock);
static void __udp_tunnel_push_rx_port(struct net_device *dev,
struct udp_tunnel_info *ti)
{
if (dev->netdev_ops->ndo_udp_tunnel_add) {
dev->netdev_ops->ndo_udp_tunnel_add(dev, ti);
return;
}
switch (ti->type) {
case UDP_TUNNEL_TYPE_VXLAN:
if (!dev->netdev_ops->ndo_add_vxlan_port)
break;
dev->netdev_ops->ndo_add_vxlan_port(dev,
ti->sa_family,
ti->port);
break;
case UDP_TUNNEL_TYPE_GENEVE:
if (!dev->netdev_ops->ndo_add_geneve_port)
break;
dev->netdev_ops->ndo_add_geneve_port(dev,
ti->sa_family,
ti->port);
break;
default:
break;
}
}
void udp_tunnel_push_rx_port(struct net_device *dev, struct socket *sock,
unsigned short type)
{
struct sock *sk = sock->sk;
struct udp_tunnel_info ti;
if (!dev->netdev_ops->ndo_udp_tunnel_add)
return;
ti.type = type;
ti.sa_family = sk->sk_family;
ti.port = inet_sk(sk)->inet_sport;
__udp_tunnel_push_rx_port(dev, &ti);
dev->netdev_ops->ndo_udp_tunnel_add(dev, &ti);
}
EXPORT_SYMBOL_GPL(udp_tunnel_push_rx_port);
@ -133,42 +106,15 @@ void udp_tunnel_notify_add_rx_port(struct socket *sock, unsigned short type)
ti.port = inet_sk(sk)->inet_sport;
rcu_read_lock();
for_each_netdev_rcu(net, dev)
__udp_tunnel_push_rx_port(dev, &ti);
for_each_netdev_rcu(net, dev) {
if (!dev->netdev_ops->ndo_udp_tunnel_add)
continue;
dev->netdev_ops->ndo_udp_tunnel_add(dev, &ti);
}
rcu_read_unlock();
}
EXPORT_SYMBOL_GPL(udp_tunnel_notify_add_rx_port);
static void __udp_tunnel_pull_rx_port(struct net_device *dev,
struct udp_tunnel_info *ti)
{
if (dev->netdev_ops->ndo_udp_tunnel_del) {
dev->netdev_ops->ndo_udp_tunnel_del(dev, ti);
return;
}
switch (ti->type) {
case UDP_TUNNEL_TYPE_VXLAN:
if (!dev->netdev_ops->ndo_del_vxlan_port)
break;
dev->netdev_ops->ndo_del_vxlan_port(dev,
ti->sa_family,
ti->port);
break;
case UDP_TUNNEL_TYPE_GENEVE:
if (!dev->netdev_ops->ndo_del_geneve_port)
break;
dev->netdev_ops->ndo_del_geneve_port(dev,
ti->sa_family,
ti->port);
break;
default:
break;
}
}
/* Notify netdevs that UDP port is no more listening */
void udp_tunnel_notify_del_rx_port(struct socket *sock, unsigned short type)
{
@ -182,8 +128,11 @@ void udp_tunnel_notify_del_rx_port(struct socket *sock, unsigned short type)
ti.port = inet_sk(sk)->inet_sport;
rcu_read_lock();
for_each_netdev_rcu(net, dev)
__udp_tunnel_pull_rx_port(dev, &ti);
for_each_netdev_rcu(net, dev) {
if (!dev->netdev_ops->ndo_udp_tunnel_del)
continue;
dev->netdev_ops->ndo_udp_tunnel_del(dev, &ti);
}
rcu_read_unlock();
}
EXPORT_SYMBOL_GPL(udp_tunnel_notify_del_rx_port);