[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4cb6fcd6-4e0f-47eb-a826-c1af712d33ab@redhat.com>
Date: Wed, 12 Nov 2025 12:01:51 +0100
From: Felix Maurer <fmaurer@...hat.com>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: netdev@...r.kernel.org, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, horms@...nel.org, liuhangbin@...il.com,
m-karicheri2@...com, arvid.brodin@...en.se
Subject: Re: [PATCH net 2/2] hsr: Follow standard for HSRv0 supervision frames
On 12.11.25 11:24, Sebastian Andrzej Siewior wrote:
> On 2025-11-11 17:29:33 [+0100], Felix Maurer wrote:
>> For HSRv0, the path_id has the following meaning:
>> - 0000: PRP supervision frame
>> - 0001-1001: HSR ring identifier
>> - 1010-1011: Frames from PRP network (A/B, with RedBoxes)
>> - 1111: HSR supervision frame
>
> Where do you have this from?
> I have here IEC 62439-3:2021 (Edition 4.0 2021-12).
> From the 4 bits of path_id, the three most significant bits are NetId
> with 0 for HSR and 1 to 6 for the PTP network and 7 reserved.
> The list significant bit for PRP indicates Redbox A/B while for HSR it
> indicates port A/B.
>
> You say HSRv0 while I don't see this mentioned at all. And you limit the
> change to prot_version == 0. So maybe this was once and removed from the
> standard.
My description for the path_id is from IEC 62439-3:2010. As far as I
know, the HSRv0/HSRv1 terminology is only used in the kernel. AFAIK, our
version 0/1 refers to the value in the SupVersion field of the HSR
supervision frames. The SupVersion is defined as 0 in IEC 62439-3:2010
and defined as 1 in IEC 62439-3:2012 and following.
The definition for the SupVersion field also states: "Implementation of
version X of the protocol shall interpret [...] version <=X frames
exactly as specified for the version concerned." (in IEC
62439-3:{2010,2012,2016,2021})
I read from this that if we implement HSRv0 we should follow the latest
specification for this version, i.e., the latest specification with
SupVersion defined as 0 (which would be IEC 62439-3:2010). This is also
why I limited the change to prot_version == 0 (maybe we should have some
helpers like hsr_is_v{0,1}() to make these conditions a bit more self
explanatory).
> Since this is limited to v0:
> Reviewed-by: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Thanks,
Felix
Powered by blists - more mailing lists