]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit12889c4ce724de3c7ee0981c02dfeaec8a8b5ef6
treeaa7fe4948996a9898d8ffb1e49642cc497b41c56
parenteaea7bf6bf92bfa66cb931a9f7492d37cbef30ea
6lowpan: use rbtree for IP frag queue

This patch aligns IP defragmenation logic in 6lowpan with that
of IPv4 and IPv6: see
commit 7e40af923a02 ("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