Creating virtual networks
POST /v2.0/networks
Create a network.
The next step is to create a subnet for the network ID, as described in Creating virtual subnets.
Request
Parameters
Name | In | Type | Description |
---|---|---|---|
network
|
body | object | A network object. |
admin_state_up (Optional) |
body | boolean | The administrative state of the network, which is
up (true ) or down (false ). |
availability_zone_hints (Optional) |
body | array | The availability zone candidate for the network. |
dns_domain (Optional) |
body | string | A valid DNS domain. |
mtu (Optional) |
body | integer | The maximum transmission unit (MTU) value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. |
name (Optional) |
body | string | Human-readable name of the network. |
port_security_enabled (Optional) |
body | boolean | The port security status of the network. Valid values are
enabled (true ) and disabled (false ).
This value is used as the default value of port_security_enabled
field of a newly created port. |
project_id (Optional) |
body | string | The ID of the project that owns the resource. Only administrative and users with advsvc role can specify a project ID other than their own. You cannot change this value through authorization policies. |
provider:network_type (Optional) |
body | string | The type of physical network that this network should be mapped to.
For example, flat , vlan , vxlan , or gre .
Valid values depend on a networking back-end. |
provider:physical_network (Optional) |
body | string | The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host. |
provider:segmentation_id (Optional) |
body | integer | The ID of the isolated segment on the physical network.
The network_type attribute defines the segmentation model.
For example, if the network_type value is vlan, this ID is a vlan
identifier. If the network_type value is gre, this ID is a gre key. |
qos_policy_id (Optional) |
body | string | The ID of the QoS policy associated with the network. |
router:external (Optional) |
body | boolean | Indicates whether the network has an external routing facility that’s not managed by the networking service. |
segments (Optional) |
body | array | A list of provider segment objects. |
shared (Optional) |
body | boolean | Indicates whether this resource is shared across all projects. By default, only administrative users can change this value. |
tenant_id (Optional) |
body | string | The ID of the project that owns the resource. Only administrative and users with advsvc role can specify a project ID other than their own. You cannot change this value through authorization policies. |
vlan_transparent (Optional) |
body | boolean | Indicates the VLAN transparency mode of the network, which is
VLAN transparent (true ) or not VLAN transparent (false ). |
default_vnic_type (Optional) |
body | string | Sets the vnic_type parameter for each virtual port that will be created in this network, if vnic_type is not specified explicitly. The valid values are direct , direct-physical , normal , macvtap , baremetal , virtio-forwarder , and smart-nic . |
description (Optional) |
body | string | A human-readable description for the network. Default is an empty string. |
is_default (Optional) |
body | boolean | The network is default or not. |
Example 1
Create a private virtual network:
# curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' -d ' { "network": { "name": "privnet1", "port_security_enabled": true } }' https://<node_IP_addr>:9696/v2.0/networks
Example 2
Create a public virtual network bound to a physical network:
# curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' -d ' { "network": { "name": "net2", "port_security_enabled": true, "provider:physical_network": "Public", "provider:network_type": "flat", "shared": true } }' https://<node_IP_addr>:9696/v2.0/networks
You can find out the physical network name from /etc/kolla/neutron-openvswitch-agent/ml2_conf.ini
. For example:
# cat /etc/kolla/neutron-openvswitch-agent/ml2_conf.ini | grep bridge_mappings bridge_mappings = Public:br-eth0
Response
Parameters
Name | In | Type | Description |
---|---|---|---|
network
|
body | object | A network object. |
admin_state_up
|
body | boolean | The administrative state of the network, which is
up (true ) or down (false ). |
availability_zone_hints
|
body | array | The availability zone candidate for the network. |
availability_zones
|
body | array | The availability zone for the network. |
created_at
|
body | string |
The date and time when the resource was created. The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
dns_domain
|
body | string | A valid DNS domain. |
id
|
body | string | The ID of the network. |
ipv4_address_scope
|
body | string | The ID of the IPv4 address scope that the network is associated with. |
ipv6_address_scope
|
body | string | The ID of the IPv6 address scope that the network is associated with. |
l2_adjacency
|
body | boolean | Indicates whether L2 connectivity is available throughout
the network . |
mtu
|
body | integer | The maximum transmission unit (MTU) value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. |
name
|
body | string | Human-readable name of the network. |
port_security_enabled
|
body | boolean | The port security status of the network. Valid values are
enabled (true ) and disabled (false ).
This value is used as the default value of port_security_enabled
field of a newly created port. |
project_id
|
body | string | The ID of the project. |
provider:network_type
|
body | string | The type of physical network that this network is mapped to.
For example, flat , vlan , vxlan , or gre .
Valid values depend on a networking back-end. |
provider:physical_network
|
body | string | The physical network where this network/segment is implemented. |
provider:segmentation_id
|
body | integer | The ID of the isolated segment on the physical network.
The network_type attribute defines the segmentation model.
For example, if the network_type value is vlan, this ID is a vlan
identifier. If the network_type value is gre, this ID is a gre key. |
qos_policy_id
|
body | string | The ID of the QoS policy associated with the network. |
revision_number
|
body | integer | The revision number of the network. |
router:external
|
body | boolean | Indicates whether the network has an external routing facility that’s not
managed by the networking service. If the network is updated from external
to internal the unused floating IPs of this network are automatically
deleted when extension floatingip-autodelete-internal is present. |
segments
|
body | array | A list of provider segment objects. |
shared
|
body | boolean | Indicates whether this network is shared across all tenants. By default, only administrative users can change this value. |
status
|
body | string | The network status. Values are ACTIVE , DOWN , BUILD or ERROR . |
subnets
|
body | array | The associated subnets. |
tenant_id
|
body | string | The ID of the project. |
updated_at
|
body | string |
The date and time when the resource was updated. If the resource has
not been updated, this field will be The date and time stamp format is ISO 8601: CCYY-MM-DDThh:mm:ss±hh:mm For example, The |
vlan_transparent
|
body | boolean | Indicates the VLAN transparency mode of the network, which is
VLAN transparent (true ) or not VLAN transparent (false ). |
default_vnic_type
|
body | string | The default value of the vnic_type parameter for each virtual port created in this network. |
description
|
body | string | A human-readable description for the network. |
is_default
|
body | boolean | The network is default pool or not. |
tags
|
body | array | The list of tags on the network. |
Status codes
Success
Code | Reason |
---|---|
201 - Created
|
Resource was created and is ready to use. |
Error
Code | Reason |
---|---|
400 - Bad Request
|
Some content in the request was invalid. |
401 - Unauthorized
|
User must authenticate before making a request. |
Example 1
Create a private virtual network:
{ "network": { "provider:physical_network": null, "ipv6_address_scope": null, "revision_number": 1, "port_security_enabled": true, "provider:network_type": "vxlan", "id": "c5252a20-9206-4b8e-9a0f-45bd22ee7bc8", "router:external": false, "availability_zone_hints": [], "availability_zones": [], "ipv4_address_scope": null, "shared": false, "project_id": "f5d834d636c642c7bfe8af86139c6f26", "status": "ACTIVE", "subnets": [], "description": "", "tags": [], "updated_at": "2020-02-14T13:36:11Z", "is_default": false, "provider:segmentation_id": 5, "name": "privnet1", "admin_state_up": true, "tenant_id": "f5d834d636c642c7bfe8af86139c6f26", "created_at": "2020-02-14T13:36:11Z", "mtu": 1450 } }
Example 2
Create a public virtual network:
{ "network": { "provider:physical_network": "Public", "ipv6_address_scope": null, "revision_number": 1, "port_security_enabled": true, "provider:network_type": "flat", "id": "c5a5d68e-55cd-40b8-a272-3768cbb86bd1", "router:external": false, "availability_zone_hints": [], "availability_zones": [], "ipv4_address_scope": null, "shared": true, "project_id": "f5d834d636c642c7bfe8af86139c6f26", "status": "ACTIVE", "subnets": [], "description": "", "tags": [], "updated_at": "2020-02-17T11:27:17Z", "is_default": false, "provider:segmentation_id": null, "name": "net2", "admin_state_up": true, "tenant_id": "f5d834d636c642c7bfe8af86139c6f26", "created_at": "2020-02-17T11:27:17Z", "mtu": 1500 } }