netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
@ 2024-02-26 15:24 Lukasz Majewski
  2024-02-26 15:51 ` Jiri Pirko
  2024-02-27 17:49 ` Simon Horman
  0 siblings, 2 replies; 4+ messages in thread
From: Lukasz Majewski @ 2024-02-26 15:24 UTC (permalink / raw)
  To: Oleksij Rempel
  Cc: Andrew Lunn, Eric Dumazet, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Jakub Kicinski, netdev, Tristram.Ha,
	Sebastian Andrzej Siewior, Lukasz Majewski

Current HSR implementation uses following supervisory frame (even for
HSRv1 the HSR tag is not is not present):

00000000: 01 15 4e 00 01 2d XX YY ZZ 94 77 10 88 fb 00 01
00000010: 7e 1c 17 06 XX YY ZZ 94 77 10 1e 06 XX YY ZZ 94
00000020: 77 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030: 00 00 00 00 00 00 00 00 00 00 00 00

The current code adds extra two bytes (i.e. sizeof(struct hsr_sup_tlv))
when offset for skb_pull() is calculated.
This is wrong, as both 'struct hsrv1_ethhdr_sp' and 'hsrv0_ethhdr_sp'
already have 'struct hsr_sup_tag' defined in them, so there is no need
for adding extra two bytes.

This code was working correctly as with no RedBox support, the check for
HSR_TLV_EOT (0x00) was off by two bytes, which were corresponding to
zeroed padded bytes for minimal packet size.

Fixes: f43200a2c98b ("net: hsr: Provide RedBox support")

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
 net/hsr/hsr_forward.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/hsr/hsr_forward.c b/net/hsr/hsr_forward.c
index 2afe28712a7a..5d68cb181695 100644
--- a/net/hsr/hsr_forward.c
+++ b/net/hsr/hsr_forward.c
@@ -83,7 +83,7 @@ static bool is_supervision_frame(struct hsr_priv *hsr, struct sk_buff *skb)
 		return false;
 
 	/* Get next tlv */
-	total_length += sizeof(struct hsr_sup_tlv) + hsr_sup_tag->tlv.HSR_TLV_length;
+	total_length += hsr_sup_tag->tlv.HSR_TLV_length;
 	if (!pskb_may_pull(skb, total_length))
 		return false;
 	skb_pull(skb, total_length);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-02-28  8:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-26 15:24 [PATCH] net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames Lukasz Majewski
2024-02-26 15:51 ` Jiri Pirko
2024-02-27 17:49 ` Simon Horman
2024-02-28  8:47   ` Lukasz Majewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).