diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-02-03 05:00:24 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-03 05:00:24 -0500 |
commit | 97421651d3821a03eab319befdedcf554c31a2f9 (patch) | |
tree | 1ed7aba24817c7ad8d57b5d90b272857ab46a610 /libpod/network/netconflist.go | |
parent | 881f3d788d48b683e674d1f9778d581370c9c11e (diff) | |
parent | bd0e22ed14ca09a7b656f4603c13aac3a4066968 (diff) | |
download | podman-97421651d3821a03eab319befdedcf554c31a2f9.tar.gz podman-97421651d3821a03eab319befdedcf554c31a2f9.tar.bz2 podman-97421651d3821a03eab319befdedcf554c31a2f9.zip |
Merge pull request #9204 from baude/macvlanextra
Honor network options for macvlan networks
Diffstat (limited to 'libpod/network/netconflist.go')
-rw-r--r-- | libpod/network/netconflist.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libpod/network/netconflist.go b/libpod/network/netconflist.go index ca6a4a70b..9be98e78f 100644 --- a/libpod/network/netconflist.go +++ b/libpod/network/netconflist.go @@ -172,19 +172,31 @@ func HasDNSNamePlugin(paths []string) bool { } // NewMacVLANPlugin creates a macvlanconfig with a given device name -func NewMacVLANPlugin(device string) MacVLANConfig { +func NewMacVLANPlugin(device string, gateway net.IP, ipRange *net.IPNet, subnet *net.IPNet, mtu int) (MacVLANConfig, error) { i := IPAMDHCP{DHCP: "dhcp"} + if gateway != nil || ipRange != nil || subnet != nil { + ipam, err := NewIPAMLocalHostRange(subnet, ipRange, gateway) + if err != nil { + return MacVLANConfig{}, err + } + ranges := make([][]IPAMLocalHostRangeConf, 0) + ranges = append(ranges, ipam) + i.Ranges = ranges + } m := MacVLANConfig{ PluginType: "macvlan", IPAM: i, } + if mtu > 0 { + m.MTU = mtu + } // CNI is supposed to use the default route if a // parent device is not provided if len(device) > 0 { m.Master = device } - return m + return m, nil } // IfPassesFilter filters NetworkListReport and returns true if the filter match the given config |