6lowpan: use rbtree for IP frag queue
authorPeter Oskolkov <posk@google.com>
Fri, 15 Feb 2019 02:29:53 +0000 (18:29 -0800)
committerStefan Schmidt <stefan@datenfreihafen.org>
Tue, 19 Feb 2019 09:38:01 +0000 (10:38 +0100)
commit254c5dbe15d44c9d76a3ccd3724eb1befb7adf99
treeaa7fe4948996a9898d8ffb1e49642cc497b41c56
parentc9b747dbc2036c917b1067fbb78dc38b105c4454
6lowpan: use rbtree for IP frag queue

This patch aligns IP defragmenation logic in 6lowpan with that
of IPv4 and IPv6: see
commit d4289fcc9b16 ("net: IP6 defrag: use rbtrees for IPv6 defrag")

Modifying ip_defrag selftest seemed like an overkill, as I suspect
most kernel test setups do not have 6lowpan hwsim enabled. So I ran
the following code/script manually:

insmod ./mac802154_hwsim.ko

iwpan dev wpan0 set pan_id 0xbeef
ip link add link wpan0 name lowpan0 type lowpan
ip link set wpan0 up
ip link set lowpan0 up

iwpan dev wpan1 set pan_id 0xbeef
ip netns add foo
iwpan phy1 set netns name foo
ip netns exec foo ip link add link wpan1 name lowpan1 type lowpan
ip netns exec foo ip link set wpan1 up
ip netns exec foo ip link set lowpan1 up

ip -6 addr add "fb01::1/128" nodad dev lowpan0
ip -netns foo -6 addr add "fb02::1/128" nodad dev lowpan1

ip -6 route add "fb02::1/128" dev lowpan0
ip -netns foo -6 route add "fb01::1/128" dev lowpan1

# then in term1:
   ip netns exec foo bash
   ./udp_stream -6

# in term2:
    ./udp_stream -c -6 -H fb02::1

# pr_warn_once showed that the code changed by this patch
# was invoked.

Signed-off-by: Peter Oskolkov <posk@google.com>
Acked-by: Alexander Aring <aring@mojatatu.com>
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
net/ieee802154/6lowpan/reassembly.c