vlan: add MTU validation in loadNetConf
Signed-off-by: Bruce Ma <brucema19901024@gmail.com>
This commit is contained in:
parent
a16232968d
commit
bee8d6cf30
@ -58,9 +58,27 @@ func loadConf(bytes []byte) (*NetConf, string, error) {
|
|||||||
if n.VlanId < 0 || n.VlanId > 4094 {
|
if n.VlanId < 0 || n.VlanId > 4094 {
|
||||||
return nil, "", fmt.Errorf("invalid VLAN ID %d (must be between 0 and 4095 inclusive)", n.VlanId)
|
return nil, "", fmt.Errorf("invalid VLAN ID %d (must be between 0 and 4095 inclusive)", n.VlanId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check existing and MTU of master interface
|
||||||
|
masterMTU, err := getMTUByName(n.Master)
|
||||||
|
if err != nil {
|
||||||
|
return nil, "", err
|
||||||
|
}
|
||||||
|
if n.MTU < 0 || n.MTU > masterMTU {
|
||||||
|
return nil, "", fmt.Errorf("invalid MTU %d, must be [0, master MTU(%d)]", n.MTU, masterMTU)
|
||||||
|
}
|
||||||
|
|
||||||
return n, n.CNIVersion, nil
|
return n, n.CNIVersion, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getMTUByName(ifName string) (int, error) {
|
||||||
|
link, err := netlink.LinkByName(ifName)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return link.Attrs().MTU, nil
|
||||||
|
}
|
||||||
|
|
||||||
func createVlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Interface, error) {
|
func createVlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Interface, error) {
|
||||||
vlan := ¤t.Interface{}
|
vlan := ¤t.Interface{}
|
||||||
|
|
||||||
@ -76,10 +94,6 @@ func createVlan(conf *NetConf, ifName string, netns ns.NetNS) (*current.Interfac
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if conf.MTU <= 0 {
|
|
||||||
conf.MTU = m.Attrs().MTU
|
|
||||||
}
|
|
||||||
|
|
||||||
v := &netlink.Vlan{
|
v := &netlink.Vlan{
|
||||||
LinkAttrs: netlink.LinkAttrs{
|
LinkAttrs: netlink.LinkAttrs{
|
||||||
MTU: conf.MTU,
|
MTU: conf.MTU,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user