Re: [RFC PATCH v7 06/16] net: dsa: tag_qca: add define for handling mgmt Ethernet packet

Ansuel Smith
2022-01-26T04:05:54Z

On Tue, Jan 25, 2022 at 08:02:53PM -0800, Florian Fainelli wrote:
>
>
> On 1/25/2022 8:01 PM, Ansuel Smith wrote:
> > On Tue, Jan 25, 2022 at 07:54:15PM -0800, Florian Fainelli wrote:
> > >
> > >
> > > On 1/22/2022 5:33 PM, Ansuel Smith wrote:
> > > > Add all the required define to prepare support for mgmt read/write in
> > > > Ethernet packet. Any packet of this type has to be dropped as the only
> > > > use of these special packet is receive ack for an mgmt write request or
> > > > receive data for an mgmt read request.
> > > > A struct is used that emulates the Ethernet header but is used for a
> > > > different purpose.
> > > >
> > > > Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> > > > ---
> > >
> > > [snip]
> > >
> > > > +/* Special struct emulating a Ethernet header */
> > > > +struct mgmt_ethhdr {
> > > > + u32 command; /* command bit 31:0 */
> > > > + u32 seq; /* seq 63:32 */
> > > > + u32 mdio_data; /* first 4byte mdio */
> > > > + __be16 hdr; /* qca hdr */
> > > > +} __packed;
> > >
> > > Might be worth adding a BUILD_BUG_ON(sizeof(struct mgmt_ethhdr) !=
> > > QCA_HDR_MGMT_PKG_LEN) when you start making use of that structure?
> >
> > Where should I put this check? Right after the struct definition,
> > correct? (I just checked definition of the macro)
>
> It would have to be in a call site where you use the structure, I have not
> checked whether putting it in a static inline function in .h file actually
> works if the inline function is not used at all.

Think I can test that by just putting a wrong value in
QCA_HDR_MGMT_PKG_LEN and check if the error is triggered.
Will check if the macro will actually work.

> --
> Florian

--
Ansuel