XOS Provided API

ServicePorts

GET api/service/vtn/servicePorts list service ports including port details 

GET api/service/vtn/servicePorts/{port_id}  show service port details

 

Parameter

Type

Description

id

UUID

UUID of the port

vlan_id (optional)

number

VLAN ID of the port interface

floating_address_pairs

(optional)

list

Additional public IP addresses allowed to the port interface

ip_address

string

Additional public IP address

mac_address

string

Additional MAC address mapped to the public IP address

 

Example json response: api/service/vtn/servicePorts

{
   "servicePorts": [
       {
           "id": "55d1b71f-efe2-455d-a78c-e48e9d3a4094",
           "vlan_id": null,
           "network_name": "one_access",
           "floating_address_pairs": []
       },
       {
           "id": "7098f0a8-cdcb-4bce-9706-05aecacb784b",
           "vlan_id": 222,
           "network_name": "mysite_vsg-access",
           "floating_address_pairs": [
               {
                   "ip_address": "20.0.0.3",
                   "mac_address" : "fa:16:3e:ca:05:9c"
               }
           ]
       }
   ]
}


Example json response: api/service/vtn/servicePorts/7098f0a8-cdcb-4bce-9706-05aecacb784b

{
   "servicePort": {
       "id": "7098f0a8-cdcb-4bce-9706-05aecacb784b",
       "vlan_id": 222,
       "network_name": "mysite_vsg-access",
       "floating_address_pairs": [
           {
               "ip_address": "20.0.0.3",
               "mac_address" : "fa:16:3e:ca:05:9c"
           }
       ]
    }
}

 

ServiceNetworks

GET api/service/vtn/serviceNetworks list service networks including the details 

GET api/service/vtn/serviceNetworks/{network_id}  show service network details

 

Parameters

Type

Description

id

UUID

UUID of the network

type

string

service network type [ PRIVATE|PUBLIC|MANAGEMENT_LOCAL|MANAGEMENT_HOST|VSG|ACCESS_AGENT ]

  • PRIVATE: virtual private network

  • PUBLIC: externally accessible network

  • MANAGEMENT_LOCAL: instance management network which does not span compute nodes, only accessible from the host machine

  • MANAGEMENT_HOST: real management network which spans compute and head nodes

  • VSG: network for vSG infrastructure service

  • ACCESS_AGENT: network for access agent infrastructure service

providerNetworks

list

list of provider network IDs

subscriberNetworks

list

list of tenant network IDs

bidirectional

boolean

the dependency, which is bidirectional(true) or unidirectional(false)

namestringname of the network
ownerSliceNamestringowner slice of this network
ownerServiceNamestringowner service of this network

 

Example json response: api/service/vtn/serviceNetworks

{
    "serviceNetworks": [
        {
            "id": "8ab38619-327e-47ce-9304-2c595c1b6708",
            "type": "management_local",
            "providerNetworks": [],
            "subscriberNetworks": [],
            "ownerSliceName": "mysite_management",
            "ownerServiceName": null
        },
        {
            "id": "a14d7a6b-dffb-4271-8a17-5d715b362d1e",
            "type": "private",
            "providerNetworks": [
                {
                    "bidirectional": true,
                    "id": "71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
                    "name": "two_access"
                }
            ],
            "subscriberNetworks": [],
            "ownerSliceName": "mysite_one",
            "ownerServiceName": "service_one",
        }
    ]
}

 

Example json response: api/service/vtn/serviceNetworks/a14d7a6b-dffb-4271-8a17-5d715b362d1e

{
    "serviceNetwork": {
            "id": "a14d7a6b-dffb-4271-8a17-5d715b362d1e",
            "type": "private",
            "providerNetworks": [
                {
                    "bidirectional": true,
                    "id": "71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
                    "name": "two_access"
                }
            ],
            "subscriberNetworks": [],
            "ownerSliceName": "mysite_one",
            "ownerServiceName": "service_one",
        }
}

VTN Provided API

ServicePorts

POST      onos/cordvtn/servicePorts create a service port 

GET        onos/cordvtn/servicePorts list service ports including service port details

GET        onos/cordvtn/servicePorts/{port_id} show service port details 

DELETE onos/cordvtn/servicePorts/{port_id} delete a service port

 

Parameter

Type

Description

* id

UUID

The UUID of the service port.

* network_idUUIDThe UUID of the attached service network.
* namestringThe name of the port on the switch.

vlan_id

number

VLAN ID of the port interface.

mac_addressstringThe MAC address of the port interface.
ip_addressstringThe IP address of the port interface.

floating_address_pairs

list

Additional public addresses allowed to the port interface.

ip_address

string

Additional public IP address.

mac_address

string

Additional MAC address mapped to the public IP address.

* fields are mandatory for creating a new service port.

 

Example json request: onos/cordvtn/servicePorts POST

{
   "ServicePort":{
      "id":"b8ba3d85-1dec-49f9-8503-6f1b90399152",
      "network_id":"0f30807c-fce0-4fa5-9c36-99ff6d4d0ae1",
      "name":"tapb8ba3d85-1d",
      "vlan_id":222,
      "mac_address":"FA:16:3E:56:77:45",
      "ip_address":"10.0.2.2",
      "floating_address_pairs":[
         {
            "ip_address":"10.6.1.131",
            "mac_address":"02:42:0A:06:01:83"
         },
         {
            "ip_address":"10.6.1.130",
            "mac_address":"02:42:0A:06:01:82"
         }
      ]
   }
}

 

Example json response: onos/cordvtn/servicePorts GET

{
   "ServicePorts":[
      {
         "id":"f4404de0-8068-45bf-988f-291d18be1216",
         "network_id":"6e8e39a6-4a5e-4389-9391-dbc14ba2b6ae",
         "name":"tapf4404de0-80",
         "mac_address":"FA:16:3E:6C:B9:07",
         "ip_address":"172.27.0.3",
         "floating_address_pairs":[]
      },
      {
         "id":"e568f8e8-c029-45a7-8d3f-e71647341e43",
         "network_id":"94e67146-ffec-4308-8470-8c9f812460f4",
         "name":"tape568f8e8-c0",
         "mac_address":"FA:16:3E:58:43:F8",
         "ip_address":"10.6.1.194",
         "floating_address_pairs":[]
      },
      {
         "id":"04245130-24d9-460f-913c-5f7144527b62",
         "network_id":"6e8e39a6-4a5e-4389-9391-dbc14ba2b6ae",
         "name":"tap04245130-24",
         "mac_address":"FA:16:3E:F2:5D:34",
         "ip_address":"172.27.0.2",
         "floating_address_pairs":[]
      },
      {
         "id":"b8ba3d85-1dec-49f9-8503-6f1b90399152",
         "network_id":"0f30807c-fce0-4fa5-9c36-99ff6d4d0ae1",
         "name":"tapb8ba3d85-1d",
         "vlan_id":222,
         "mac_address":"FA:16:3E:56:77:45",
         "ip_address":"10.0.2.2",
         "floating_address_pairs":[
            {
               "ip_address":"10.6.1.131",
               "mac_address":"02:42:0A:06:01:83"
            },
            {
               "ip_address":"10.6.1.130",
               "mac_address":"02:42:0A:06:01:82"
            }
         ]
      },
      {
         "id":"edc20f5e-86ed-480d-9589-813013a58eed",
         "network_id":"e4974238-448c-4b5c-9a45-b27c9477eb6a",
         "name":"tapedc20f5e-86",
         "mac_address":"FA:16:3E:96:06:30",
         "ip_address":"10.0.4.2",
         "floating_address_pairs":[]
      }
   ]
}

 

Example json response: onos/cordvtn/servicePorts/b8ba3d85-1dec-49f9-8503-6f1b90399152 GET

{
   "ServicePort":{
      "id":"b8ba3d85-1dec-49f9-8503-6f1b90399152",
      "network_id":"0f30807c-fce0-4fa5-9c36-99ff6d4d0ae1",
      "name":"tapb8ba3d85-1d",
      "vlan_id":222,
      "mac_address":"FA:16:3E:56:77:45",
      "ip_address":"10.0.2.2",
      "floating_address_pairs":[
         {
            "ip_address":"10.6.1.131",
            "mac_address":"02:42:0A:06:01:83"
         },
         {
            "ip_address":"10.6.1.130",
            "mac_address":"02:42:0A:06:01:82"
         }
      ]
   }
}

ServiceNetworks

POST      onos/cordvtn/serviceNetworks create a service network

GET        onos/cordvtn/serviceNetworks list service networks including the details

GET        onos/cordvtn/serviceNetworks/{network_id}  show service network details

PUT        onos/cordvtn/serviceNetworks/{network_id} update a service network dependencies 

DELETE onos/cordvtn/serviceNetworks/{network_id} delete a service network

 

Parameters

Type

Description

* id

UUID

The UUID of the service network.

namestringThe name of the service network.

* type

string

The type of the service network [ PRIVATE|PUBLIC|MANAGEMENT_LOCAL|MANAGEMENT_HOST|VSG|ACCESS_AGENT ].

  • PRIVATE: virtual private network

  • PUBLIC: externally accessible network

  • MANAGEMENT_LOCAL: instance management network which does not span compute nodes, only accessible from the host machine

  • MANAGEMENT_HOST: real management network which spans compute and head nodes

  • ACCESS_AGENT: network for access agent infrastructure service

  • (Deprecated) VSG: network for vSG infrastructure service
segment_idintegerThe ID of the isolated segment on the physical network. Currently, only VXLAN based isolation is supported and this ID is a VNI.
subnetstringThe associated subnet.

providers

list

The list of the provider service networks.

idstringThe UUID of the provider service network.

bidirectional

boolean

The dependency, which is bidirectional(true) or unidirectional(false).

* fields are mandatory for creating a new service network.

 

Example json request: onos/cordvtn/serviceNetworks POST

{
   "ServiceNetwork":{
      "id":"e4974238-448c-4b5c-9a45-b27c9477eb6a",
      "name":"mysite_one-access",
      "type":"PRIVATE",
      "segment_id":1018,
      "subnet":"10.0.3.0/24",
      "service_ip":"10.0.3.1",
      "providers":[
         {
             "id": "71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
             "bidirectional": true
         }
      ]
   }
}

 

Example json response: onos/cordvtn/serviceNetworks GET

{
   "ServiceNetworks":[
      {
         "id":"0f30807c-fce0-4fa5-9c36-99ff6d4d0ae1",
         "name":"mysite_vsg-access",
         "type":"VSG",
         "segment_id":1082,
         "subnet":"10.0.2.0/24",
         "service_ip":"10.0.2.1",
         "providers":[]
      },
      {
         "id":"6e8e39a6-4a5e-4389-9391-dbc14ba2b6ae",
         "name":"management",
         "type":"MANAGEMENT_LOCAL",
         "segment_id":1096,
         "subnet":"172.27.0.0/24",
         "service_ip":"172.27.0.1",
         "providers":[]
      },
      {
         "id":"e4974238-448c-4b5c-9a45-b27c9477eb6a",
         "name":"mysite_one-access",
         "type":"PRIVATE",
         "segment_id":1018,
         "subnet":"10.0.3.0/24",
         "service_ip":"10.0.3.1",
         "providers":[
             {
                 "id": "71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
                 "bidirectional": true
             }
          ]
      },
      {
         "id":"71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
         "name":"mysite_two-access",
         "type":"PRIVATE",
         "segment_id":1019,
         "subnet":"10.0.4.0/24",
         "service_ip":"10.0.4.1",
         "providers":[]
      },
      {
         "id":"94e67146-ffec-4308-8470-8c9f812460f4",
         "name":"public",
         "type":"PUBLIC",
         "segment_id":1047,
         "subnet":"10.6.1.192/26",
         "service_ip":"10.6.1.193",
         "providers":[]
      }
   ]
}

 

Example json response: onos/cordvtn/serviceNetworks/e4974238-448c-4b5c-9a45-b27c9477eb6a GET

{
   "ServiceNetwork":{
      "id":"e4974238-448c-4b5c-9a45-b27c9477eb6a",
      "name":"mysite_one-access",
      "type":"PRIVATE",
      "segment_id":1018,
      "subnet":"10.0.3.0/24",
      "service_ip":"10.0.3.1",
      "providers":[
         {
             "id": "71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
             "bidirectional": true
         }
      ]
   }
}