* [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
* Re: [PATCH] net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
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
1 sibling, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2024-02-26 15:51 UTC (permalink / raw)
To: Lukasz Majewski
Cc: Oleksij Rempel, Andrew Lunn, Eric Dumazet, Florian Fainelli,
Vladimir Oltean, David S. Miller, Jakub Kicinski, netdev,
Tristram.Ha, Sebastian Andrzej Siewior
Mon, Feb 26, 2024 at 04:24:47PM CET, lukma@denx.de wrote:
>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")
>
No need for this empty line.
>Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
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
1 sibling, 1 reply; 4+ messages in thread
From: Simon Horman @ 2024-02-27 17:49 UTC (permalink / raw)
To: Lukasz Majewski
Cc: Oleksij Rempel, Andrew Lunn, Eric Dumazet, Florian Fainelli,
Vladimir Oltean, David S. Miller, Jakub Kicinski, netdev,
Tristram.Ha, Sebastian Andrzej Siewior
On Mon, Feb 26, 2024 at 04:24:47PM +0100, Lukasz Majewski wrote:
> 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")
Hi Lukasz,
The commit cited above does seem to be present in net or net-next.
Perhaps the tag should be:
Fixes: eafaa88b3eb7 ("net: hsr: Add support for redbox supervision frames")
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
...
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
2024-02-27 17:49 ` Simon Horman
@ 2024-02-28 8:47 ` Lukasz Majewski
0 siblings, 0 replies; 4+ messages in thread
From: Lukasz Majewski @ 2024-02-28 8:47 UTC (permalink / raw)
To: Simon Horman
Cc: Oleksij Rempel, Andrew Lunn, Eric Dumazet, Florian Fainelli,
Vladimir Oltean, David S. Miller, Jakub Kicinski, netdev,
Tristram.Ha, Sebastian Andrzej Siewior
[-- Attachment #1: Type: text/plain, Size: 1681 bytes --]
Hi Simon,
> On Mon, Feb 26, 2024 at 04:24:47PM +0100, Lukasz Majewski wrote:
> > 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")
>
> Hi Lukasz,
>
> The commit cited above does seem to be present in net or net-next.
> Perhaps the tag should be:
>
> Fixes: eafaa88b3eb7 ("net: hsr: Add support for redbox supervision
> frames")
Thanks for spotting it - I must have overlook it when preparing the
commit message.
>
> >
> > Signed-off-by: Lukasz Majewski <lukma@denx.de>
>
> ...
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [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).