mirror of
https://github.com/containers/podman.git
synced 2025-05-20 16:47:39 +08:00
Make slirp MTU configurable (network_cmd_options)
The mtu default value is currently forced to 65520. This let the user control it using the config key network_cmd_options, i.e.: network_cmd_options=["mtu=9000"] Signed-off-by: bitstrings <pino.silvaggio@gmail.com>
This commit is contained in:
@ -15,6 +15,7 @@ import (
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
@ -42,6 +43,9 @@ const (
|
||||
|
||||
// slirp4netnsDNS is the IP for the built-in DNS server in the slirp network
|
||||
slirp4netnsDNS = "10.0.2.3"
|
||||
|
||||
// slirp4netnsMTU the default MTU override
|
||||
slirp4netnsMTU = 65520
|
||||
)
|
||||
|
||||
// Get an OCICNI network config
|
||||
@ -282,6 +286,7 @@ func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
||||
enableIPv6 := false
|
||||
outboundAddr := ""
|
||||
outboundAddr6 := ""
|
||||
mtu := slirp4netnsMTU
|
||||
|
||||
if ctr.config.NetworkOptions != nil {
|
||||
slirpOptions = append(slirpOptions, ctr.config.NetworkOptions["slirp4netns"]...)
|
||||
@ -345,6 +350,11 @@ func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
||||
}
|
||||
}
|
||||
outboundAddr6 = value
|
||||
case "mtu":
|
||||
mtu, err = strconv.Atoi(value)
|
||||
if mtu < 68 || err != nil {
|
||||
return errors.Errorf("invalid mtu %q", value)
|
||||
}
|
||||
default:
|
||||
return errors.Errorf("unknown option for slirp4netns: %q", o)
|
||||
}
|
||||
@ -358,8 +368,8 @@ func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
||||
if disableHostLoopback && slirpFeatures.HasDisableHostLoopback {
|
||||
cmdArgs = append(cmdArgs, "--disable-host-loopback")
|
||||
}
|
||||
if slirpFeatures.HasMTU {
|
||||
cmdArgs = append(cmdArgs, "--mtu", "65520")
|
||||
if mtu > -1 && slirpFeatures.HasMTU {
|
||||
cmdArgs = append(cmdArgs, fmt.Sprintf("--mtu=%d", mtu))
|
||||
}
|
||||
if !noPivotRoot && slirpFeatures.HasEnableSandbox {
|
||||
cmdArgs = append(cmdArgs, "--enable-sandbox")
|
||||
|
Reference in New Issue
Block a user