From e10d076ef8a004ee4a5af83c3e58df3b084dd5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A5=96=E5=BB=BA?= Date: Sun, 29 Jan 2023 10:55:09 +0800 Subject: [PATCH] fix setting mtu for ovs internal port (#2247) --- pkg/daemon/ovs_linux.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/pkg/daemon/ovs_linux.go b/pkg/daemon/ovs_linux.go index 8297fa9c30d..8b40fd59bb1 100644 --- a/pkg/daemon/ovs_linux.go +++ b/pkg/daemon/ovs_linux.go @@ -450,10 +450,6 @@ func configureMirrorLink(portName string, mtu int) error { return fmt.Errorf("can not find mirror nic %s: %v", portName, err) } - if err = netlink.LinkSetMTU(mirrorLink, mtu); err != nil { - return fmt.Errorf("can not set mirror nic mtu: %v", err) - } - if mirrorLink.Attrs().OperState != netlink.OperUp { if err = netlink.LinkSetUp(mirrorLink); err != nil { return fmt.Errorf("can not set mirror nic %s up: %v", portName, err) @@ -474,8 +470,13 @@ func configureNic(link, ip string, macAddr net.HardwareAddr, mtu int, detectIPCo } if mtu > 0 { - if err = netlink.LinkSetMTU(nodeLink, mtu); err != nil { - return fmt.Errorf("can not set nic %s mtu: %v", link, err) + if nodeLink.Type() == "openvswitch" { + _, err = ovs.Exec("set", "interface", link, fmt.Sprintf(`mtu_request=%d`, mtu)) + } else { + err = netlink.LinkSetMTU(nodeLink, mtu) + } + if err != nil { + return fmt.Errorf("failed to set nic %s mtu: %v", link, err) } } @@ -608,9 +609,6 @@ func configProviderNic(nicName, brName string) (int, error) { } } - if err = netlink.LinkSetMTU(bridge, nic.Attrs().MTU); err != nil { - return 0, fmt.Errorf("failed to set MTU of OVS bridge %s: %v", brName, err) - } if err = netlink.LinkSetUp(bridge); err != nil { return 0, fmt.Errorf("failed to set OVS bridge %s up: %v", brName, err) }