On 4 Nov 2026, at 17:49, Han Zhou via dev wrote:

> On Fri, Oct 16, 2026 at 9:41 AM Aaron Conole <[email protected]> wrote:
>>
>> Han Zhou via dev <[email protected]> writes:
>>
>>> One OpenFlow flow's actions are translated into one datapath flow.
>>> "resubmit" is followed during that translation, so every action it
>>> reaches is appended to the same action list.  A pipeline that fans a
>>> packet out to many destinations can therefore build an action list that
>>> the datapath refuses, because a Netlink attribute carries a 16-bit
>>> length.
>>>
>>> Recirculation is the only thing that ends one action list and begins
>>> another, but a controller has had no way to ask for it.  Open vSwitch
>>> recirculates on its own behalf for MPLS, for "ct(table=N)", and for a
>>> paused "controller" action, and "debug_recirc" exposes it directly, but
>>> that action is intentionally undocumented, subject to change, and
>>> rejected unless ovs-vswitchd runs with --enable-dummy.
>>>
>>> Add "recirc", a documented extension action that ends the datapath flow
>>> being built and resumes the actions that follow it in a new one.
>>> Registers, metadata, the stack, and the remaining actions cross the
>>> boundary, so a pipeline may be divided across several datapath flows
>>> without changing what it computes.  Translation reuses the existing
>>> freeze path, which already advances past the action before freezing so
>>> that the continuation makes progress.
>>>
>>> Assisted-by: Claude Opus 5.0, Cursor
>>> Signed-off-by: Han Zhou <[email protected]>
>>> ---
>>
>> Recheck-request: github-robot
>
> Hi Ilya, this feature is required by the OVN fix of broadcast scaling problem:
> https://patchwork.ozlabs.org/project/ovn/list/?series=531675
>
> I understand the review queue is quite long, but it would be
> appreciated if you could give a quick look to see if the approach is
> reasonable, before taking a detailed review, so that we could make
> some decisions accordingly downstream.

Hi Han,

Find my thoughts on this below, but I'm also interested in other
maintainers' feedback.

To me this feels like a hack.  From an OVS perspective we try to
minimise recirculations as much as possible, as they have performance
impacts (an additional datapath lookup per recirculation) as well as
preventing offloads from happening.  Adding the ability for users to
insert actions that only make sense at the datapath level sounds
wrong, especially to work around architectural issues at a higher
level.

Cheers,

Eelco

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to