Re: [PATCH net-next v2 0/8] Add support for two classes of VCAP rules

From: Michael Walle
Date: Fri Jan 06 2023 - 05:47:20 EST


Hi,

Wouldn't it make more sense, to fix the regression via net (and
a Fixes: tag) and then make that stuff work without tc? Maybe
the fix is just reverting the commits.

I have discussed this again with Horatiu and I have the following suggestion of
how to proceed:

1) Create a small LAN966x specific patch for net (see below for the two possible
variants).

2) Continue with a net-next V3 without any 'Fixes' tags on top of the patch in
(1) when it becomes available in net-next.

Sounds good.

[coming back to this after writing the response below, so see there
for more context]
When do the patches from net become available in net-next? Only after a
merge window? If so, depending on the solution for (1) you'd have two
"in-between" kernel versions (v6.2 and v6.3).

The LAN966x patch for net (with a Fixes tag) could contain either:

a) No check on enabled lookup

Removal of the check for enabled lookups:

- if (!ANA_VCAP_S2_CFG_ENA_GET(val))
- return -ENOENT;

This will remove the error that you have seen, but will still require a
matchall rule to enable the PTP rules. This is compatible with the TC
framework.

b) Always enable lookups

Enable the lookups at startup.
Remove the lookup enable check as above.

This will make the PTP rules (and any other rules) work even without the
matchall rule to enable them. It its not ideal, but solves the problem that
you have been experiencing without the 'TC magic'

The V3 in net-next will provide the full solution.

I expect that you might prefer the b) version.

I *assume* linuxptp would have worked in my case (no bridge interface)
before Horatiu patches. As mentioned before, I haven't really tested it.
Does that mean with a) the error is gone and linuxptp is working as
before? If so, I'm also fine with a).

Honestly, now that there is a good solution in future kernels, I
don't care toooo much about that one particular kernel. Other
users might disagree though ;)

I just want to point out that right now you have some kind of
in-between kernel with 6.2:

<=6.1 linuxptp working (but not on bridged ports)
6.2 linuxptp working only with tc magic
6.3 linuxptp working

Therefore, I've raised the question if it's also viable to just
revert the former changes for 6.2. The you'd have a clean
transition.

-michael