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
