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
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to