Messages in this thread | | | From | Vladimir Oltean <> | Date | Fri, 3 Jan 2020 23:28:47 +0200 | Subject | Re: [PATCH net-next] net: dsa: Remove indirect function call for flow dissection |
| |
On Fri, 3 Jan 2020 at 22:50, Florian Fainelli <f.fainelli@gmail.com> wrote: > > The call path is the following on TX (e.g.: when you run a DHCP client),
Oh, it gets called on TX too, ok. In that case, static proto_off information won't work for asymmetric taggers such as ocelot which may have an independently configurable prefix length on RX and TX. I want to get rid of the RX tag prefix in ocelot though, but just saying.
> I don't think your formula works for EDSA which has an EtherType, but
Why doesn't it work with edsa?
> this would probably work for all tags we currently support except trailer. > > proto = (__be16 *)(skb->data)[overhead / 2 - 1]; >
I wasn't suggesting to do this exact calculation in flow_dissector.c, but rather to pre-populate proto_off with a value statically derived from it on a piece of paper, with the trailer exception where it would be -2 in bytes or -1 in shorts, but nonetheless a negative and valid value.
> > I don't think anyone except Alexander did serious investigation this. > For now, what I am interested in is reducing the amount of technical > debt and expensive function calls.
Does the change bring any measurable improvement?
> -- > Florian
Regards, -Vladimir
| |