> On 7 May 2026, at 4:09 PM, Ilya Maximets <[email protected]> wrote: > > !-------------------------------------------------------------------| > CAUTION: External Email > > |-------------------------------------------------------------------! > > On 5/4/26 11:19 AM, Naveen Yerramneni wrote: >> clone_xlate_actions() has two code paths. The non-reversible path >> saves and restores ctx->conntracked across the inner actions, but >> the reversible path does not. >> >> This is a problem for flows like: >> clone(ct_clear, <actions>), ct_clear, resubmit(,N) >> >> The ct_clear inside the clone sets ctx->conntracked to false. After >> the clone returns, the flag stays false but flow.ct_state is >> restored by xretain_state_restore_and_free(). The ct_clear that >> follows the clone then does nothing, because OFPACT_CT_CLEAR runs >> only when ctx->conntracked is true. The original packet keeps its >> old ct_state, and the ct_clear did not take effect. >> >> Move OFPACT_CT_CLEAR to the non-reversible list so clone(ct_clear, >> <actions>) goes through the path that wraps the inner actions in a >> datapath clone and properly isolates ctx->conntracked from the >> outer context. >> >> Test added in tests/ofproto-dpif.at. >> >> Fixes: 1fe178d251c8 ("dpif: Add support for OVS_ACTION_ATTR_CT_CLEAR") >> Reported-by: Ashwin Balaji S <[email protected]> >> Signed-off-by: Naveen Yerramneni <[email protected]> >> --- >> v2: >> - Addressed review comments from Ilya Maximets. >> --- >> ofproto/ofproto-dpif-xlate.c | 2 +- >> tests/ofproto-dpif.at | 24 ++++++++++++++++++++++++ >> 2 files changed, 25 insertions(+), 1 deletion(-) > > Thanks, Naveen! > > I added a small note about this action being actually non-reversible > into the commit message, fixed a couple small style issues in the test > and applied the patch. Backported down to 3.3.
Thanks Ilya! > > Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
