]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
batman-adv: Reserve needed_*room for fragments
authorSven Eckelmann <sven@narfation.org>
Sat, 20 Nov 2021 12:40:52 +0000 (13:40 +0100)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Thu, 13 Jan 2022 17:43:07 +0000 (18:43 +0100)
commit637ea25fd6bd11af160c8538fa9b39c54f1c97dc
treef1de3f284ea6456e06463c828a2cc90a0826c7a9
parent764e9e9f64885cc910ad75a79a29b17c651e3570
batman-adv: Reserve needed_*room for fragments

BugLink: https://bugs.launchpad.net/bugs/1954834
commit c5cbfc87558168ef4c3c27ce36eba6b83391db19 upstream.

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>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
net/batman-adv/fragmentation.c