]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge tag 'ieee802154-for-net-next-2022-06-09' of git://git.kernel.org/pub/scm/linux...
authorJakub Kicinski <kuba@kernel.org>
Fri, 10 Jun 2022 06:21:27 +0000 (23:21 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 10 Jun 2022 06:21:29 +0000 (23:21 -0700)
Stefan Schmidt says:

====================
pull-request: ieee802154-next 2022-06-09

This is a separate pull request for 6lowpan changes. We agreed with the
bluetooth maintainers to switch the trees these changing are going into
from bluetooth to ieee802154.

Jukka Rissanen stepped down as a co-maintainer of 6lowpan (Thanks for the
work!). Alexander is staying as maintainer.

Alexander reworked the nhc_id lookup in 6lowpan to be way simpler.
Moved the data structure from rb to an array, which is all we need in this
case.

* tag 'ieee802154-for-net-next-2022-06-09' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan-next:
  MAINTAINERS: Remove Jukka Rissanen as 6lowpan maintainer
  net: 6lowpan: constify lowpan_nhc structures
  net: 6lowpan: use array for find nhc id
  net: 6lowpan: remove const from scalars
====================

Link: https://lore.kernel.org/r/20220609202956.1512156-1-stefan@datenfreihafen.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
16 files changed:
MAINTAINERS
net/6lowpan/nhc.c
net/6lowpan/nhc.h
net/6lowpan/nhc_dest.c
net/6lowpan/nhc_fragment.c
net/6lowpan/nhc_ghc_ext_dest.c
net/6lowpan/nhc_ghc_ext_frag.c
net/6lowpan/nhc_ghc_ext_hop.c
net/6lowpan/nhc_ghc_ext_route.c
net/6lowpan/nhc_ghc_icmpv6.c
net/6lowpan/nhc_ghc_udp.c
net/6lowpan/nhc_hop.c
net/6lowpan/nhc_ipv6.c
net/6lowpan/nhc_mobility.c
net/6lowpan/nhc_routing.c
net/6lowpan/nhc_udp.c

index e42b5d043588a86b1730cb31d2407b5be6a25a91..749b267637603be15edd7107dd8651672b805cab 100644 (file)
@@ -171,7 +171,6 @@ F:  drivers/scsi/53c700*
 
 6LOWPAN GENERIC (BTLE/IEEE 802.15.4)
 M:     Alexander Aring <alex.aring@gmail.com>
-M:     Jukka Rissanen <jukka.rissanen@linux.intel.com>
 L:     linux-bluetooth@vger.kernel.org
 L:     linux-wpan@vger.kernel.org
 S:     Maintained
index d6bbbd4ab38b0195dde0784a4788f26ccff599e2..7b374595328deb33fb646aada4c296a5af3944b3 100644 (file)
 
 #include "nhc.h"
 
-static struct rb_root rb_root = RB_ROOT;
-static struct lowpan_nhc *lowpan_nexthdr_nhcs[NEXTHDR_MAX + 1];
+static const struct lowpan_nhc *lowpan_nexthdr_nhcs[NEXTHDR_MAX + 1];
 static DEFINE_SPINLOCK(lowpan_nhc_lock);
 
-static int lowpan_nhc_insert(struct lowpan_nhc *nhc)
+static const struct lowpan_nhc *lowpan_nhc_by_nhcid(struct sk_buff *skb)
 {
-       struct rb_node **new = &rb_root.rb_node, *parent = NULL;
-
-       /* Figure out where to put new node */
-       while (*new) {
-               struct lowpan_nhc *this = rb_entry(*new, struct lowpan_nhc,
-                                                  node);
-               int result, len_dif, len;
-
-               len_dif = nhc->idlen - this->idlen;
-
-               if (nhc->idlen < this->idlen)
-                       len = nhc->idlen;
-               else
-                       len = this->idlen;
-
-               result = memcmp(nhc->id, this->id, len);
-               if (!result)
-                       result = len_dif;
-
-               parent = *new;
-               if (result < 0)
-                       new = &((*new)->rb_left);
-               else if (result > 0)
-                       new = &((*new)->rb_right);
-               else
-                       return -EEXIST;
-       }
+       const struct lowpan_nhc *nhc;
+       int i;
+       u8 id;
 
-       /* Add new node and rebalance tree. */
-       rb_link_node(&nhc->node, parent, new);
-       rb_insert_color(&nhc->node, &rb_root);
+       if (!pskb_may_pull(skb, 1))
+               return NULL;
 
-       return 0;
-}
+       id = *skb->data;
 
-static void lowpan_nhc_remove(struct lowpan_nhc *nhc)
-{
-       rb_erase(&nhc->node, &rb_root);
-}
+       for (i = 0; i < NEXTHDR_MAX + 1; i++) {
+               nhc = lowpan_nexthdr_nhcs[i];
+               if (!nhc)
+                       continue;
 
-static struct lowpan_nhc *lowpan_nhc_by_nhcid(const struct sk_buff *skb)
-{
-       struct rb_node *node = rb_root.rb_node;
-       const u8 *nhcid_skb_ptr = skb->data;
-
-       while (node) {
-               struct lowpan_nhc *nhc = rb_entry(node, struct lowpan_nhc,
-                                                 node);
-               u8 nhcid_skb_ptr_masked[LOWPAN_NHC_MAX_ID_LEN];
-               int result, i;
-
-               if (nhcid_skb_ptr + nhc->idlen > skb->data + skb->len)
-                       return NULL;
-
-               /* copy and mask afterwards the nhid value from skb */
-               memcpy(nhcid_skb_ptr_masked, nhcid_skb_ptr, nhc->idlen);
-               for (i = 0; i < nhc->idlen; i++)
-                       nhcid_skb_ptr_masked[i] &= nhc->idmask[i];
-
-               result = memcmp(nhcid_skb_ptr_masked, nhc->id, nhc->idlen);
-               if (result < 0)
-                       node = node->rb_left;
-               else if (result > 0)
-                       node = node->rb_right;
-               else
+               if ((id & nhc->idmask) == nhc->id)
                        return nhc;
        }
 
@@ -92,7 +41,7 @@ static struct lowpan_nhc *lowpan_nhc_by_nhcid(const struct sk_buff *skb)
 int lowpan_nhc_check_compression(struct sk_buff *skb,
                                 const struct ipv6hdr *hdr, u8 **hc_ptr)
 {
-       struct lowpan_nhc *nhc;
+       const struct lowpan_nhc *nhc;
        int ret = 0;
 
        spin_lock_bh(&lowpan_nhc_lock);
@@ -110,7 +59,7 @@ int lowpan_nhc_do_compression(struct sk_buff *skb, const struct ipv6hdr *hdr,
                              u8 **hc_ptr)
 {
        int ret;
-       struct lowpan_nhc *nhc;
+       const struct lowpan_nhc *nhc;
 
        spin_lock_bh(&lowpan_nhc_lock);
 
@@ -153,7 +102,7 @@ int lowpan_nhc_do_uncompression(struct sk_buff *skb,
                                const struct net_device *dev,
                                struct ipv6hdr *hdr)
 {
-       struct lowpan_nhc *nhc;
+       const struct lowpan_nhc *nhc;
        int ret;
 
        spin_lock_bh(&lowpan_nhc_lock);
@@ -189,18 +138,9 @@ int lowpan_nhc_do_uncompression(struct sk_buff *skb,
        return 0;
 }
 
-int lowpan_nhc_add(struct lowpan_nhc *nhc)
+int lowpan_nhc_add(const struct lowpan_nhc *nhc)
 {
-       int ret;
-
-       if (!nhc->idlen || !nhc->idsetup)
-               return -EINVAL;
-
-       WARN_ONCE(nhc->idlen > LOWPAN_NHC_MAX_ID_LEN,
-                 "LOWPAN_NHC_MAX_ID_LEN should be updated to %zd.\n",
-                 nhc->idlen);
-
-       nhc->idsetup(nhc);
+       int ret = 0;
 
        spin_lock_bh(&lowpan_nhc_lock);
 
@@ -209,10 +149,6 @@ int lowpan_nhc_add(struct lowpan_nhc *nhc)
                goto out;
        }
 
-       ret = lowpan_nhc_insert(nhc);
-       if (ret < 0)
-               goto out;
-
        lowpan_nexthdr_nhcs[nhc->nexthdr] = nhc;
 out:
        spin_unlock_bh(&lowpan_nhc_lock);
@@ -220,11 +156,10 @@ out:
 }
 EXPORT_SYMBOL(lowpan_nhc_add);
 
-void lowpan_nhc_del(struct lowpan_nhc *nhc)
+void lowpan_nhc_del(const struct lowpan_nhc *nhc)
 {
        spin_lock_bh(&lowpan_nhc_lock);
 
-       lowpan_nhc_remove(nhc);
        lowpan_nexthdr_nhcs[nhc->nexthdr] = NULL;
 
        spin_unlock_bh(&lowpan_nhc_lock);
index 67951c40734ba20df3724973d4997257f27e2ef7..ab7b4977c32be41d2797797316184db589417fda 100644 (file)
  * @_name: const char * of common header compression name.
  * @_nexthdr: ipv6 nexthdr field for the header compression.
  * @_nexthdrlen: ipv6 nexthdr len for the reserved space.
- * @_idsetup: callback to setup id and mask values.
- * @_idlen: len for the next header id and mask, should be always the same.
+ * @_id: one byte nhc id value.
+ * @_idmask: one byte nhc id mask value.
  * @_uncompress: callback for uncompression call.
  * @_compress: callback for compression call.
  */
 #define LOWPAN_NHC(__nhc, _name, _nexthdr,     \
-                  _hdrlen, _idsetup, _idlen,   \
+                  _hdrlen, _id, _idmask,       \
                   _uncompress, _compress)      \
-static u8 __nhc##_val[_idlen];                 \
-static u8 __nhc##_mask[_idlen];                        \
-static struct lowpan_nhc __nhc = {             \
+static const struct lowpan_nhc __nhc = {       \
        .name           = _name,                \
        .nexthdr        = _nexthdr,             \
        .nexthdrlen     = _hdrlen,              \
-       .id             = __nhc##_val,          \
-       .idmask         = __nhc##_mask,         \
-       .idlen          = _idlen,               \
-       .idsetup        = _idsetup,             \
+       .id             = _id,                  \
+       .idmask         = _idmask,              \
        .uncompress     = _uncompress,          \
        .compress       = _compress,            \
 }
@@ -53,27 +49,21 @@ module_exit(__nhc##_exit);
 /**
  * struct lowpan_nhc - hold 6lowpan next hdr compression ifnformation
  *
- * @node: holder for the rbtree.
  * @name: name of the specific next header compression
  * @nexthdr: next header value of the protocol which should be compressed.
  * @nexthdrlen: ipv6 nexthdr len for the reserved space.
- * @id: array for nhc id. Note this need to be in network byteorder.
- * @mask: array for nhc id mask. Note this need to be in network byteorder.
- * @len: the length of the next header id and mask.
- * @setup: callback to setup fill the next header id value and mask.
+ * @id: one byte nhc id value.
+ * @idmask: one byte nhc id mask value.
  * @compress: callback to do the header compression.
  * @uncompress: callback to do the header uncompression.
  */
 struct lowpan_nhc {
-       struct rb_node  node;
        const char      *name;
-       const u8        nexthdr;
-       const size_t    nexthdrlen;
-       u8              *id;
-       u8              *idmask;
-       const size_t    idlen;
+       u8              nexthdr;
+       size_t          nexthdrlen;
+       u8              id;
+       u8              idmask;
 
-       void            (*idsetup)(struct lowpan_nhc *nhc);
        int             (*uncompress)(struct sk_buff *skb, size_t needed);
        int             (*compress)(struct sk_buff *skb, u8 **hc_ptr);
 };
@@ -126,14 +116,14 @@ int lowpan_nhc_do_uncompression(struct sk_buff *skb,
  *
  * @nhc: nhc which should be add.
  */
-int lowpan_nhc_add(struct lowpan_nhc *nhc);
+int lowpan_nhc_add(const struct lowpan_nhc *nhc);
 
 /**
  * lowpan_nhc_del - delete a next header compression from framework
  *
  * @nhc: nhc which should be delete.
  */
-void lowpan_nhc_del(struct lowpan_nhc *nhc);
+void lowpan_nhc_del(const struct lowpan_nhc *nhc);
 
 /**
  * lowpan_nhc_init - adding all default nhcs
index 4768a945921250aa2d6ace67adc0bfb7d63c24cf..0cbcc7806469d965cdec8b78b07d23205f4ea416 100644 (file)
@@ -6,18 +6,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_NHC_DEST_IDLEN  1
 #define LOWPAN_NHC_DEST_ID_0   0xe6
 #define LOWPAN_NHC_DEST_MASK_0 0xfe
 
-static void dest_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_DEST_ID_0;
-       nhc->idmask[0] = LOWPAN_NHC_DEST_MASK_0;
-}
-
 LOWPAN_NHC(nhc_dest, "RFC6282 Destination Options", NEXTHDR_DEST, 0,
-          dest_nhid_setup, LOWPAN_NHC_DEST_IDLEN, NULL, NULL);
+          LOWPAN_NHC_DEST_ID_0, LOWPAN_NHC_DEST_MASK_0,  NULL, NULL);
 
 module_lowpan_nhc(nhc_dest);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 Destination Options compression");
index be85f07715bd9d9473d854593711f6cd3d95b058..9414552df0ace72be9603d0cd1a164f43d56fdbd 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_NHC_FRAGMENT_IDLEN      1
 #define LOWPAN_NHC_FRAGMENT_ID_0       0xe4
 #define LOWPAN_NHC_FRAGMENT_MASK_0     0xfe
 
-static void fragment_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_FRAGMENT_ID_0;
-       nhc->idmask[0] = LOWPAN_NHC_FRAGMENT_MASK_0;
-}
-
 LOWPAN_NHC(nhc_fragment, "RFC6282 Fragment", NEXTHDR_FRAGMENT, 0,
-          fragment_nhid_setup, LOWPAN_NHC_FRAGMENT_IDLEN, NULL, NULL);
+          LOWPAN_NHC_FRAGMENT_ID_0, LOWPAN_NHC_FRAGMENT_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(nhc_fragment);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 Fragment compression");
index a9137f1733bec56a1c4a7222f9463cbf0639edc6..e4745ddd10a86a96516fb3582144a294f21a8db6 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_GHC_EXT_DEST_IDLEN      1
 #define LOWPAN_GHC_EXT_DEST_ID_0       0xb6
 #define LOWPAN_GHC_EXT_DEST_MASK_0     0xfe
 
-static void dest_ghid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_GHC_EXT_DEST_ID_0;
-       nhc->idmask[0] = LOWPAN_GHC_EXT_DEST_MASK_0;
-}
-
 LOWPAN_NHC(ghc_ext_dest, "RFC7400 Destination Extension Header", NEXTHDR_DEST,
-          0, dest_ghid_setup, LOWPAN_GHC_EXT_DEST_IDLEN, NULL, NULL);
+          0, LOWPAN_GHC_EXT_DEST_ID_0, LOWPAN_GHC_EXT_DEST_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(ghc_ext_dest);
 MODULE_DESCRIPTION("6LoWPAN generic header destination extension compression");
index d49b745918e0bdf51fc42e86e49fd146b117dcf0..220e5abfa946060391e62914a9480216b5316dac 100644 (file)
@@ -5,19 +5,12 @@
 
 #include "nhc.h"
 
-#define LOWPAN_GHC_EXT_FRAG_IDLEN      1
 #define LOWPAN_GHC_EXT_FRAG_ID_0       0xb4
 #define LOWPAN_GHC_EXT_FRAG_MASK_0     0xfe
 
-static void frag_ghid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_GHC_EXT_FRAG_ID_0;
-       nhc->idmask[0] = LOWPAN_GHC_EXT_FRAG_MASK_0;
-}
-
 LOWPAN_NHC(ghc_ext_frag, "RFC7400 Fragmentation Extension Header",
-          NEXTHDR_FRAGMENT, 0, frag_ghid_setup,
-          LOWPAN_GHC_EXT_FRAG_IDLEN, NULL, NULL);
+          NEXTHDR_FRAGMENT, 0, LOWPAN_GHC_EXT_FRAG_ID_0,
+          LOWPAN_GHC_EXT_FRAG_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(ghc_ext_frag);
 MODULE_DESCRIPTION("6LoWPAN generic header fragmentation extension compression");
index 3beedf5140a34aac18b5c28623d8ffc8c8488469..9b0de4da7379497ea1a4168628079b456a52a1ba 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_GHC_EXT_HOP_IDLEN       1
 #define LOWPAN_GHC_EXT_HOP_ID_0                0xb0
 #define LOWPAN_GHC_EXT_HOP_MASK_0      0xfe
 
-static void hop_ghid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_GHC_EXT_HOP_ID_0;
-       nhc->idmask[0] = LOWPAN_GHC_EXT_HOP_MASK_0;
-}
-
 LOWPAN_NHC(ghc_ext_hop, "RFC7400 Hop-by-Hop Extension Header", NEXTHDR_HOP, 0,
-          hop_ghid_setup, LOWPAN_GHC_EXT_HOP_IDLEN, NULL, NULL);
+          LOWPAN_GHC_EXT_HOP_ID_0, LOWPAN_GHC_EXT_HOP_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(ghc_ext_hop);
 MODULE_DESCRIPTION("6LoWPAN generic header hop-by-hop extension compression");
index 70dc0ea3cf66ef7c9466ce5c84e27da0c93dd9f4..3e86faec59c919a0f16c87204cddf35c09431862 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_GHC_EXT_ROUTE_IDLEN     1
 #define LOWPAN_GHC_EXT_ROUTE_ID_0      0xb2
 #define LOWPAN_GHC_EXT_ROUTE_MASK_0    0xfe
 
-static void route_ghid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_GHC_EXT_ROUTE_ID_0;
-       nhc->idmask[0] = LOWPAN_GHC_EXT_ROUTE_MASK_0;
-}
-
 LOWPAN_NHC(ghc_ext_route, "RFC7400 Routing Extension Header", NEXTHDR_ROUTING,
-          0, route_ghid_setup, LOWPAN_GHC_EXT_ROUTE_IDLEN, NULL, NULL);
+          0, LOWPAN_GHC_EXT_ROUTE_ID_0, LOWPAN_GHC_EXT_ROUTE_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(ghc_ext_route);
 MODULE_DESCRIPTION("6LoWPAN generic header routing extension compression");
index 339ceffc25a966dced38f369c1c9cce2222b4af5..1634f3eb0be801b0a195b17ca3b53ce56ffbafc0 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_GHC_ICMPV6_IDLEN                1
 #define LOWPAN_GHC_ICMPV6_ID_0         0xdf
 #define LOWPAN_GHC_ICMPV6_MASK_0       0xff
 
-static void icmpv6_ghid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_GHC_ICMPV6_ID_0;
-       nhc->idmask[0] = LOWPAN_GHC_ICMPV6_MASK_0;
-}
-
 LOWPAN_NHC(ghc_icmpv6, "RFC7400 ICMPv6", NEXTHDR_ICMP, 0,
-          icmpv6_ghid_setup, LOWPAN_GHC_ICMPV6_IDLEN, NULL, NULL);
+          LOWPAN_GHC_ICMPV6_ID_0, LOWPAN_GHC_ICMPV6_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(ghc_icmpv6);
 MODULE_DESCRIPTION("6LoWPAN generic header ICMPv6 compression");
index f47fec601e733f78a7270c64b6cffb3d797a0d7c..4ac4813b77ad434056582572f87e76a6b23b90f3 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_GHC_UDP_IDLEN   1
 #define LOWPAN_GHC_UDP_ID_0    0xd0
 #define LOWPAN_GHC_UDP_MASK_0  0xf8
 
-static void udp_ghid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_GHC_UDP_ID_0;
-       nhc->idmask[0] = LOWPAN_GHC_UDP_MASK_0;
-}
-
 LOWPAN_NHC(ghc_udp, "RFC7400 UDP", NEXTHDR_UDP, 0,
-          udp_ghid_setup, LOWPAN_GHC_UDP_IDLEN, NULL, NULL);
+          LOWPAN_GHC_UDP_ID_0, LOWPAN_GHC_UDP_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(ghc_udp);
 MODULE_DESCRIPTION("6LoWPAN generic header UDP compression");
index 158fc19063275a44bc65e171d0955828169184ff..182087dfd09d0e7700990676751cd4af115c081c 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_NHC_HOP_IDLEN   1
 #define LOWPAN_NHC_HOP_ID_0    0xe0
 #define LOWPAN_NHC_HOP_MASK_0  0xfe
 
-static void hop_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_HOP_ID_0;
-       nhc->idmask[0] = LOWPAN_NHC_HOP_MASK_0;
-}
-
 LOWPAN_NHC(nhc_hop, "RFC6282 Hop-by-Hop Options", NEXTHDR_HOP, 0,
-          hop_nhid_setup, LOWPAN_NHC_HOP_IDLEN, NULL, NULL);
+          LOWPAN_NHC_HOP_ID_0, LOWPAN_NHC_HOP_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(nhc_hop);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 Hop-by-Hop Options compression");
index 08b7589e5b3805efdf6a5c336252b4f095e6e5ed..20242360b1d4dc1beb55deb5aa490ab43c4e8c72 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_NHC_IPV6_IDLEN  1
 #define LOWPAN_NHC_IPV6_ID_0   0xee
 #define LOWPAN_NHC_IPV6_MASK_0 0xfe
 
-static void ipv6_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_IPV6_ID_0;
-       nhc->idmask[0] = LOWPAN_NHC_IPV6_MASK_0;
-}
-
-LOWPAN_NHC(nhc_ipv6, "RFC6282 IPv6", NEXTHDR_IPV6, 0, ipv6_nhid_setup,
-          LOWPAN_NHC_IPV6_IDLEN, NULL, NULL);
+LOWPAN_NHC(nhc_ipv6, "RFC6282 IPv6", NEXTHDR_IPV6, 0, LOWPAN_NHC_IPV6_ID_0,
+          LOWPAN_NHC_IPV6_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(nhc_ipv6);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 IPv6 compression");
index ac8fca68982815c8f2050d2cc8cfacc9cb7cae29..1c31d872c804c867ffae7cb0814400946acb5be2 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_NHC_MOBILITY_IDLEN      1
 #define LOWPAN_NHC_MOBILITY_ID_0       0xe8
 #define LOWPAN_NHC_MOBILITY_MASK_0     0xfe
 
-static void mobility_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_MOBILITY_ID_0;
-       nhc->idmask[0] = LOWPAN_NHC_MOBILITY_MASK_0;
-}
-
 LOWPAN_NHC(nhc_mobility, "RFC6282 Mobility", NEXTHDR_MOBILITY, 0,
-          mobility_nhid_setup, LOWPAN_NHC_MOBILITY_IDLEN, NULL, NULL);
+          LOWPAN_NHC_MOBILITY_ID_0, LOWPAN_NHC_MOBILITY_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(nhc_mobility);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 Mobility compression");
index 1c174023de42d1032dac0c1045870be9cce84dfd..dae03ebf702136579d449b5bedb7c7fe641667ea 100644 (file)
@@ -5,18 +5,11 @@
 
 #include "nhc.h"
 
-#define LOWPAN_NHC_ROUTING_IDLEN       1
 #define LOWPAN_NHC_ROUTING_ID_0                0xe2
 #define LOWPAN_NHC_ROUTING_MASK_0      0xfe
 
-static void routing_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_ROUTING_ID_0;
-       nhc->idmask[0] = LOWPAN_NHC_ROUTING_MASK_0;
-}
-
 LOWPAN_NHC(nhc_routing, "RFC6282 Routing", NEXTHDR_ROUTING, 0,
-          routing_nhid_setup, LOWPAN_NHC_ROUTING_IDLEN, NULL, NULL);
+          LOWPAN_NHC_ROUTING_ID_0, LOWPAN_NHC_ROUTING_MASK_0, NULL, NULL);
 
 module_lowpan_nhc(nhc_routing);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 Routing compression");
index 33f17bd8cda717fa5e4d27a2d2add3a338c415d5..0a506c77283dded62c7b316ef0430313f596b0a8 100644 (file)
@@ -14,7 +14,6 @@
 
 #define LOWPAN_NHC_UDP_MASK            0xF8
 #define LOWPAN_NHC_UDP_ID              0xF0
-#define LOWPAN_NHC_UDP_IDLEN           1
 
 #define LOWPAN_NHC_UDP_4BIT_PORT       0xF0B0
 #define LOWPAN_NHC_UDP_4BIT_MASK       0xFFF0
@@ -169,14 +168,8 @@ static int udp_compress(struct sk_buff *skb, u8 **hc_ptr)
        return 0;
 }
 
-static void udp_nhid_setup(struct lowpan_nhc *nhc)
-{
-       nhc->id[0] = LOWPAN_NHC_UDP_ID;
-       nhc->idmask[0] = LOWPAN_NHC_UDP_MASK;
-}
-
 LOWPAN_NHC(nhc_udp, "RFC6282 UDP", NEXTHDR_UDP, sizeof(struct udphdr),
-          udp_nhid_setup, LOWPAN_NHC_UDP_IDLEN, udp_uncompress, udp_compress);
+          LOWPAN_NHC_UDP_ID, LOWPAN_NHC_UDP_MASK, udp_uncompress, udp_compress);
 
 module_lowpan_nhc(nhc_udp);
 MODULE_DESCRIPTION("6LoWPAN next header RFC6282 UDP compression");