On Fri, Sep 9, 2022 at 11:50 AM wangchuanlei <[email protected]> wrote:
whem vm migrating from node A to node B. One ovs interface is
created on B , and attached to br-int. At this time, vm is
still on node A. On node B, In procedure of pinctrl_run,
function send_grap_rarp_prepare notice the created interface,
then send a grap, which will lead the mac table on network
changed. Then, network flows to vm on node A will be forwards
to node B. But the process of vm migration has not accomplished.
So, other clients lost connection to vm.

Here, if port's chassis is not on node B, grap packet sent
from controller is stopped, fix the bug descriped upper.

Signed-off-by: wangchuanlei <[email protected]>
---
 controller/pinctrl.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index 3f5d0af79..41b9c350c 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -5944,6 +5944,10 @@ send_garp_rarp_prepare(struct ovsdb_idl_txn 
*ovnsb_idl_txn,
     SSET_FOR_EACH (iface_id, &localnet_vifs) {
         const struct sbrec_port_binding *pb = lport_lookup_by_name(
             sbrec_port_binding_by_name, iface_id);
+        if (pb->chassis && pb->chassis != chassis) {
+            continue;
+        }
+
         if (pb) {
             send_garp_rarp_update(ovnsb_idl_txn,
                                   sbrec_mac_binding_by_lport_ip,
-- 
2.27.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Hi, 
this seems to be already addressed by existing commit [0]. 
It looks like the same scenario to me, please correct me if I am wrong.
Thanks you,
Ales

[0] 
https://github.com/ovn-org/ovn/commit/c4355b09363aa1f6b0e2c895df0ca3a173c8b2a4

-----------------------------------------------
Yes, it's the same problem.
Thank you!
wangchuanlei



_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to