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) }