On Fri, Nov 26, 2021 at 06:27:38PM +0100, Clément Léger wrote: > IFH preparation can take quite some time on slow processors (up to 5% in > a iperf3 test for instance). In order to reduce the cost of this > preparation, pre-compute IFH since most of the parameters are fixed per > port. Only rew_op and vlan tag will be set when sending if different > than 0. This allows to remove entirely the calls to packing() with basic > usage. In the same time, export this function that will be used by FDMA. > > Signed-off-by: Clément Léger <clement.leger@xxxxxxxxxxx> > --- If you would move this injection frame header template into struct ocelot_port_private instead of struct ocelot_port, I would not have anything against it. Because struct ocelot_port is common with DSA, whereas struct ocelot_port_private isn't. Also, as things stand, all switch drivers call ocelot_init_port, but not all supported switches have the same IFH format. See seville_xmit() -> seville_ifh_set_dest(). So even though DSA does not use this for anything, it wouldn't even contain valid information even if it wanted to. So maybe you can move this initialization to some place isolated to vsc7514.