Commit 4576039f authored by Tony Cheneau's avatar Tony Cheneau Committed by David S. Miller

6lowpan: Change byte order when storing/accessing u16 tag

The tag field should be stored and accessed using big endian byte order (as
intended in the specs). Or else, when displayed with a trafic analyser, such a
Wireshark, the field not properly displayed (e.g. 0x01 00 instead of 0x00 01,
and so on).
Signed-off-by: default avatarTony Cheneau <tony.cheneau@amnesiak.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d4787a15
...@@ -302,7 +302,7 @@ static inline int lowpan_fetch_skb_u16(struct sk_buff *skb, u16 *val) ...@@ -302,7 +302,7 @@ static inline int lowpan_fetch_skb_u16(struct sk_buff *skb, u16 *val)
if (unlikely(!pskb_may_pull(skb, 2))) if (unlikely(!pskb_may_pull(skb, 2)))
return -EINVAL; return -EINVAL;
*val = skb->data[0] | (skb->data[1] << 8); *val = (skb->data[0] << 8) | skb->data[1];
skb_pull(skb, 2); skb_pull(skb, 2);
return 0; return 0;
...@@ -1006,8 +1006,8 @@ lowpan_skb_fragmentation(struct sk_buff *skb) ...@@ -1006,8 +1006,8 @@ lowpan_skb_fragmentation(struct sk_buff *skb)
/* first fragment header */ /* first fragment header */
head[0] = LOWPAN_DISPATCH_FRAG1 | (payload_length & 0x7); head[0] = LOWPAN_DISPATCH_FRAG1 | (payload_length & 0x7);
head[1] = (payload_length >> 3) & 0xff; head[1] = (payload_length >> 3) & 0xff;
head[2] = tag & 0xff; head[2] = tag >> 8;
head[3] = tag >> 8; head[3] = tag & 0xff;
err = lowpan_fragment_xmit(skb, head, header_length, 0, 0); err = lowpan_fragment_xmit(skb, head, header_length, 0, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment