Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36784277 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'l2tpeth-info'



Guillaume Nault says:

====================
l2tp: add informations about l2tpeth interfaces in /sys

Patch #1 lets userspace retrieve the naming scheme of an l2tpeth
interface, using /sys/class/net/<iface>/name_assign_type.

Patch #2 adds the DEVTYPE field in /sys/class/net/<iface>/uevent so
that userspace can reliably know if a device is an l2tpeth interface.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents e0ee84de a485c2b8
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -130,8 +130,13 @@ static const struct net_device_ops l2tp_eth_netdev_ops = {
	.ndo_set_mac_address	= eth_mac_addr,
};

static struct device_type l2tpeth_type = {
	.name = "l2tpeth",
};

static void l2tp_eth_dev_setup(struct net_device *dev)
{
	SET_NETDEV_DEVTYPE(dev, &l2tpeth_type);
	ether_setup(dev);
	dev->priv_flags		&= ~IFF_TX_SKB_SHARING;
	dev->features		|= NETIF_F_LLTX;
@@ -258,6 +263,7 @@ static void l2tp_eth_adjust_mtu(struct l2tp_tunnel *tunnel,

static int l2tp_eth_create(struct net *net, u32 tunnel_id, u32 session_id, u32 peer_session_id, struct l2tp_session_cfg *cfg)
{
	unsigned char name_assign_type;
	struct net_device *dev;
	char name[IFNAMSIZ];
	struct l2tp_tunnel *tunnel;
@@ -281,8 +287,11 @@ static int l2tp_eth_create(struct net *net, u32 tunnel_id, u32 session_id, u32 p
			goto out;
		}
		strlcpy(name, cfg->ifname, IFNAMSIZ);
	} else
		name_assign_type = NET_NAME_USER;
	} else {
		strcpy(name, L2TP_ETH_DEV_NAME);
		name_assign_type = NET_NAME_ENUM;
	}

	session = l2tp_session_create(sizeof(*spriv), tunnel, session_id,
				      peer_session_id, cfg);
@@ -291,7 +300,7 @@ static int l2tp_eth_create(struct net *net, u32 tunnel_id, u32 session_id, u32 p
		goto out;
	}

	dev = alloc_netdev(sizeof(*priv), name, NET_NAME_UNKNOWN,
	dev = alloc_netdev(sizeof(*priv), name, name_assign_type,
			   l2tp_eth_dev_setup);
	if (!dev) {
		rc = -ENOMEM;