aboutsummaryrefslogtreecommitdiffstats
path: root/net/ieee802154/reassembly.h
diff options
context:
space:
mode:
authorPhoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>2014-03-14 16:24:02 -0400
committerDavid S. Miller <davem@davemloft.net>2014-03-14 22:15:26 -0400
commitae531b9475f62c5e1863508604cd6b3faf362d56 (patch)
treec719f25779f44c4241d799e44c8fc2c8c8065957 /net/ieee802154/reassembly.h
parente6278d92005e9d6e374f269b4ce39c908a68ad5d (diff)
ieee802154: use ieee802154_addr instead of *_sa variants
Change all internal uses of ieee802154_addr_sa to ieee802154_addr, except for those instances that communicate directly with userspace. Signed-off-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ieee802154/reassembly.h')
-rw-r--r--net/ieee802154/reassembly.h42
1 files changed, 8 insertions, 34 deletions
diff --git a/net/ieee802154/reassembly.h b/net/ieee802154/reassembly.h
index 895721ae71e1..74e4a7c98191 100644
--- a/net/ieee802154/reassembly.h
+++ b/net/ieee802154/reassembly.h
@@ -6,8 +6,8 @@
6struct lowpan_create_arg { 6struct lowpan_create_arg {
7 __be16 tag; 7 __be16 tag;
8 u16 d_size; 8 u16 d_size;
9 const struct ieee802154_addr_sa *src; 9 const struct ieee802154_addr *src;
10 const struct ieee802154_addr_sa *dst; 10 const struct ieee802154_addr *dst;
11}; 11};
12 12
13/* Equivalent of ipv4 struct ip 13/* Equivalent of ipv4 struct ip
@@ -17,16 +17,16 @@ struct lowpan_frag_queue {
17 17
18 __be16 tag; 18 __be16 tag;
19 u16 d_size; 19 u16 d_size;
20 struct ieee802154_addr_sa saddr; 20 struct ieee802154_addr saddr;
21 struct ieee802154_addr_sa daddr; 21 struct ieee802154_addr daddr;
22}; 22};
23 23
24static inline u32 ieee802154_addr_hash(const struct ieee802154_addr_sa *a) 24static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a)
25{ 25{
26 switch (a->addr_type) { 26 switch (a->mode) {
27 case IEEE802154_ADDR_LONG: 27 case IEEE802154_ADDR_LONG:
28 return (__force u32)((((u32 *)a->hwaddr))[0] ^ 28 return (((__force u64)a->extended_addr) >> 32) ^
29 ((u32 *)(a->hwaddr))[1]); 29 (((__force u64)a->extended_addr) & 0xffffffff);
30 case IEEE802154_ADDR_SHORT: 30 case IEEE802154_ADDR_SHORT:
31 return (__force u32)(a->short_addr); 31 return (__force u32)(a->short_addr);
32 default: 32 default:
@@ -34,32 +34,6 @@ static inline u32 ieee802154_addr_hash(const struct ieee802154_addr_sa *a)
34 } 34 }
35} 35}
36 36
37static inline bool
38ieee802154_addr_addr_equal(const struct ieee802154_addr_sa *a1,
39 const struct ieee802154_addr_sa *a2)
40{
41 if (a1->pan_id != a2->pan_id)
42 return false;
43
44 if (a1->addr_type != a2->addr_type)
45 return false;
46
47 switch (a1->addr_type) {
48 case IEEE802154_ADDR_LONG:
49 if (memcmp(a1->hwaddr, a2->hwaddr, IEEE802154_ADDR_LEN))
50 return false;
51 break;
52 case IEEE802154_ADDR_SHORT:
53 if (a1->short_addr != a2->short_addr)
54 return false;
55 break;
56 default:
57 return false;
58 }
59
60 return true;
61}
62
63int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type); 37int lowpan_frag_rcv(struct sk_buff *skb, const u8 frag_type);
64void lowpan_net_frag_exit(void); 38void lowpan_net_frag_exit(void);
65int lowpan_net_frag_init(void); 39int lowpan_net_frag_init(void);