Re: [net PATCH 1/2] net: dsa: qca8k: fix inband mgmt for big-endian systems

From: Christian Marangi
Date: Wed Oct 12 2022 - 08:25:03 EST


On Wed, Oct 12, 2022 at 10:24:11AM +0300, Vladimir Oltean wrote:
> On Mon, Oct 10, 2022 at 02:44:46PM +0200, Christian Marangi wrote:
> > On Mon, Oct 10, 2022 at 08:53:01PM +0200, Andrew Lunn wrote:
> > > > /* Special struct emulating a Ethernet header */
> > > > struct qca_mgmt_ethhdr {
> > > > - u32 command; /* command bit 31:0 */
> > > > - u32 seq; /* seq 63:32 */
> > > > - u32 mdio_data; /* first 4byte mdio */
> > > > + __le32 command; /* command bit 31:0 */
> > > > + __le32 seq; /* seq 63:32 */
> > > > + __le32 mdio_data; /* first 4byte mdio */
> > > > __be16 hdr; /* qca hdr */
> > > > } __packed;
> > >
> > > It looks odd that hdr is BE while the rest are LE. Did you check this?
> > >
> > > Andrew
> >
> > Yes we did many test to analyze this and I just checked with some
> > tcpdump that the hdr is BE everytime. If you want I can provide you some
> > tcpdump from 2 different systems.
> >
> > Anyway it looks like this family switch treats the hdr in a standard way
> > with the network byte order and for anything else stick to LE.
> >
> > Also as a side note the tagger worked correctly before the mgmt feature
> > on BE systems and also works correctly now... just any command is slow
> > as the mgmt system has to timeout and fallback to legacy mdio.
>
> Could you provide a tcpdump?

Hi, this [0] is the zip with all the tcpdump.
The main packet to check are the one that are 60 in lenght and > 170 in
length for the autocast mib. I added both LE and BE and for BE I added
the broken and the correct one.

As you notice without following this endianess madness, the switch
doesn't answer to any request.

Hope the dump are not too bloated to understand this problem.

[0] https://we.tl/t-ZpXVObTIh0

--
Ansuel