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

DELETE /mgmt/cm/adc-core/tasks/vlan-group-management/{id}

To delete a VLAN group management task, you can send a DELETE request specified by the task’s identifier, id.

Request Parameters

None

Query Parameters

None

Response

HTTP/1.1 200 OK

The JSON in the body of the response is for the deleted item.

Permissions

Role Allow
ADC_Common_Editor Yes
ADC_Common_Viewer No

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.