浏览代码

- Moved label definitions to a new package
- Added a network scope well-defined label
to enable ipv6

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>

Jana Radhakrishnan 10 年之前
父节点
当前提交
c9b54861e7

+ 2 - 2
libnetwork/README.md

@@ -29,7 +29,7 @@ There are many networking solutions available to suit a broad range of use-cases
 
 
         driverOptions := options.Generic{}
         driverOptions := options.Generic{}
         genericOption := make(map[string]interface{})
         genericOption := make(map[string]interface{})
-        genericOption[options.GenericData] = driverOptions
+        genericOption[netlabel.GenericData] = driverOptions
         err := controller.ConfigureNetworkDriver(networkType, genericOption)
         err := controller.ConfigureNetworkDriver(networkType, genericOption)
         if err != nil {
         if err != nil {
                 return
                 return
@@ -64,7 +64,7 @@ There are many networking solutions available to suit a broad range of use-cases
 
 
 		// libentwork client can check the endpoint's operational data via the Info() API
 		// libentwork client can check the endpoint's operational data via the Info() API
 		epInfo, err := ep.Info()
 		epInfo, err := ep.Info()
-		mapData, ok := epInfo[options.PortMap]
+		mapData, ok := epInfo[netlabel.PortMap]
 		if ok {
 		if ok {
 			portMapping, ok := mapData.([]netutils.PortBinding)
 			portMapping, ok := mapData.([]netutils.PortBinding)
 			if ok {
 			if ok {

+ 3 - 2
libnetwork/cmd/readme_test/readme.go

@@ -5,6 +5,7 @@ import (
 
 
 	"github.com/docker/libnetwork"
 	"github.com/docker/libnetwork"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
+	"github.com/docker/libnetwork/pkg/netlabel"
 	"github.com/docker/libnetwork/pkg/options"
 	"github.com/docker/libnetwork/pkg/options"
 )
 )
 
 
@@ -17,7 +18,7 @@ func main() {
 
 
 	driverOptions := options.Generic{}
 	driverOptions := options.Generic{}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = driverOptions
+	genericOption[netlabel.GenericData] = driverOptions
 	err := controller.ConfigureNetworkDriver(networkType, genericOption)
 	err := controller.ConfigureNetworkDriver(networkType, genericOption)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -52,7 +53,7 @@ func main() {
 
 
 	// libentwork client can check the endpoint's operational data via the Info() API
 	// libentwork client can check the endpoint's operational data via the Info() API
 	epInfo, err := ep.Info()
 	epInfo, err := ep.Info()
-	mapData, ok := epInfo[options.PortMap]
+	mapData, ok := epInfo[netlabel.PortMap]
 	if ok {
 	if ok {
 		portMapping, ok := mapData.([]netutils.PortBinding)
 		portMapping, ok := mapData.([]netutils.PortBinding)
 		if ok {
 		if ok {

+ 1 - 1
libnetwork/controller.go

@@ -10,7 +10,7 @@ create network namespaces and allocate interfaces for containers to use.
 
 
         driverOptions := options.Generic{}
         driverOptions := options.Generic{}
         genericOption := make(map[string]interface{})
         genericOption := make(map[string]interface{})
-        genericOption[options.GenericData] = driverOptions
+        genericOption[netlabel.GenericData] = driverOptions
         err := controller.ConfigureNetworkDriver(networkType, genericOption)
         err := controller.ConfigureNetworkDriver(networkType, genericOption)
         if err != nil {
         if err != nil {
                 return
                 return

+ 8 - 7
libnetwork/drivers/bridge/bridge.go

@@ -8,6 +8,7 @@ import (
 	"github.com/docker/libnetwork/driverapi"
 	"github.com/docker/libnetwork/driverapi"
 	"github.com/docker/libnetwork/ipallocator"
 	"github.com/docker/libnetwork/ipallocator"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
+	"github.com/docker/libnetwork/pkg/netlabel"
 	"github.com/docker/libnetwork/pkg/options"
 	"github.com/docker/libnetwork/pkg/options"
 	"github.com/docker/libnetwork/portmapper"
 	"github.com/docker/libnetwork/portmapper"
 	"github.com/docker/libnetwork/sandbox"
 	"github.com/docker/libnetwork/sandbox"
@@ -156,7 +157,7 @@ func (d *driver) Config(option map[string]interface{}) error {
 		return ErrConfigExists
 		return ErrConfigExists
 	}
 	}
 
 
-	genericData := option[options.GenericData]
+	genericData := option[netlabel.GenericData]
 	if genericData != nil {
 	if genericData != nil {
 		switch opt := genericData.(type) {
 		switch opt := genericData.(type) {
 		case options.Generic:
 		case options.Generic:
@@ -617,11 +618,11 @@ func (d *driver) EndpointInfo(nid, eid types.UUID) (map[string]interface{}, erro
 		for _, pm := range ep.portMapping {
 		for _, pm := range ep.portMapping {
 			pmc = append(pmc, pm.GetCopy())
 			pmc = append(pmc, pm.GetCopy())
 		}
 		}
-		m[options.PortMap] = pmc
+		m[netlabel.PortMap] = pmc
 	}
 	}
 
 
 	if len(ep.macAddress) != 0 {
 	if len(ep.macAddress) != 0 {
-		m[options.MacAddress] = ep.macAddress
+		m[netlabel.MacAddress] = ep.macAddress
 	}
 	}
 
 
 	return m, nil
 	return m, nil
@@ -762,7 +763,7 @@ func parseEndpointOptions(epOptions map[string]interface{}) (*EndpointConfigurat
 
 
 	ec := &EndpointConfiguration{}
 	ec := &EndpointConfiguration{}
 
 
-	if opt, ok := epOptions[options.MacAddress]; ok {
+	if opt, ok := epOptions[netlabel.MacAddress]; ok {
 		if mac, ok := opt.(net.HardwareAddr); ok {
 		if mac, ok := opt.(net.HardwareAddr); ok {
 			ec.MacAddress = mac
 			ec.MacAddress = mac
 		} else {
 		} else {
@@ -770,7 +771,7 @@ func parseEndpointOptions(epOptions map[string]interface{}) (*EndpointConfigurat
 		}
 		}
 	}
 	}
 
 
-	if opt, ok := epOptions[options.PortMap]; ok {
+	if opt, ok := epOptions[netlabel.PortMap]; ok {
 		if bs, ok := opt.([]netutils.PortBinding); ok {
 		if bs, ok := opt.([]netutils.PortBinding); ok {
 			ec.PortBindings = bs
 			ec.PortBindings = bs
 		} else {
 		} else {
@@ -778,7 +779,7 @@ func parseEndpointOptions(epOptions map[string]interface{}) (*EndpointConfigurat
 		}
 		}
 	}
 	}
 
 
-	if opt, ok := epOptions[options.ExposedPorts]; ok {
+	if opt, ok := epOptions[netlabel.ExposedPorts]; ok {
 		if ports, ok := opt.([]netutils.TransportPort); ok {
 		if ports, ok := opt.([]netutils.TransportPort); ok {
 			ec.ExposedPorts = ports
 			ec.ExposedPorts = ports
 		} else {
 		} else {
@@ -793,7 +794,7 @@ func parseContainerOptions(cOptions map[string]interface{}) (*ContainerConfigura
 	if cOptions == nil {
 	if cOptions == nil {
 		return nil, nil
 		return nil, nil
 	}
 	}
-	genericData := cOptions[options.GenericData]
+	genericData := cOptions[netlabel.GenericData]
 	if genericData == nil {
 	if genericData == nil {
 		return nil, nil
 		return nil, nil
 	}
 	}

+ 14 - 14
libnetwork/drivers/bridge/bridge_test.go

@@ -9,7 +9,7 @@ import (
 
 
 	"github.com/docker/docker/pkg/iptables"
 	"github.com/docker/docker/pkg/iptables"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
-	"github.com/docker/libnetwork/pkg/options"
+	"github.com/docker/libnetwork/pkg/netlabel"
 	"github.com/vishvananda/netlink"
 	"github.com/vishvananda/netlink"
 )
 )
 
 
@@ -26,7 +26,7 @@ func TestCreateFullOptions(t *testing.T) {
 	}
 	}
 	_, config.FixedCIDRv6, _ = net.ParseCIDR("2001:db8::/48")
 	_, config.FixedCIDRv6, _ = net.ParseCIDR("2001:db8::/48")
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -44,7 +44,7 @@ func TestCreate(t *testing.T) {
 
 
 	config := &Configuration{BridgeName: DefaultBridgeName}
 	config := &Configuration{BridgeName: DefaultBridgeName}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -61,7 +61,7 @@ func TestCreateFail(t *testing.T) {
 
 
 	config := &Configuration{BridgeName: "dummy0"}
 	config := &Configuration{BridgeName: "dummy0"}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -83,7 +83,7 @@ func TestQueryEndpointInfo(t *testing.T) {
 		EnableICC:      false,
 		EnableICC:      false,
 	}
 	}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -96,7 +96,7 @@ func TestQueryEndpointInfo(t *testing.T) {
 
 
 	portMappings := getPortMapping()
 	portMappings := getPortMapping()
 	epOptions := make(map[string]interface{})
 	epOptions := make(map[string]interface{})
-	epOptions[options.PortMap] = portMappings
+	epOptions[netlabel.PortMap] = portMappings
 
 
 	_, err = d.CreateEndpoint("net1", "ep1", epOptions)
 	_, err = d.CreateEndpoint("net1", "ep1", epOptions)
 	if err != nil {
 	if err != nil {
@@ -109,7 +109,7 @@ func TestQueryEndpointInfo(t *testing.T) {
 	if err != nil {
 	if err != nil {
 		t.Fatalf("Failed to ask for endpoint operational data:  %v", err)
 		t.Fatalf("Failed to ask for endpoint operational data:  %v", err)
 	}
 	}
-	pmd, ok := data[options.PortMap]
+	pmd, ok := data[netlabel.PortMap]
 	if !ok {
 	if !ok {
 		t.Fatalf("Endpoint operational data does not contain port mapping data")
 		t.Fatalf("Endpoint operational data does not contain port mapping data")
 	}
 	}
@@ -140,7 +140,7 @@ func TestCreateLinkWithOptions(t *testing.T) {
 
 
 	config := &Configuration{BridgeName: DefaultBridgeName}
 	config := &Configuration{BridgeName: DefaultBridgeName}
 	driverOptions := make(map[string]interface{})
 	driverOptions := make(map[string]interface{})
-	driverOptions[options.GenericData] = config
+	driverOptions[netlabel.GenericData] = config
 
 
 	if err := d.Config(driverOptions); err != nil {
 	if err := d.Config(driverOptions); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -153,7 +153,7 @@ func TestCreateLinkWithOptions(t *testing.T) {
 
 
 	mac := net.HardwareAddr([]byte{0x1e, 0x67, 0x66, 0x44, 0x55, 0x66})
 	mac := net.HardwareAddr([]byte{0x1e, 0x67, 0x66, 0x44, 0x55, 0x66})
 	epOptions := make(map[string]interface{})
 	epOptions := make(map[string]interface{})
-	epOptions[options.MacAddress] = mac
+	epOptions[netlabel.MacAddress] = mac
 
 
 	sinfo, err := d.CreateEndpoint("net1", "ep", epOptions)
 	sinfo, err := d.CreateEndpoint("net1", "ep", epOptions)
 	if err != nil {
 	if err != nil {
@@ -198,7 +198,7 @@ func TestLinkContainers(t *testing.T) {
 		EnableICC:      false,
 		EnableICC:      false,
 	}
 	}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -211,7 +211,7 @@ func TestLinkContainers(t *testing.T) {
 
 
 	exposedPorts := getExposedPorts()
 	exposedPorts := getExposedPorts()
 	epOptions := make(map[string]interface{})
 	epOptions := make(map[string]interface{})
-	epOptions[options.ExposedPorts] = exposedPorts
+	epOptions[netlabel.ExposedPorts] = exposedPorts
 
 
 	sinfo, err := d.CreateEndpoint("net1", "ep1", epOptions)
 	sinfo, err := d.CreateEndpoint("net1", "ep1", epOptions)
 	if err != nil {
 	if err != nil {
@@ -236,7 +236,7 @@ func TestLinkContainers(t *testing.T) {
 	ce := []string{"ep1"}
 	ce := []string{"ep1"}
 	cConfig := &ContainerConfiguration{ChildEndpoints: ce}
 	cConfig := &ContainerConfiguration{ChildEndpoints: ce}
 	genericOption = make(map[string]interface{})
 	genericOption = make(map[string]interface{})
-	genericOption[options.GenericData] = cConfig
+	genericOption[netlabel.GenericData] = cConfig
 
 
 	_, err = d.Join("net1", "ep2", "", genericOption)
 	_, err = d.Join("net1", "ep2", "", genericOption)
 	if err != nil {
 	if err != nil {
@@ -284,7 +284,7 @@ func TestLinkContainers(t *testing.T) {
 	ce = []string{"ep1", "ep4"}
 	ce = []string{"ep1", "ep4"}
 	cConfig = &ContainerConfiguration{ChildEndpoints: ce}
 	cConfig = &ContainerConfiguration{ChildEndpoints: ce}
 	genericOption = make(map[string]interface{})
 	genericOption = make(map[string]interface{})
-	genericOption[options.GenericData] = cConfig
+	genericOption[netlabel.GenericData] = cConfig
 
 
 	_, err = d.Join("net1", "ep2", "", genericOption)
 	_, err = d.Join("net1", "ep2", "", genericOption)
 	if err != nil {
 	if err != nil {
@@ -415,7 +415,7 @@ func TestSetDefaultGw(t *testing.T) {
 	}
 	}
 
 
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)

+ 5 - 5
libnetwork/drivers/bridge/network_test.go

@@ -5,7 +5,7 @@ import (
 
 
 	"github.com/docker/libnetwork/driverapi"
 	"github.com/docker/libnetwork/driverapi"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
-	"github.com/docker/libnetwork/pkg/options"
+	"github.com/docker/libnetwork/pkg/netlabel"
 	"github.com/vishvananda/netlink"
 	"github.com/vishvananda/netlink"
 )
 )
 
 
@@ -21,7 +21,7 @@ func TestLinkCreate(t *testing.T) {
 		EnableIPv6: true,
 		EnableIPv6: true,
 	}
 	}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
 	}
 	}
@@ -106,7 +106,7 @@ func TestLinkCreateTwo(t *testing.T) {
 		BridgeName: DefaultBridgeName,
 		BridgeName: DefaultBridgeName,
 		EnableIPv6: true}
 		EnableIPv6: true}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
 	}
 	}
@@ -138,7 +138,7 @@ func TestLinkCreateNoEnableIPv6(t *testing.T) {
 	config := &Configuration{
 	config := &Configuration{
 		BridgeName: DefaultBridgeName}
 		BridgeName: DefaultBridgeName}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)
@@ -172,7 +172,7 @@ func TestLinkDelete(t *testing.T) {
 		BridgeName: DefaultBridgeName,
 		BridgeName: DefaultBridgeName,
 		EnableIPv6: true}
 		EnableIPv6: true}
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = config
+	genericOption[netlabel.GenericData] = config
 
 
 	if err := d.Config(genericOption); err != nil {
 	if err := d.Config(genericOption); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)

+ 3 - 3
libnetwork/drivers/bridge/port_mapping_test.go

@@ -6,7 +6,7 @@ import (
 
 
 	"github.com/docker/docker/pkg/reexec"
 	"github.com/docker/docker/pkg/reexec"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
-	"github.com/docker/libnetwork/pkg/options"
+	"github.com/docker/libnetwork/pkg/netlabel"
 )
 )
 
 
 func TestMain(m *testing.M) {
 func TestMain(m *testing.M) {
@@ -25,14 +25,14 @@ func TestPortMappingConfig(t *testing.T) {
 	portBindings := []netutils.PortBinding{binding1, binding2}
 	portBindings := []netutils.PortBinding{binding1, binding2}
 
 
 	epOptions := make(map[string]interface{})
 	epOptions := make(map[string]interface{})
-	epOptions[options.PortMap] = portBindings
+	epOptions[netlabel.PortMap] = portBindings
 
 
 	driverConfig := &Configuration{
 	driverConfig := &Configuration{
 		BridgeName:     DefaultBridgeName,
 		BridgeName:     DefaultBridgeName,
 		EnableIPTables: true,
 		EnableIPTables: true,
 	}
 	}
 	driverOptions := make(map[string]interface{})
 	driverOptions := make(map[string]interface{})
-	driverOptions[options.GenericData] = driverConfig
+	driverOptions[netlabel.GenericData] = driverConfig
 
 
 	if err := d.Config(driverOptions); err != nil {
 	if err := d.Config(driverOptions); err != nil {
 		t.Fatalf("Failed to setup driver config: %v", err)
 		t.Fatalf("Failed to setup driver config: %v", err)

+ 3 - 3
libnetwork/endpoint.go

@@ -10,7 +10,7 @@ import (
 	"github.com/docker/docker/pkg/resolvconf"
 	"github.com/docker/docker/pkg/resolvconf"
 	"github.com/docker/libnetwork/driverapi"
 	"github.com/docker/libnetwork/driverapi"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
-	"github.com/docker/libnetwork/pkg/options"
+	"github.com/docker/libnetwork/pkg/netlabel"
 	"github.com/docker/libnetwork/sandbox"
 	"github.com/docker/libnetwork/sandbox"
 	"github.com/docker/libnetwork/types"
 	"github.com/docker/libnetwork/types"
 )
 )
@@ -504,7 +504,7 @@ func CreateOptionExposedPorts(exposedPorts []netutils.TransportPort) EndpointOpt
 		copy(eps, exposedPorts)
 		copy(eps, exposedPorts)
 		// Store endpoint label and in generic because driver needs it
 		// Store endpoint label and in generic because driver needs it
 		ep.exposedPorts = eps
 		ep.exposedPorts = eps
-		ep.generic[options.ExposedPorts] = eps
+		ep.generic[netlabel.ExposedPorts] = eps
 	}
 	}
 }
 }
 
 
@@ -515,7 +515,7 @@ func CreateOptionPortMapping(portBindings []netutils.PortBinding) EndpointOption
 		// Store a copy of the bindings as generic data to pass to the driver
 		// Store a copy of the bindings as generic data to pass to the driver
 		pbs := make([]netutils.PortBinding, len(portBindings))
 		pbs := make([]netutils.PortBinding, len(portBindings))
 		copy(pbs, portBindings)
 		copy(pbs, portBindings)
-		ep.generic[options.PortMap] = pbs
+		ep.generic[netlabel.PortMap] = pbs
 	}
 	}
 }
 }
 
 

+ 5 - 4
libnetwork/libnetwork_test.go

@@ -9,6 +9,7 @@ import (
 	"github.com/docker/docker/pkg/reexec"
 	"github.com/docker/docker/pkg/reexec"
 	"github.com/docker/libnetwork"
 	"github.com/docker/libnetwork"
 	"github.com/docker/libnetwork/netutils"
 	"github.com/docker/libnetwork/netutils"
+	"github.com/docker/libnetwork/pkg/netlabel"
 	"github.com/docker/libnetwork/pkg/options"
 	"github.com/docker/libnetwork/pkg/options"
 )
 )
 
 
@@ -27,7 +28,7 @@ func TestMain(m *testing.M) {
 func createTestNetwork(networkType, networkName string, option options.Generic) (libnetwork.Network, error) {
 func createTestNetwork(networkType, networkName string, option options.Generic) (libnetwork.Network, error) {
 	controller := libnetwork.New()
 	controller := libnetwork.New()
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = option
+	genericOption[netlabel.GenericData] = option
 
 
 	err := controller.ConfigureNetworkDriver(networkType, genericOption)
 	err := controller.ConfigureNetworkDriver(networkType, genericOption)
 	if err != nil {
 	if err != nil {
@@ -44,7 +45,7 @@ func createTestNetwork(networkType, networkName string, option options.Generic)
 
 
 func getEmptyGenericOption() map[string]interface{} {
 func getEmptyGenericOption() map[string]interface{} {
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = options.Generic{}
+	genericOption[netlabel.GenericData] = options.Generic{}
 	return genericOption
 	return genericOption
 }
 }
 
 
@@ -170,7 +171,7 @@ func TestBridge(t *testing.T) {
 	if err != nil {
 	if err != nil {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
-	pmd, ok := epInfo[options.PortMap]
+	pmd, ok := epInfo[netlabel.PortMap]
 	if !ok {
 	if !ok {
 		t.Fatalf("Could not find expected info in endpoint data")
 		t.Fatalf("Could not find expected info in endpoint data")
 	}
 	}
@@ -237,7 +238,7 @@ func TestDuplicateNetwork(t *testing.T) {
 	controller := libnetwork.New()
 	controller := libnetwork.New()
 
 
 	genericOption := make(map[string]interface{})
 	genericOption := make(map[string]interface{})
-	genericOption[options.GenericData] = options.Generic{}
+	genericOption[netlabel.GenericData] = options.Generic{}
 
 
 	err := controller.ConfigureNetworkDriver(bridgeNetType, genericOption)
 	err := controller.ConfigureNetworkDriver(bridgeNetType, genericOption)
 	if err != nil {
 	if err != nil {

+ 18 - 0
libnetwork/pkg/netlabel/labels.go

@@ -0,0 +1,18 @@
+package netlabel
+
+const (
+	// GenericData constant that helps to identify an option as a Generic constant
+	GenericData = "io.docker.network.generic"
+
+	// PortMap constant represents Port Mapping
+	PortMap = "io.docker.network.endpoint.portmap"
+
+	// MacAddress constant represents Mac Address config of a Container
+	MacAddress = "io.docker.network.endpoint.macaddress"
+
+	// ExposedPorts constant represents exposedports of a Container
+	ExposedPorts = "io.docker.network.endpoint.exposedports"
+
+	//EnableIPv6 constant represents enabling IPV6 at network level
+	EnableIPv6 = "io.docker.network.enable_ipv6"
+)

+ 0 - 11
libnetwork/pkg/options/options.go

@@ -7,17 +7,6 @@ import (
 	"reflect"
 	"reflect"
 )
 )
 
 
-const (
-	// GenericData constant that helps to identify an option as a Generic constant
-	GenericData = "io.docker.network.generic"
-	// PortMap constant represents Port Mapping
-	PortMap = "io.docker.network.endpoint.portmap"
-	// MacAddress constant represents Mac Address config of a Container
-	MacAddress = "io.docker.network.endpoint.macaddress"
-	// ExposedPorts constant represents exposedports of a Container
-	ExposedPorts = "io.docker.network.endpoint.exposedports"
-)
-
 // NoSuchFieldError is the error returned when the generic parameters hold a
 // NoSuchFieldError is the error returned when the generic parameters hold a
 // value for a field absent from the destination structure.
 // value for a field absent from the destination structure.
 type NoSuchFieldError struct {
 type NoSuchFieldError struct {