VLAN Group Management¶
Overview¶
You can use the VLAN Group Management API to create, update and replace VLAN group management tasks in BIG-IQ. To query VLAN Group objects you can use the VLAN Group State API.
REST Endpoint: /mgmt/cm/adc-core/tasks/vlan-group-management¶
Requests¶
POST /mgmt/cm/adc-core/tasks/vlan-group-management¶
To create, update or replace a VLAN group management task you can send a POST request to the tasks/vlan-group-management endpoint.
Request Parameters¶
The JSON in the body of the POST request can contain the following parameters.
Name | Type | Required | Description |
---|---|---|---|
command | string | Required | Specifies the type of VLAN group management task. “CREATE” creates a new VLAN group. “UPDATE” updates the specified fields of an existing VLAN group and retains the unspecified fields as in the existing object. “REPLACE” updates the specified fields of an existing VLAN group and removes the unspecified fields. |
itemId | string | Required if command is “UPDATE” or “REPLACE”. | The uuid of the VLAN group configuration object. After the task finishes, the value can represent the configuration object of the new or updated VLAN group. |
itemState | object | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | New configuration object state for the specified VLAN group. This field represents the full state of the VLAN group object after the task has finished. |
autoLasthop | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Specifies whether Auto Last Hop is enabled or disabled. The possible values are: “default”, “enabled”, or “disabled”. “default” uses the default of the next level. Auto Last Hop is used to track the source MAC address of incoming connections and the default is to be enabled for most network configurations |
bridgeInStandby | boolean | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | If true this is enables the VLAN group to forward packets even if the system is the standby device of a redundant system. This setting is only intended for deployments where the VLAN group exists on only one device. If the VLAN group exists on more than one device, this should be disabled by setting the field to false. The default value is false. |
bridgeMulticast | boolean | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Enables bridging of non-Internet Protocol (IP) and Address Resolution Protocol (ARP) multicast frames across the VLAN group. If bridgeMulticast is true, there can be bridging of multicast frames. For example, you may want to enable this if implementing the Spanning Tree Protocol (STP). The default is false. |
bridgeTraffic | boolean | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | If true, the VLAN group forwards all frames including non-IP traffic. The default is false. |
deviceReference | object | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Reference to the BIG-IP targeted by the request. |
id | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The uuid identifier for the BIG-IP targeted by the request. |
link | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | This is a url for the BIG-IP targeted by the request. You should call the Device Reference Helper API to get the correct value. |
machineId | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The machine id of the BIG-IP targeted by the request. |
name | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Reference to the BIG-IP targeted by the request. For example, “big-ip.example.com”. |
tunnelReferences | object array | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The tunnels you want to add or remove from the VLAN group. |
id | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Uuid of the tunnel you want to add or remove from the VLAN group. |
link | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Url of the tunnel you want to add or remove from the VLAN group. |
name | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The name of the tunnel you want to add or remove from the VLAN group. For example, “tunnel1” |
partition | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The partition of the tunnel you want to add or remove from the VLAN group. For example, “Common”. |
vlanReferences | object array | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The VLANs you want to add or remove from the VLAN group. |
id | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Uuid of the VLANs you want to add or remove from the VLAN group. |
link | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Url of the VLAN you want to add or remove from the VLAN group. |
name | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Name of the VLAN you want to add or remove from the VLAN group. For example, “vlan1”. |
partition | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Partition of the VLAN you want to add or remove from the VLAN group. For example, “Common” |
migrationKeepalive | boolean | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The system sends keepalive frames if migrationKeepalive is true and all the connections to a node are moved from one vlan-group member to another vlan-group member. The default value is false for disabled. |
mode | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | The level of exposure of remote MAC addresses within VLAN groups. Possible values are: “transparent”, “translucent”, “opaque”, or “virtual-wire”. The default is “translucent”. |
name | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Name for the VLAN group, for example “vlanGroup1”. |
description | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Description for the VLAN group, for example “example VLAN group”. |
partition | string | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Partition for the VLAN group, for example “Common”. |
vwirePropagateLinkstatus | boolean | Required if command is “CREATE” or “REPLACE”. Optional if command is “UPDATE”. | Enable virtual wire propagate link status. Available with BIG-IP 14.0.0 and later. Default value is false for disable. |
Query Parameters¶
None
Response¶
The JSON in the response can contain the following parameters.
HTTP/1.1 200 OK
Name | Type | Description |
---|---|---|
command | string | Specifies the type of VLAN group management task. “CREATE” creates a new VLAN group. “UPDATE” updates the specified fields of an existing VLAN group object and retains the unspecified fields as in the existing object. “REPLACE” updates the specified fields of an existing VLAN group object and removes the unspecified fields. |
id | string | The uuid identifier of the VLAN group management task. |
itemId | string | The uuid of the VLAN group configuration object. The value of itemId is ignored during the POST operation. After the task finishes, the value in this field represents the configuration object of the new or updated VLAN group. |
itemState | object | New configuration object state for the specified VLAN group. After the task finishes, this field contains the full state of the VLAN group object. |
autoLasthop | string | Specifies whether Auto Last Hop is enabled or disabled. The possible values are: “default”, “enabled”, or “disabled”. “default” uses the default of the next level. Auto Last Hop is used to track the source MAC address of incoming connections and the default is to be enabled for most network configurations |
bridgeInStandby | boolean | If true the VLAN group forwards packets even if the system is the standby device in a redundant system. This setting is only intended for deployments in which the VLAN group exists on only one of the devices. If the VLAN group exists on more than one device, this should be disabled by setting the field to false. The default value is false. |
bridgeMulticast | boolean | Enables bridging of non-Internet Protocol (IP) and Address Resolution Protocol (ARP) multicast frames across the VLAN group. If bridgeMulticast is true, there can be bridging of multicast frames. For example, you may want to enable this if implementing the Spanning Tree Protocol (STP). The default is false. |
bridgeTraffic | boolean | If true the VLAN group forwards all frames including non-IP traffic. |
deviceReference | object | Reference to the BIG-IP targeted by the request. |
id | string | The uuid identifier for the BIG-IP targeted by the request. |
link | string | This is a url for the BIG-IP targeted by the request. You should call the Device Reference Helper API to get the correct value. |
machineId | string | The machine id of the BIG-IP targeted by the request. |
name | string | Reference to the BIG-IP targeted by the request. For example, “big-ip.example.com”. |
tunnelReferences | object array | The names of the tunnels you want to add or remove from the VLAN group. |
id | string | Uuid of the tunnel you want to add or remove from the VLAN group. |
link | string | Url of the tunnel you want to add or remove from the VLAN group. |
name | string | The name of the tunnel you want to add or remove from the VLAN group. For example, “tunnel1” |
partition | string | The partition of the tunnel you want to add or remove from the VLAN group. For example, “Common”. |
vlanReferences | object array | The VLANs you want to add or remove from the VLAN group. |
id | string | Uuid of the VLANs you want to add or remove from the VLAN group. |
link | string | Url of the VLAN you want to add or remove from the VLAN group. |
name | string | Name of the VLAN you want to add or remove from the VLAN group. For example, “vlan1”. |
partition | string | Partition of the VLAN you want to add or remove from the VLAN group. For example, “Common” |
migrationKeepalive | boolean | The system sends keepalive frames if migrationKeepalive is true and all the connections to a node are moved from one vlan-group member to another vlan-group member. The default value is false for disabled. |
mode | string | The level of exposure of remote MAC addresses within VLAN groups. Possible values are: “transparent”, “translucent”, “opaque”, or “virtual-wire”. The default value is “translucent”. |
name | string | Name for the VLAN group, for example “vlanGroup1”. |
description | string | Description for the VLAN group, for example “example VLAN group”. |
partition | string | Partition for the VLAN group, for example “Common”. |
vwirePropagateLinkstatus | boolean | Enable virtual wire propagate link status. Available with BIG-IP 14.0.0 and later. Default value is false for disable. |
status | string | Status of the VLAN group management task. Initially this value can be “STARTED” and eventually updates to “FINISHED” |
Permissions¶
Role | Allow |
---|---|
ADC_Common_Editor | Yes |
ADC_Common_Viewer | No |
GET /mgmt/cm/adc-core/tasks/vlan-group-management¶
To retrieve a list of VLAN group management tasks you can send a GET request to the collection. To query VLAN group objects you can also use the VLAN Group State API.
Request Parameters¶
None
Query Parameters¶
None
Response¶
The JSON in the GET response can contain a list of tasks and the same parameters as in a POST response.
HTTP/1.1 200 OK
Permissions¶
Role | Allow |
---|---|
ADC_Common_Editor | Yes |
ADC_Common_Viewer | Yes |
GET /mgmt/cm/adc-core/tasks/vlan-group-management/{id}¶
To retrieve information about a single VLAN group management task, you can send a GET request specified by the task’s identifier, id.
Request Parameters¶
None
Query Parameters¶
None
Response¶
The JSON in the GET response can contain a list of tasks and the same parameters as in a POST response.
HTTP/1.1 200 OK
Permissions¶
Role | Allow |
---|---|
ADC_Common_Editor | Yes |
ADC_Common_Viewer | Yes |
Examples¶
POST to create a VLAN group¶
The following example sends a POST request to create a new VLAN group.
POST https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management
The JSON in the body of the POST can look similar to the following example. The value of command is “CREATE”. The value of itemId is ignored during the POST. After the task finishes, you can send a GET to the task’s endpoint to get the itemId of the configuration object of the new VLAN group.
{
"command": "CREATE",
"itemState": {
"name": "vlanGroup1",
"description": "example VLAN group",
"partition": "Common",
"autoLasthop": "default",
"bridgeInStandby": false,
"bridgeMulticast": false,
"bridgeTraffic": false,
"deviceReference": {
"id": "c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb",
"name": "big-ip.example.com",
"kind": "shared:resolver:device-groups:restdeviceresolverdevicestate",
"machineId": "c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb",
"link": "https://localhost/mgmt/shared/resolver/device-groups/cm-adccore-allbigipDevices/devices/c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb"
},
"migrationKeepalive": false,
"mode": "translucent",
"tunnelReferences": [{
"id": "ed33307f-bd3f-3ff4-808c-f770f7e77e87",
"name": "tunnel1",
"kind": "cm:adc-core:working-config:net:tunnels:tunnel:adctunnelstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/tunnels/tunnel/ed33307f-bd3f-3ff4-808c-f770f7e77e87"
}],
"vlanReferences": [{
"id": "91163f32-f8d6-3ee2-bc7d-43074b429098",
"name": "vlan1",
"kind": "cm:adc-core:working-config:net:vlan:adcvlanstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/vlan/91163f32-f8d6-3ee2-bc7d-43074b429098"
}],
"vwirePropagateLinkstatus": false
}
}
Response¶
The response to the POST can contain the id and status of the task. The initial value of status can be “STARTED”. The JSON in the body of the initial response to the POST can look similar to the following.
{
"command": "CREATE",
"itemState": {
"name": "vlanGroup1",
"description": "example VLAN group",
"partition": "Common",
"autoLasthop": "default",
"bridgeInStandby": false,
"bridgeMulticast": false,
"bridgeTraffic": false,
"deviceReference": {
"id": "c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb",
"name": "big-ip.example.com",
"kind": "shared:resolver:device-groups:restdeviceresolverdevicestate",
"machineId": "c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb",
"link": "https://localhost/mgmt/shared/resolver/device-groups/cm-adccore-allbigipDevices/devices/c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb"
},
"migrationKeepalive": false,
"mode": "translucent",
"tunnelReferences": [{
"id": "ed33307f-bd3f-3ff4-808c-f770f7e77e87",
"name": "tunnel1",
"kind": "cm:adc-core:working-config:net:tunnels:tunnel:adctunnelstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/tunnels/tunnel/ed33307f-bd3f-3ff4-808c-f770f7e77e87"
}],
"vlanReferences": [{
"id": "91163f32-f8d6-3ee2-bc7d-43074b429098",
"name": "vlan1",
"kind": "cm:adc-core:working-config:net:vlan:adcvlanstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/vlan/91163f32-f8d6-3ee2-bc7d-43074b429098"
}],
"vwirePropagateLinkstatus": false
},
"id": "bb473e14-2070-4b25-92f2-e02994f96a51",
"status": "STARTED"
}
You can then poll to check for completion of the task by sending GET requests to the endpoint specified by id until the value of status in the response changes to “FINISHED”. For this example, the placeholder {id} can be replaced by the value bb473e14-2070-4b25-92f2-e02994f96a51.
GET https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management/{id}
After the task finishes, the itemId in the response represents the configuration object of the new VLAN group.
{
"command": "CREATE",
"itemId": "1b1d69e3-7715-3ea0-bf60-84e195883719",
"itemState": {
"autoLasthop": "default",
"bridgeInStandby": true,
"bridgeMulticast": false,
"bridgeTraffic": true,
"deviceReference": {
"id": "c21a3bd0-81d6-4ed8-8c8a-89da2d0f19bb",
"name": "device-c.schurman.f5net.com",
"kind": "shared:resolver:device-groups:restdeviceresolverdevicestate",
"machineId": "c21a3bd0-81d6-4ed8-8c8a-89da2d0f19bb",
"link": "https://localhost/mgmt/shared/resolver/device-groups/cm-adccore-allbigipDevices/devices/c21a3bd0-81d6-4ed8-8c8a-89da2d0f19bb"
},
"id": "1b1d69e3-7715-3ea0-bf60-84e195883719",
"migrationKeepalive": false,
"mode": "transparent",
"name": "vlanGroup1",
"description": "example VLAN group",
"partition": "Common",
"tunnelReferences": [{
"id": "ed33307f-bd3f-3ff4-808c-f770f7e77e87",
"name": "tunnel1",
"kind": "cm:adc-core:working-config:net:tunnels:tunnel:adctunnelstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/net/tunnels/tunnel/ed33307f-bd3f-3ff4-808c-f770f7e77e87"
}],
"vlanReferences": [{
"id": "91163f32-f8d6-3ee2-bc7d-43074b429098",
"name": "vlan1",
"kind": "cm:adc-core:working-config:net:vlan:adcvlanstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/vlan/91163f32-f8d6-3ee2-bc7d-43074b429098"
}],
"vwirePropagateLinkstatus": false
},
"id": "bb473e14-2070-4b25-92f2-e02994f96a51",
"status": "FINISHED",
"startDateTime": "2019-05-14T13:02:30.248-0700",
"endDateTime": "2019-05-14T13:02:30.701-0700"
}
After the value of status has updated to “FINISHED”, you can query the new VLAN group configuration object by sending a GET request to the VLAN Group State API and specifying the itemId of the new VLAN group configuration object. For this example, the placeholder {itemId} can be replaced by the value 1b1d69e3-7715-3ea0-bf60-84e195883719.
GET https://10.145.64.35/mgmt/cm/adc-core/working-config/net/vlan-group/{itemId}
POST to update an existing VLAN group¶
The following example sends a POST request for a task to update an existing VLAN group, specifying any fields to be updated.
POST https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management
The JSON in the body of the POST can look similar to the following example. The value of command is “UPDATE” and itemId represents the existing VLAN group to be updated. The fields of the VLAN group being updated are included in itemState.
{
"command": "UPDATE",
"itemId": "9d42912c-82ce-4e89-a873-9f6070bf637b",
"itemState": {
"bridgeInStandby": true,
"mode": "transparent",
"tunnelReferences": [
{
"id": "ed33307f-bd3f-3ff4-808c-f770f7e77e87",
"name": "tunnel1 ",
"kind": "cm:adc-core:working-config:net:tunnels:tunnel:adctunnelstate",
"partition": "Common ",
"link": "https: //localhost/mgmt/cm/adc-core/working-config/net/tunnels/tunnel/ed33307f-bd3f-3ff4-808c-f770f7e77e87"
},
{
"id":"8607a617-0dbc-357c-9059-f1591d34d0bc",
"name": "tunnel2",
"kind": "cm:adc-core:working-config:net:tunnels:tunnel:adctunnelstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/tunnels/tunnel/8607a617-0dbc-357c-9059-f1591d34d0bc"
}
]
}
}
Response¶
HTTP/1.1 200 OK
The JSON in the body of the initial response to the POST can look similar to the body of the POST request. The response to the POST can also contain the id and status of the requested task. The initial value of status can be “STARTED”. You can then poll to check for completion of the task by sending GET requests to the endpoint specified by id until the value of status in the response changes to “FINISHED”. Replace the placeholder {id} in the GET request with the value of id.
GET https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management/{id}
After the value of status has updated to “FINISHED” the itemId in the response represents the configuration object of the new VLAN group. Then you can query the new VLAN group configuration object by sending a GET request to the VLAN Group State API and specifying the itemId of the new VLAN group configuration object. For this example replace the placeholder {itemId} can be replaced by the value of itemId in the response.
GET https://10.145.64.35/mgmt/cm/adc-core/working-config/net/vlan-group/{itemId}
POST to replace an existing VLAN group¶
The following example sends a POST request for a task to replace an existing VLAN group. Any fields to be updated are specified in the body of the request and the fields not specified are removed from the new VLAN group object.
POST https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management
The JSON in the body of the POST can look similar to the following example. The value of command is “REPLACE” and itemId represents the existing VLAN group to be replace. The fields of the VLAN group being updated are included in itemState. Any fields not specified are removed from the new VLAN group object.
{
"command": "REPLACE",
"itemId": "9d42912c-82ce-4e89-a873-9f6070bf637b",
"itemState": {
"autoLasthop": "default",
"bridgeInStandby": true,
"bridgeMulticast": false,
"bridgeTraffic": true,
"deviceReference": {
"id": "c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb",
"name": "big-ip.example.com",
"kind": "shared:resolver:device-groups:restdeviceresolverdevicestate",
"machineId": "c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb",
"link": "https://localhost/mgmt/shared/resolver/device-groups/cm-adccore-allbigipDevices/devices/c21a3bd5-81d6-4ed8-8c8a-89da2d0f19bb"
},
"migrationKeepalive": false,
"mode": "opaque",
"vlanReferences": [{
"id": "4b18f32b-0221-3611-bf14-8c34ba22ef31",
"name": "vlan3",
"kind": "cm:adc-core:working-config:net:vlan:adcvlanstate",
"partition": "Common",
"link": "https://localhost/mgmt/cm/adc-core/working-config/net/vlan/4b18f32b-0221-3611-bf14-8c34ba22ef31"
}],
"vwirePropagateLinkstatus": false
}
}
Response¶
HTTP/1.1 200 OK
The JSON in the body of the initial response to the POST can look similar to the body of the POST request. The response to the POST can also contain the id and status of the requested task. The initial value of status can be “STARTED”. You can then poll to check for completion of the task by sending GET requests to the endpoint specified by id until the value of status in the response changes to “FINISHED”. Replace the placeholder {id} in the GET request with the value of id.
GET https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management/{id}
After the value of status has updated to “FINISHED” the itemId in the response represents the configuration object of the new VLAN group. Then you can query the new VLAN group configuration object by sending a GET request to the VLAN Group State API and specifying the itemId of the new VLAN group configuration object. For this example replace the placeholder {itemId} can be replaced by the value of itemId in the response.
GET https://10.145.64.35/mgmt/cm/adc-core/working-config/net/vlan-group/{itemId}
Get all VLAN group management tasks¶
The following example sends a GET request to retrieve a list of all VLAN group management tasks.
GET https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management
Response¶
HTTP/1.1 200 OK
Get a specific VLAN group management task¶
The following example sends a GET request to get one VLAN group management task. In the following replace the placeholder {id} with the value of the id of the management task.
GET https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management/{id}
Response¶
HTTP/1.1 200 OK
The JSON in the body of the response represents the specified VLAN group management task.
Delete a VLAN group management task¶
The following example sends a DELETE request to one VLAN group management task. In the following replace the placeholder {id} with the value of the id of the management task.
DELETE https://10.145.64.35/mgmt/cm/adc-core/tasks/vlan-group-management/{id}
Response¶
HTTP/1.1 200 OK
The JSON in the body of the response represents the deleted VLAN group management task.