On 6/8/26 1:28 PM, Xavier Simonart wrote: > Hi Ales > > Thanks for the patch > > Patch looks good to me. > I was initially wondering whether OVN should reactively fix this instead > (i.e., detect a missing hwaddr/datapath-id and add it) since it already > sets the hwaddr when creating br-int. > However, I guess it's better not to do that: either OVN creates br-int and > manages datapath-id, or CMS creates br-int and is responsible for the > datapath-id. > > So, > Acked-by: Xavier Simonart <[email protected]> >
Hi Ales, Xavier, Thanks for the patch and review! I applied it to main and backported it all the way down to 24.03 to avoid these annoying CI false positives. Regards, Dumitru > Thanks > Xavier > > > On Mon, Jun 8, 2026 at 11:54 AM Ales Musil <[email protected]> wrote: > >> When a port with a globally-administered MAC address (e.g., >> 00:00:00:00:00:04) is added to br-int, OVS may recalculate the >> bridge datapath ID if no explicit datapath-id is configured. >> The new DPID causes OVS to tear down all OpenFlow connections >> to the bridge, since there is no OpenFlow message to notify >> the controller of a DPID change. >> >> This triggers ovn-controller's ofctrl_seqno_flush(), which >> resets the internal sequence counter to 0. If a flow update >> from before the reconnection is still in-flight, ofctrl_put() >> detects that the new req_cfg is smaller than the pending one >> and emits "req_cfg regressed from 2 to 1". >> >> Fix this by deriving a stable other-config:datapath-id from >> the bridge name in the ADD_BR macro. This ensures the DPID >> never changes when ports are added or removed, preventing >> spurious OpenFlow reconnections during tests. >> >> Assisted-by: Claude Opus 4.6, OpenCode >> Signed-off-by: Ales Musil <[email protected]> >> --- >> tests/system-common-macros.at | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at >> index b32fc0b68..b8237b483 100644 >> --- a/tests/system-common-macros.at >> +++ b/tests/system-common-macros.at >> @@ -42,7 +42,10 @@ m4_define([NS_CHECK_EXEC], >> # >> # Expands into the proper ovs-vsctl commands to create a bridge with the >> # appropriate type, and allows additional arguments to be passed. >> -m4_define([ADD_BR], [ovs-vsctl _ADD_BR([$1]) -- $2]) >> +# A stable datapath-id derived from the bridge name is set. >> +m4_define([ADD_BR], >> + [dpid=$(printf '%016x' $(echo '$1' | cksum | cut -d ' ' -f1)) >> + ovs-vsctl _ADD_BR([$1]) -- set Bridge $1 >> other-config:datapath-id="$dpid" -- $2]) >> >> # ADD_VETH([port], [namespace], [ovs-br], [ip_addr] [mac_addr], [gateway], >> # [ip_addr_flags] [ip6_addr] [gateway6]) >> -- >> 2.54.0 >> >> > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
