aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Aring <aar@pengutronix.de>2016-04-11 05:04:22 -0400
committerMarcel Holtmann <marcel@holtmann.org>2016-04-13 04:41:10 -0400
commita5862f2aba4ba53d461450685a67ae252935ab94 (patch)
treea17dadfd455ee95e796264d939e35de33ae5dd04
parent2bc068c3d6e1212d09c11169c699560747ef8c2b (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.h16
-rw-r--r--net/6lowpan/iphc.c16
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
172static 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 */
174static inline void raw_dump_inline(const char *caller, char *msg, 190static 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
159static 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
175static inline void 159static inline void
176lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr, 160lowpan_iphc_uncompress_802154_lladdr(struct in6_addr *ipaddr,
177 const void *lladdr) 161 const void *lladdr)