6lowpan: rework tc and flow label handling
authorAlexander Aring <alex.aring@gmail.com>
Tue, 20 Oct 2015 06:31:25 +0000 (08:31 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 20 Oct 2015 22:49:25 +0000 (00:49 +0200)
commitb5af9bdbfe6d497d27e5936a7d110fc5f64e7c0d
treee4a25089c06714388cc546f5543e1c02f69603ee
parentc8a3e7eb98236f7c88e6deddf9f330874070fa09
6lowpan: rework tc and flow label handling

This patch reworks the handling of compression/decompression of traffic
class and flow label handling. The current method is hard to understand,
also doesn't checks if we can read the buffer from skb length.

I tried to put the shifting operations into static inline functions and
comment each steps which I did there to make it hopefully somewhat more
readable. The big mess to deal with that is the that the ipv6 header
bring the order "DSCP + ECN" but iphc uses "ECN + DSCP". Additional the
DCSP + ECN bits are splitted in ipv6_hdr inside the priority and
flow_lbl[0] fields.

I tested these compressions by using fakelb 802.15.4 driver and
manipulate the tc and flow label fields manually in function
"__ip6_local_out" before the skb will be send to lower layers. Then I
looked up the tc and flow label fields in wireshark on a wpan and lowpan
interface.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/6lowpan/iphc.c