CloudX APIs
Description: Creates a new network in the InfiniBand (IB) scope, which corresponds to creating a P_Key. The P_Key value is specified in the
"provider:segmentation_id"field and must be an integer. The request payload contains multiple fields as expected from the Cloudx network orchestrator.For UFM scope, it is essential to include the
"id"and"provider:segmentation_id"fields in the request. All other fields are optional for UFM.
Request URL – POST /ufmRest/cloudx/Network
Request Payload:
{ "id": "43a0f1c4-8bf5-4d69-8775-fe7c35549b99", "name": "x-test", "tenant_id": "6a51b867d9c149b5af70a66240a99999", "admin_state_up": true, "mtu": 1500, "status": "ACTIVE", "subnets": ["acff29ee-3ddc-47b7-a4bd-3f61cc2bc953"], "standard_attr_id": 36, "shared": false, "project_id": "6a51b867d9c149b5af70a66240a99999", "port_security_enabled": true, "router:external": false, "provider:network_type": "vlan", "provider:physical_network": "ibnet", "provider:segmentation_id": 99, "availability_zone_hints": [], "is_default": false, "availability_zones": [], "ipv4_address_scope": null, "ipv6_address_scope": null, "vlan_transparent": null, "description": "", "tags": [], "created_at": "2026-02-01T08:33:27Z", "updated_at": "2026-02-01T08:33:28Z", "revision_number": 1, "network_qos_policy": null }
Response – The HTTP
Locationheader will contain a URI with the Job ID for this action, as network (P_Key) creation is asynchronous and includes updating OpenSM configuration files.Status Codes
202 – successful operation
400 – bad request
Verification - Check the Job status using the returned Job ID. A successful job indicates the network was created. If the job fails, refer to the log files to determine the failure reason.
Description: Delete an existing network, which in IB scope means deleting the P_Key.
Only the
"id"field is required in the payload, matching the network"id"used during creation.Request URL:
DELETE /ufmRest/cloudx/NetworkRequest Payload Example:
{ "id":"43a0f1c4-8bf5-4d69-8775-fe7c35549b99" }Response:
The HTTP
Locationheader will contain a URI with a Job ID for this action, as deletion is asynchronous and includes updating OpenSM configuration files.
Status Codes:
202– operation accepted400– bad request404– not found
Verification:
Check the Job status using the returned Job ID. If completed successfully, the network was deleted. If errors occur, the network was not deleted. Refer to logs for details.
Description – Delete existing network. In IB related scope means to delete pkey.
To delete network enough to include in payload ID of the network to be deleted. Field "id" is compulsory and be the same as the network "id" in network creation command.
Important to mention that request created by Cloudx network orchestrator and contains many fields, but in this case only "if" key is important for UFM.
Request URL – DELETE /ufmRest/cloudx/Network
Request Payload:
{ "id":"43a0f1c4-8bf5-4d69-8775-fe7c35549b99" }
Response – the HTTP Response Location Header will contain URI with Job ID created for this action, as the network (pkey) deletion is asynchronous and includes update OpenSM configuration files.
Status Codes
202 – successful operation
400 – bad request
404 – not found
To ensure Network deleted - check Job status, using received Job ID. Job should be successfully completed. If job completed with errors - network was not deleted. Refer to log file to find out failure reason.
Description – Add port to existing network meaning port addition to defined in Add Network API pkey - means including port GUID in OpenSM partitions.conf file .
Request URL – POST /ufmRest/cloudx/Port
Request Payload:
{ "id": "85379c18-1b09-4f19-b471-b3496b145999", "name": "r-ufm55", "network_id": "43a0f1c4-8bf5-4d69-8775-fe7c35549b99", "tenant_id": "6a51b867d9c149b5af70a66240a99999", "mac_address": "1c:34:da:65:82:72", "admin_state_up": true, "status": "DOWN", "device_id": "12953ebd-07a2-4d5d-bca3-87b4437f4536", "device_owner": "compute:nova", "standard_attr_id": 247, "project_id": "6a51b867d9c149b5af70a66240a99999", "qos_policy_id": null, "port_security_enabled": false, "security_groups": [], "binding:vnic_type": "baremetal", "binding:profile": {}, "binding:host_id": "r-ufm55", "binding:vif_type": "unbound", "binding:vif_details": {}, "allowed_address_pairs": [], "network_qos_policy": null, "extra_dhcp_opts": [ { "opt_name": "client-id", "opt_value": "ff:00:00:00:00:00:02:00:00:02:c9:00:f4:52:14:03:00:28:00:80", "ip_version": 4 } ], "description": "", "qos_network_policy_id": null, "resource_request": null, "ip_allocation": "immediate", "tags": [], "created_at": "2026-02-18T08:52:02Z", "updated_at": "2026-02-18T08:52:02Z", "revision_number": 1, "network": { "id": "43a0f1c4-8bf5-4d69-8775-fe7c35549b99", "name": "x-test", "tenant_id": "6a51b867d9c149b5af70a66240a99999", "admin_state_up": true, "mtu": 1500, "status": "ACTIVE", "subnets": [ "acff29ee-3ddc-47b7-a4bd-3f61cc2bc953" ], "standard_attr_id": 244, "shared": true, "availability_zone_hints": [], "availability_zones": [ "nova", "nova" ], "ipv4_address_scope": null, "ipv6_address_scope": null, "router:external": false, "vlan_transparent": null, "description": "", "qos_policy_id": null, "port_security_enabled": true, "l2_adjacency": true, "tags": [], "created_at": "2026-02-18T08:51:57Z", "updated_at": "2026-02-18T08:52:01Z", "revision_number": 2, "project_id": "6a51b867d9c149b5af70a66240a99999", "provider:network_type": "vlan", "provider:physical_network": "ibnet", "provider:segmentation_id": 99 } }
The request payload contains many fields as it should be sent by Cloudx network orchestrator.
For UFM scope required to include "network_id", "binding:host_id", "mac_address", "binding:vnic_type", "extra_dhcp_opts" fields in request. All the rest are not compulsory for UFM.
"binding:vnic_type" for IB fabric should be "baremetal".
Fields "name" and "binding:host_id" should contain host name.
IB related definitions that must be included in request
"extra_dhcp_opts": [
{
"opt_name": "client-id",
"opt_value": "ff:00:00:00:00:00:02:00:00:02:c9:00:f4:52:14:03:00:28:00:80",
"ip_version": 4
}
],
section in field "opt_value" should contain GUID of the device port to be added to pkey defined in netwtork.
if
"extra_dhcp_opts": [
{
"opt_name": "client-id",
"opt_value": "ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00",
"ip_version": 4
}
],
Zero opt_value meaning that request related to all the GUIDs of host (related to multinic host with multiple ports). In this case all the GUIDs of host IB ports will be added to pkey.
Response – the HTTP Response Location Header will contain URI with Job ID created for this action, as the port addition is asynchronous and includes update OpenSM configuration files.
Status Codes
202 – successful operation
400 – bad request
To ensure port (GUID) added to pkey - check Job status, using received Job ID. Job should be successfully completed. If job completed with errors - port was not added to pkey. Refer to log file to find out failure reason.
Description – Delete existing port from a network - removal of port guid from pkey.
Request URL – DELETE /ufmRest/cloudx/Port
Request Payload:
{ "id": "85379c18-1b09-4f19-b471-b3496b145999", "name": "r-ufm55", "network_id": "43a0f1c4-8bf5-4d69-8775-fe7c35549b99", "tenant_id": "6a51b867d9c149b5af70a66240a99999", "mac_address": "1c:34:da:65:82:72", "admin_state_up": true, "status": "DOWN", "device_id": "12953ebd-07a2-4d5d-bca3-87b4437f4536", "device_owner": "compute:nova", "standard_attr_id": 247, "project_id": "6a51b867d9c149b5af70a66240a99999", "qos_policy_id": null, "port_security_enabled": false, "security_groups": [], "binding:vnic_type": "baremetal", "binding:profile": {}, "binding:host_id": "r-ufm55", "binding:vif_type": "unbound", "binding:vif_details": {}, "allowed_address_pairs": [], "network_qos_policy": null, "extra_dhcp_opts": [ { "opt_name": "client-id", "opt_value": "ff:00:00:00:00:00:02:00:00:02:c9:00:f4:52:14:03:00:28:00:80", "ip_version": 4 } ], "description": "", "qos_network_policy_id": null, "resource_request": null, "ip_allocation": "immediate", "tags": [], "created_at": "2026-02-18T08:52:02Z", "updated_at": "2026-02-18T08:52:02Z", "revision_number": 1, "network": { "id": "43a0f1c4-8bf5-4d69-8775-fe7c35549b99", "name": "x-test", "tenant_id": "6a51b867d9c149b5af70a66240a99999", "admin_state_up": true, "mtu": 1500, "status": "ACTIVE", "subnets": [ "acff29ee-3ddc-47b7-a4bd-3f61cc2bc953" ], "standard_attr_id": 244, "shared": true, "availability_zone_hints": [], "availability_zones": [ "nova", "nova" ], "ipv4_address_scope": null, "ipv6_address_scope": null, "router:external": false, "vlan_transparent": null, "description": "", "qos_policy_id": null, "port_security_enabled": true, "l2_adjacency": true, "tags": [], "created_at": "2026-02-18T08:51:57Z", "updated_at": "2026-02-18T08:52:01Z", "revision_number": 2, "project_id": "6a51b867d9c149b5af70a66240a99999", "provider:network_type": "vlan", "provider:physical_network": "ibnet", "provider:segmentation_id": 99 } }
The request payload contains many fields as it should be sent by Cloudx network orchestrator.
For UFM scope required "network_id", "binding:host_id", "mac_address", "binding:vnic_type", "extra_dhcp_opts" fields in request. All the rest are not compulsory for UFM.
"binding:vnic_type" for IB fabric should be "baremetal".
Fields "name" and "binding:host_id" should contain host name.
IB related definitions that must be included in requestL
"extra_dhcp_opts": [
{
"opt_name": "client-id",
"opt_value": "ff:00:00:00:00:00:02:00:00:02:c9:00:f4:52:14:03:00:28:00:80",
"ip_version": 4
}
],
section in field "opt_value" should contain GUID of the device port to be removed from pkey, defined in netwtork.
if
"extra_dhcp_opts": [
{
"opt_name": "client-id",
"opt_value": "ff:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00",
"ip_version": 4
}
],
Zero opt_value meaning that request related to all the GUIDs of host (related to multinic host with multiple ports). In this case all the GUIDs of host IB ports will be removed from pkey.
Response – the HTTP Response Location Header will contain URI with Job ID created for this action, as the port removal is asynchronous and includes update OpenSM configuration files.
Status Codes
202 – successful operation
400 – bad request
404 – not found
To ensure port (GUID) removed from pkey - check Job status, using received Job ID. Job should be successfully completed. If job completed with errors - port was not removed from pkey. Refer to log file to find out failure reason.