]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/ieee802154/6lowpan/6lowpan_i.h
inet: frags: use rhashtables for reassembly units
[mirror_ubuntu-bionic-kernel.git] / net / ieee802154 / 6lowpan / 6lowpan_i.h
index d8de3bcfb1032a1133402cb2a4c50a2448133846..b8d95cb71c25dd69c8a88b2c886a3f0d2ce1174f 100644 (file)
@@ -17,37 +17,19 @@ typedef unsigned __bitwise lowpan_rx_result;
 #define LOWPAN_DISPATCH_FRAG1           0xc0
 #define LOWPAN_DISPATCH_FRAGN           0xe0
 
-struct lowpan_create_arg {
+struct frag_lowpan_compare_key {
        u16 tag;
        u16 d_size;
-       const struct ieee802154_addr *src;
-       const struct ieee802154_addr *dst;
+       const struct ieee802154_addr src;
+       const struct ieee802154_addr dst;
 };
 
-/* Equivalent of ipv4 struct ip
+/* Equivalent of ipv4 struct ipq
  */
 struct lowpan_frag_queue {
        struct inet_frag_queue  q;
-
-       u16                     tag;
-       u16                     d_size;
-       struct ieee802154_addr  saddr;
-       struct ieee802154_addr  daddr;
 };
 
-static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a)
-{
-       switch (a->mode) {
-       case IEEE802154_ADDR_LONG:
-               return (((__force u64)a->extended_addr) >> 32) ^
-                       (((__force u64)a->extended_addr) & 0xffffffff);
-       case IEEE802154_ADDR_SHORT:
-               return (__force u32)(a->short_addr + (a->pan_id << 16));
-       default:
-               return 0;
-       }
-}
-
 int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type);
 void lowpan_net_frag_exit(void);
 int lowpan_net_frag_init(void);