6lowpan: move shared settings to lowpan_netdev_setup
authorAlexander Aring <alex.aring@gmail.com>
Fri, 2 Oct 2015 18:28:04 +0000 (20:28 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 8 Oct 2015 12:25:34 +0000 (14:25 +0200)
This patch moves values for all lowpan interface to the shared
implementation of 6lowpan. This patch also quietly fixes the forgotten
IFF_NO_QUEUE flag for the bluetooth 6LoWPAN interface. An identically
commit is 4afbc0d ("net: 6lowpan: convert to using IFF_NO_QUEUE") which
wasn't changed for bluetooth 6lowpan.

All 6lowpan interfaces should be virtual with IFF_NO_QUEUE, using EUI64
address length, the mtu size is 1280 (IPV6_MIN_MTU) and the netdev type
is ARPHRD_6LOWPAN.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/6lowpan.h
net/6lowpan/core.c
net/bluetooth/6lowpan.c
net/ieee802154/6lowpan/core.c

index c17f556644fcfaaa1882b7491681494ace49aa65..07db532696df2d5c71ff5993ce3f4c03a2818940 100644 (file)
@@ -61,6 +61,8 @@
 #define UIP_PROTO_UDP                  17 /* ipv6 next header value for UDP */
 #define UIP_FRAGH_LEN                  8  /* ipv6 fragment header size */
 
+#define EUI64_ADDR_LEN         8
+
 #define LOWPAN_NHC_MAX_ID_LEN  1
 /* Max IPHC Header len without IPv6 hdr specific inline data.
  * Useful for getting the "extra" bytes we need at worst case compression.
index ae1896fa45e2f891a89fd76cb8c4da5a1031f5e7..83b19e072224b031403d5904f1d9a8de7eb05ee2 100644 (file)
 
 void lowpan_netdev_setup(struct net_device *dev, enum lowpan_lltypes lltype)
 {
+       dev->addr_len = EUI64_ADDR_LEN;
+       dev->type = ARPHRD_6LOWPAN;
+       dev->mtu = IPV6_MIN_MTU;
+       dev->priv_flags |= IFF_NO_QUEUE;
+
        lowpan_priv(dev)->lltype = lltype;
 }
 EXPORT_SYMBOL(lowpan_netdev_setup);
index 9363f05275f47467ef8ca48289517e3838a2523b..db73b8a1433f86bfadd60aa9daae1b59d42e6192 100644 (file)
@@ -35,7 +35,6 @@ static struct dentry *lowpan_enable_debugfs;
 static struct dentry *lowpan_control_debugfs;
 
 #define IFACE_NAME_TEMPLATE "bt%d"
-#define EUI64_ADDR_LEN 8
 
 struct skb_cb {
        struct in6_addr addr;
@@ -674,13 +673,8 @@ static struct header_ops header_ops = {
 
 static void netdev_setup(struct net_device *dev)
 {
-       dev->addr_len           = EUI64_ADDR_LEN;
-       dev->type               = ARPHRD_6LOWPAN;
-
        dev->hard_header_len    = 0;
        dev->needed_tailroom    = 0;
-       dev->mtu                = IPV6_MIN_MTU;
-       dev->tx_queue_len       = 0;
        dev->flags              = IFF_RUNNING | IFF_POINTOPOINT |
                                  IFF_MULTICAST;
        dev->watchdog_timeo     = 0;
index 44420ed955743ee4e2bce9b9b8e4d576bed2f3dc..20c49c724ba04a3707f038a17774012ca5ba0421 100644 (file)
@@ -101,13 +101,9 @@ static const struct net_device_ops lowpan_netdev_ops = {
 
 static void lowpan_setup(struct net_device *ldev)
 {
-       ldev->addr_len          = IEEE802154_ADDR_LEN;
        memset(ldev->broadcast, 0xff, IEEE802154_ADDR_LEN);
-       ldev->type              = ARPHRD_6LOWPAN;
        /* We need an ipv6hdr as minimum len when calling xmit */
        ldev->hard_header_len   = sizeof(struct ipv6hdr);
-       ldev->mtu               = IPV6_MIN_MTU;
-       ldev->priv_flags        |= IFF_NO_QUEUE;
        ldev->flags             = IFF_BROADCAST | IFF_MULTICAST;
 
        ldev->netdev_ops        = &lowpan_netdev_ops;