diff options
author | Alexander Aring <aar@pengutronix.de> | 2016-04-11 05:04:22 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2016-04-13 04:41:10 -0400 |
commit | a5862f2aba4ba53d461450685a67ae252935ab94 (patch) | |
tree | a17dadfd455ee95e796264d939e35de33ae5dd04 | |
parent | 2bc068c3d6e1212d09c11169c699560747ef8c2b (diff) |
6lowpan: move eui64 uncompress function
This function will be use in later functionality in other branches than
generic 6lowpan, so we move it to the global 6lowpan header.
Signed-off-by: Alexander Aring <aar@pengutronix.de>
Reviewed-by: Stefan Schmidt<stefan@osg.samsung.com>
Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r-- | include/net/6lowpan.h | 16 | ||||
-rw-r--r-- | net/6lowpan/iphc.c | 16 |
2 files changed, 16 insertions, 16 deletions
diff --git a/include/net/6lowpan.h b/include/net/6lowpan.h index a0c01f55e0d3..04b877c5baff 100644 --- a/include/net/6lowpan.h +++ b/include/net/6lowpan.h | |||
@@ -169,6 +169,22 @@ struct lowpan_802154_cb *lowpan_802154_cb(const struct sk_buff *skb) | |||
169 | return (struct lowpan_802154_cb *)skb->cb; | 169 | return (struct lowpan_802154_cb *)skb->cb; |
170 | } | 170 | } |
171 | 171 | ||
172 | static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, | ||
173 | const void *lladdr) | ||
174 | { | ||
175 | /* fe:80::XXXX:XXXX:XXXX:XXXX | ||
176 | * \_________________/ | ||
177 | * hwaddr | ||
178 | */ | ||
179 | ipaddr->s6_addr[0] = 0xFE; | ||
180 | ipaddr->s6_addr[1] = 0x80; | ||
181 | memcpy(&ipaddr->s6_addr[8], lladdr, EUI64_ADDR_LEN); | ||
182 | /* second bit-flip (Universe/Local) | ||
183 | * is done according RFC2464 | ||
184 | */ | ||
185 | ipaddr->s6_addr[8] ^= 0x02; | ||
186 | } | ||
187 | |||
172 | #ifdef DEBUG | 188 | #ifdef DEBUG |
173 | /* print data in line */ | 189 | /* print data in line */ |
174 | static inline void raw_dump_inline(const char *caller, char *msg, | 190 | static inline void raw_dump_inline(const char *caller, char *msg, |
diff --git a/net/6lowpan/iphc.c b/net/6lowpan/iphc.c index 29992405c816..dff15911bd04 100644 --- a/net/6lowpan/iphc.c +++ b/net/6lowpan/iphc.c | |||
@@ -156,22 +156,6 @@ | |||
156 | #define LOWPAN_IPHC_CID_DCI(cid) (cid & 0x0f) | 156 | #define LOWPAN_IPHC_CID_DCI(cid) (cid & 0x0f) |
157 | #define LOWPAN_IPHC_CID_SCI(cid) ((cid & 0xf0) >> 4) | 157 | #define LOWPAN_IPHC_CID_SCI(cid) ((cid & 0xf0) >> 4) |
158 | 158 | ||
159 | static inline void lowpan_iphc_uncompress_eui64_lladdr(struct in6_addr *ipaddr, | ||
160 | const void *lladdr) | ||
161 | { | ||
162 | /* fe:80::XXXX:XXXX:XXXX:XXXX | ||
163 | * \_________________/ | ||
164 | * hwaddr | ||
165 | */ | ||
166 | ipaddr->s6_addr[0] = 0xFE; | ||
167 | ipaddr->s6_addr[1] = 0x80; | ||
168 | memcpy(&ipaddr->s6_addr[8], lladdr, EUI64_ADDR_LEN); | ||
169 | /* second bit-flip (Universe/Local) | ||
170 | * is done according RFC2464 | ||
171 | */ | ||
172 | ipaddr->s6_addr[8] ^= 0x02; | ||
173 | } | ||
174 | |||
175 | static inline void | 159 | static inline void |
176 | lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, | 160 | lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, |
177 | const void *lladdr) | 161 | const void *lladdr) |