On Montag, 22. Januar 2018 20:24:50 CET Matthias Schiffer wrote:
skb_postpull_rcsum() is necessary after eth_type_trans() to adjust the skb checksum, otherwise log spam of the form "bat0: hw csum failure" will result when packets with CHECKSUM_COMPLETE are received (at least in some setups, e.g. when stacking batman-adv on top of VXLAN).
Would be nice to have a better explanation here.
The comment previously assumed that skb_pull_rcsum would be enough. But the problem here is that the skb_pull_rcsum only pulls the batman-adv headers. The actual pull of the ethernet header (with skb_pull_inline) happens inside eth_type_trans. Or did I miss anything?
[...]
I don't know what the exact circumstances are that trigger the log spam, but it seems this was broken forever (I could also reproduce the issue with our compat-14 legacy branch)... so please ask David to queue this up for stable :)
Yes, this is broken since earliest commits. The most relevant commit in batman-adv is:
Fixes: fe28a94c01e1 ("batman-adv: receive packets directly using skbs")
But I would propose to use following in the kernel tree:
Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
The 4.15 release will be soon(tm) and Simon is currently on vacation. So we will most likely postpone the submission to David until Simon found a way out of the snow and after 4.15 is released...
But it would be nice when some people could test the patch [1] (together with vxlan?) on batman-adv or batman-adv-legacy. And please provide a "Tested-by: Full Name email@example.org" [2] reply when it works.
Thanks, Sven
[1] https://patchwork.open-mesh.org/patch/17250/ [2] https://www.kernel.org/doc/html/v4.12/process/submitting-patches.html#using-...