github.com/tonistiigi/docker@v0.10.1-0.20240229224939-974013b0dc6a/libnetwork/drivers_linux.go (about) 1 package libnetwork 2 3 import ( 4 "fmt" 5 6 "github.com/docker/docker/libnetwork/driverapi" 7 "github.com/docker/docker/libnetwork/drivers/bridge" 8 "github.com/docker/docker/libnetwork/drivers/host" 9 "github.com/docker/docker/libnetwork/drivers/ipvlan" 10 "github.com/docker/docker/libnetwork/drivers/macvlan" 11 "github.com/docker/docker/libnetwork/drivers/null" 12 "github.com/docker/docker/libnetwork/drivers/overlay" 13 ) 14 15 func registerNetworkDrivers(r driverapi.Registerer, driverConfig func(string) map[string]interface{}) error { 16 noConfig := func(fn func(driverapi.Registerer) error) func(driverapi.Registerer, map[string]interface{}) error { 17 return func(r driverapi.Registerer, _ map[string]interface{}) error { return fn(r) } 18 } 19 20 for _, nr := range []struct { 21 ntype string 22 register func(driverapi.Registerer, map[string]interface{}) error 23 }{ 24 {ntype: bridge.NetworkType, register: bridge.Register}, 25 {ntype: host.NetworkType, register: noConfig(host.Register)}, 26 {ntype: ipvlan.NetworkType, register: ipvlan.Register}, 27 {ntype: macvlan.NetworkType, register: macvlan.Register}, 28 {ntype: null.NetworkType, register: noConfig(null.Register)}, 29 {ntype: overlay.NetworkType, register: overlay.Register}, 30 } { 31 if err := nr.register(r, driverConfig(nr.ntype)); err != nil { 32 return fmt.Errorf("failed to register %q driver: %w", nr.ntype, err) 33 } 34 } 35 36 return nil 37 }