]> git.baikalelectronics.ru Git - kernel.git/commit
flow_dissector: Add support for HSR
authorKurt Kanzenbach <kurt@linutronix.de>
Mon, 28 Feb 2022 19:58:56 +0000 (20:58 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Mar 2022 06:44:49 +0000 (22:44 -0800)
commit56fa7584d13c3eb02eb0c822759a7d62ab907185
treefe25aba2099f4c5aadb21b91536f68ed06a7d52d
parente6a3f8b6b11f74480cae3b22db78ae7975f99197
flow_dissector: Add support for HSR

Network drivers such as igb or igc call eth_get_headlen() to determine the
header length for their to be constructed skbs in receive path.

When running HSR on top of these drivers, it results in triggering BUG_ON() in
skb_pull(). The reason is the skb headlen is not sufficient for HSR to work
correctly. skb_pull() notices that.

For instance, eth_get_headlen() returns 14 bytes for TCP traffic over HSR which
is not correct. The problem is, the flow dissection code does not take HSR into
account. Therefore, add support for it.

Reported-by: Anthony Harivel <anthony.harivel@linutronix.de>
Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Link: https://lore.kernel.org/r/20220228195856.88187-1-kurt@linutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/if_hsr.h
net/core/flow_dissector.c
net/hsr/hsr_main.h