Thread (10 messages) 10 messages, 3 authors, 2020-01-24

Re: [PATCH net-next v4 1/2] net: UDP tunnel encapsulation module for

From: Martin Varghese <hidden>
Date: 2020-01-23 14:50:29

On Wed, Jan 22, 2020 at 01:29:32PM -0500, Willem de Bruijn wrote:
On Tue, Jan 21, 2020 at 12:51 PM Martin Varghese
[off-list ref] wrote:
quoted
From: Martin Varghese <redacted>

The Bareudp tunnel module provides a generic L3 encapsulation
tunnelling module for tunnelling different protocols like MPLS,
IP,NSH etc inside a UDP tunnel.

Signed-off-by: Martin Varghese <redacted>
This addresses the main points I raised. A few small points below,
nothing serious. It could use more eye balls, but beyond those Acked
from me.
quoted
---
Changes in v2:
     - Fixed documentation errors.
     - Converted documentation to rst format.
     - Moved ip tunnel rt lookup code to a common location.
     - Removed seperate v4 and v6 socket.
     - Added call to skb_ensure_writable before updating ethernet header.
     - Simplified bareudp_destroy_tunnels as deleting devices under a
       namespace is taken care be the default pernet exit code.
     - Fixed bareudp_change_mtu.

Changes in v3:
     - Re-sending the patch again.

Changes in v4:
     - Converted bareudp device to l3 device.
I didn't quite get this statement, but it encompasses the change to
ARPHRD_NONE and introduction of gro_cells, I guess?
quoted
     - Removed redundant fields in bareudp device.
quoted
diff --git a/Documentation/networking/index.rst b/Documentation/networking/index.rst
index d07d985..ea3d604 100644
--- a/Documentation/networking/index.rst
+++ b/Documentation/networking/index.rst
@@ -33,6 +33,7 @@ Contents:
    tls
    tls-offload
    nfc
+   bareudp
if respinning: this list is mostly alphabetically ordened, perhaps
insert before batman-adv
quoted
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index dee7958..9726447 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -258,6 +258,19 @@ config GENEVE
          To compile this driver as a module, choose M here: the module
          will be called geneve.

+config BAREUDP
+       tristate "Bare UDP Encapsulation"
+       depends on INET && NET_UDP_TUNNEL
+       depends on IPV6 || !IPV6
+       select NET_IP_TUNNEL
+       select GRO_CELLS
Depends on NET_UDP_TUNNEL plus selects NET_IP_TUNNEL seems odd.

NET_UDP_TUNNEL itself selects NET_IP_TUNNEL, so perhaps just select
NET_UDP_TUNNEL.

I had to make that change to be able to get it in a .config after make
defconfig.

quoted
+static int bareudp_change_mtu(struct net_device *dev, int new_mtu)
+{
+       dev->mtu = new_mtu;
+       return 0;
+}
If your ndo_change_mtu does nothing special, it can just rely on the
assignment in __dev_set_mtu
yes.
we could  set dev_set_mtu in all the cases.ignore my previous reply
quoted
+/* Initialize the device structure. */
+static void bareudp_setup(struct net_device *dev)
+{
+       dev->netdev_ops = &bareudp_netdev_ops;
+       dev->needs_free_netdev = true;
+       SET_NETDEV_DEVTYPE(dev, &bareudp_type);
+       dev->features    |= NETIF_F_SG | NETIF_F_HW_CSUM;
+       dev->features    |= NETIF_F_RXCSUM;
+       dev->features    |= NETIF_F_GSO_SOFTWARE;
+       dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
+       dev->hw_features |= NETIF_F_GSO_SOFTWARE;
+       dev->hard_header_len = 0;
+       dev->addr_len = 0;
+       dev->mtu = 1500;
ETH_DATA_LEN?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help