1. The neutron "Port Bindings Extended" API extension is available
2. Both the source and target nova-compute service versions in the "services" table in the cell database are version >= 35, which if you're running Rocky everywhere should be the case, but you said you have some RDO computes that are still Queens.
This scenario doesn't really make sense to me:
1. RDO -> RDO use the old flow (only one entry in the ml2_port_bindings table at all times)
Because if the RDO nodes are running Rocky code, they should hit this in the live migration task in the conductor service:
https:/ /github. com/openstack/ nova/blob/ stable/ rocky/nova/ conductor/ tasks/live_ migrate. py#L282
Which enables the new flow if:
1. The neutron "Port Bindings Extended" API extension is available
2. Both the source and target nova-compute service versions in the "services" table in the cell database are version >= 35, which if you're running Rocky everywhere should be the case, but you said you have some RDO computes that are still Queens.
So I'd double check that first.