Thread (34 messages) flat view 34 messages, 6 authors, 2014-01-09

Re: [PATCH net-next V2 3/3] net: Add GRO support for vxlan traffic

From: Eric Dumazet <hidden>
Date: 2014-01-07 20:04:06

On Tue, 2014-01-07 at 21:43 +0200, Or Gerlitz wrote:
On Tue, Jan 7, 2014 at 6:34 PM, Eric Dumazet [off-list ref] wrote:
quoted
On Tue, 2014-01-07 at 17:29 +0200, Or Gerlitz wrote:
quoted
Add gro handlers for vxlan using the udp gro infrastructure
quoted
 static void vxlan_notify_add_rx_port(struct sock *sk)
 {
@@ -568,6 +661,8 @@ static void vxlan_notify_add_rx_port(struct sock *sk)
                      dev->netdev_ops->ndo_add_vxlan_port(dev, sa_family,
                                                          port);
      }
+     if (sa_family == AF_INET)
+             udp_add_offload(&vxlan_offload, port);
      rcu_read_unlock();
 }
This means two vxlan tunnels can not share same port.
Is that a valid assertion ?
nope -- the vxlan driver opens a listener udp socket per per listening
port, but N > 1 vxlan tunnels can sit on that port, the driver does
further demuxing based on the vnid carried in the vxlan header, see
the call to vxlan_find_vni() from vxlan_rcv()
--
So if we use same port, it seems to me udp_del_offload() of the first
dismantled tunnel will remove the offload for the remaining tunnel.

You forgot to implement a refcount somehow.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help