123456789101112131415161718192021222324252627282930313233343536 |
- package network
- import (
- "fmt"
- "net"
- "strings"
- "github.com/coreos/flannel/backend"
- "github.com/coreos/flannel/backend/alloc"
- "github.com/coreos/flannel/backend/awsvpc"
- "github.com/coreos/flannel/backend/gce"
- "github.com/coreos/flannel/backend/hostgw"
- "github.com/coreos/flannel/backend/udp"
- "github.com/coreos/flannel/backend/vxlan"
- "github.com/coreos/flannel/subnet"
- )
- type beNewFunc func(sm subnet.Manager, extIface *net.Interface, extIaddr net.IP, extEaddr net.IP) (backend.Backend, error)
- var backendMap = map[string]beNewFunc {
- "udp": udp.New,
- "alloc": alloc.New,
- "host-gw": hostgw.New,
- "vxlan": vxlan.New,
- "aws-vpc": awsvpc.New,
- "gce": gce.New,
- }
- func newBackend(sm subnet.Manager, backendType string, extIface *net.Interface, extIaddr net.IP, extEaddr net.IP) (backend.Backend, error) {
- betype := strings.ToLower(backendType)
- befunc, ok := backendMap[betype]
- if !ok {
- return nil, fmt.Errorf("unknown backend type")
- }
- return befunc(sm, extIface, extIaddr, extEaddr)
- }
|