1 #ifndef __IEEE802154_6LOWPAN_REASSEMBLY_H__
2 #define __IEEE802154_6LOWPAN_REASSEMBLY_H__
4 #include <net/inet_frag.h>
6 struct lowpan_create_arg
{
9 const struct ieee802154_addr
*src
;
10 const struct ieee802154_addr
*dst
;
13 /* Equivalent of ipv4 struct ip
15 struct lowpan_frag_queue
{
16 struct inet_frag_queue q
;
20 struct ieee802154_addr saddr
;
21 struct ieee802154_addr daddr
;
24 static inline u32
ieee802154_addr_hash(const struct ieee802154_addr
*a
)
26 switch (a
->addr_type
) {
27 case IEEE802154_ADDR_LONG
:
28 return (__force u32
)((((u32
*)a
->hwaddr
))[0] ^
29 ((u32
*)(a
->hwaddr
))[1]);
30 case IEEE802154_ADDR_SHORT
:
31 return (__force u32
)(a
->short_addr
);
37 static inline bool ieee802154_addr_addr_equal(const struct ieee802154_addr
*a1
,
38 const struct ieee802154_addr
*a2
)
40 if (a1
->pan_id
!= a2
->pan_id
)
43 if (a1
->addr_type
!= a2
->addr_type
)
46 switch (a1
->addr_type
) {
47 case IEEE802154_ADDR_LONG
:
48 if (memcmp(a1
->hwaddr
, a2
->hwaddr
, IEEE802154_ADDR_LEN
))
51 case IEEE802154_ADDR_SHORT
:
52 if (a1
->short_addr
!= a2
->short_addr
)
62 int lowpan_frag_rcv(struct sk_buff
*skb
, const u8 frag_type
);
63 void lowpan_net_frag_exit(void);
64 int lowpan_net_frag_init(void);
66 #endif /* __IEEE802154_6LOWPAN_REASSEMBLY_H__ */
This page took 0.040022 seconds and 5 git commands to generate.