From dabea2d96905a490a624f2c80147b6ffdbe5f834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E5=8F=88=E8=A2=81?= Date: Tue, 12 Sep 2023 17:55:25 +0800 Subject: [PATCH] fix vpc-peer dualstack bug (#3204) Signed-off-by: lynn901 --- pkg/ovs/ovn-nbctl-legacy.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pkg/ovs/ovn-nbctl-legacy.go b/pkg/ovs/ovn-nbctl-legacy.go index 929399be3de..e426541aea4 100644 --- a/pkg/ovs/ovn-nbctl-legacy.go +++ b/pkg/ovs/ovn-nbctl-legacy.go @@ -876,27 +876,29 @@ func (c LegacyClient) CreatePeerRouterPort(localRouter, remoteRouter, localRoute ipStr := strings.Split(localRouterPortIP, ",") if len(ipStr) == 2 { klog.Infof("add vpc lrp %s", localRouterPort) - _, err = c.ovnNbCommand(MayExist, "lrp-add", localRouter, localRouterPort, util.GenerateMac(), ipStr[0], ipStr[1], "--", - "set", "logical_router_port", localRouterPort, fmt.Sprintf("peer=%s", remoteRouterPort)) + _, err = c.ovnNbCommand(MayExist, "lrp-add", localRouter, localRouterPort, util.GenerateMac(), ipStr[0], ipStr[1], + fmt.Sprintf("peer=%s", remoteRouterPort)) } else { klog.Infof("add vpc lrp %s", localRouterPort) - _, err = c.ovnNbCommand(MayExist, "lrp-add", localRouter, localRouterPort, util.GenerateMac(), ipStr[0], "--", - "set", "logical_router_port", localRouterPort, fmt.Sprintf("peer=%s", remoteRouterPort)) + _, err = c.ovnNbCommand(MayExist, "lrp-add", localRouter, localRouterPort, util.GenerateMac(), ipStr[0], + fmt.Sprintf("peer=%s", remoteRouterPort)) } if err != nil { klog.Errorf("failed to create router port %s: %v", localRouterPort, err) return err } - } - - klog.Infof("set lrp %s, networks %s", localRouterPort, localRouterPortIP) - _, err = c.ovnNbCommand("set", "logical_router_port", localRouterPort, - fmt.Sprintf("networks=\"%s\"", strings.ReplaceAll(localRouterPortIP, ",", " "))) + } else { + klog.Infof("set lrp %s, networks %s", localRouterPort, localRouterPortIP) + networks := strings.ReplaceAll(strings.Join(strings.Split(localRouterPortIP, ","), " "), ":", "\\:") + _, err = c.ovnNbCommand("set", "logical_router_port", localRouterPort, + fmt.Sprintf("networks=%s", networks)) - if err != nil { - klog.Errorf("failed to set router port %s: %v", localRouterPort, err) - return err + if err != nil { + klog.Errorf("failed to set router port %s: %v", localRouterPort, err) + return err + } } + return nil }