batman-adv: Reserve needed_*room for fragments
authorSven Eckelmann <sven@narfation.org>
Wed, 25 Nov 2020 12:16:43 +0000 (13:16 +0100)
committerSimon Wunderlich <sw@simonwunderlich.de>
Fri, 27 Nov 2020 07:02:55 +0000 (08:02 +0100)
commitc5cbfc87558168ef4c3c27ce36eba6b83391db19
tree5309d64f0d6eed047d09b34868477056269db5e5
parent4ca23e2c2074465bff55ea14221175fecdf63c5f
batman-adv: Reserve needed_*room for fragments

The batadv net_device is trying to propagate the needed_headroom and
needed_tailroom from the lower devices. This is needed to avoid cost
intensive reallocations using pskb_expand_head during the transmission.

But the fragmentation code split the skb's without adding extra room at the
end/beginning of the various fragments. This reduced the performance of
transmissions over complex scenarios (batadv on vxlan on wireguard) because
the lower devices had to perform the reallocations at least once.

Fixes: ee75ed88879a ("batman-adv: Fragment and send skbs larger than mtu")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
net/batman-adv/fragmentation.c