// setupVethNetwork uses the Network config if it is not nil to initialize // the new veth interface inside the container for use by changing the name to eth0 // setting the MTU and IP address along with the default gateway func setupNetwork(container *libcontainer.Container, context libcontainer.Context) error { for _, config := range container.Networks { strategy, err := network.GetStrategy(config.Type) if err != nil { return err } return strategy.Initialize(config, context) } return nil }
// InitializeNetworking creates the container's network stack outside of the namespace and moves // interfaces into the container's net namespaces if necessary func InitializeNetworking(container *libcontainer.Container, nspid int, pipe *SyncPipe) error { context := libcontainer.Context{} for _, config := range container.Networks { strategy, err := network.GetStrategy(config.Type) if err != nil { return err } if err := strategy.Create(config, nspid, context); err != nil { return err } } return pipe.SendToChild(context) }