diff options
author | Alexander Aring <alex.aring@gmail.com> | 2015-01-04 17:10:53 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2015-01-08 07:25:59 +0100 |
commit | ea81ac2e7050798109356150ea16e71622a5c329 (patch) | |
tree | fedb5990ebf350edc2c7ec6956ece51c85dcc221 /net/ieee802154/6lowpan/reassembly.h | |
parent | Bluetooth: btmrvl: fix card reset and suspend race issue (diff) | |
download | linux-ea81ac2e7050798109356150ea16e71622a5c329.tar.xz linux-ea81ac2e7050798109356150ea16e71622a5c329.zip |
ieee802154: create 6lowpan sub-directory
This patch creates an 6lowpan sub-directory inside ieee802154.
Additional we move all ieee802154 6lowpan relevant files into
this sub-directory instead of placing the 6lowpan related files
inside ieee802154.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/ieee802154/6lowpan/reassembly.h')
-rw-r--r-- | net/ieee802154/6lowpan/reassembly.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/net/ieee802154/6lowpan/reassembly.h b/net/ieee802154/6lowpan/reassembly.h new file mode 100644 index 000000000000..836b16fa001f --- /dev/null +++ b/net/ieee802154/6lowpan/reassembly.h @@ -0,0 +1,41 @@ +#ifndef __IEEE802154_6LOWPAN_REASSEMBLY_H__ +#define __IEEE802154_6LOWPAN_REASSEMBLY_H__ + +#include <net/inet_frag.h> + +struct lowpan_create_arg { + u16 tag; + u16 d_size; + const struct ieee802154_addr *src; + const struct ieee802154_addr *dst; +}; + +/* Equivalent of ipv4 struct ip + */ +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); + 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); + +#endif /* __IEEE802154_6LOWPAN_REASSEMBLY_H__ */ |