NorthStar API v2

The Juniper Networks NorthStar API enables querying of topology, management of topology planning parameters, and management of TE-LSP.

NorthStar API v2 was introduced in NorthStar Controller version 2.1 for id/name separation and is not backwards compatible with v1.

This version allows node and link objects to have separate names and ids. You, as the API user, can control names, while ids are under NorthStar control.

NorthStar 5.1 introduces the following REST API changes:

  • MVPN Source and group mapping over P2MP Group: NorthStar allows to specify a list of flows (currently only MVPN Source, group mapping is supported) to be mapped over a given P2MP group.

  • P2MP Group API change: the change of group properties using PUT has been deprecated, the equivalent PATCH method should be used. Leaf Names are not allowed on tree modification.

  • VRF API: list the VRFs on a node.

P2MP groups and SRLG/Facilities are available through the API since NorthStar 4.2 , and you can use a notification from NorthStar Controller to dynamically push updates to REST API clients.

Use the P2MP REST API calls to create P2MP groups and manage the following P2MP group common attributes:

  • Bandwidth

  • Setup/Holding Priority

  • Coloring Attributes

NOTE: P2MP groups cannot be created nor managed by TE-LSPs.

You can use the TE-LSP API calls or the new P2MP REST API calls to delete the P2MP leaves. For more information, see the P2MP section

You access the API through the NorthStar server (as in northstar.example.net), through HTTP port 8091 and HTTPS port 8443, on base URLs like the following:

  • http://northstar.example.net:8091/NorthStar/API/

  • https://northstar.example.net:8443/NorthStar/API/

All of the NorthStar RESTful APIS use JSON-formatted data that conforms to the JSON-Schema specification. The main schema is topology_v2.json , and it contains links to the other data types. All schema can be found in this archive. Common data types are described in common.json . The following kinds of data and functionality are accessible and can be manipulated using the RESTful API:

You will find some example code associated with the API reference information. In addition, several examples that illustrate common usage can be found later in this document . In our example requests, we use HTTP, however the same functionality is available over HTTPS.

Existing REST APIs that reference plannedProperties/operationalStatus needs to be changed to plannedProperties/routingStatus as backwards compatibility will not be maintained from this release going forward. The reason for the change is based on the feedback from users that under plannedProperties, routingStatus would be more clear than operationalStatus. For an example, please see "LSP update example" under TE-LSPs events section below.

Notification API

NorthStar provides a socket.io interface on which object updates are sent. The socket.io namespace used is /restNotifications-v2, and the list of events is described in the next table. Unless noted, the new value of an object (or the index of the object upon object removal) is sent in the event.

NorthStar /restNotifications-v2 events
Event Schema Description
topologyEvent topology_v2.json#/definitions/topologyNotification Event affecting the complete topology, for instance when the administrator does a topology reset or resync. The notification sent can be as follows. First an add notification with empty topology indicating that the Topology has been re-synched or reseted. Second an update notification with a topology object containing only node or link set. This indicates that the complete node (resp. link) should be re-synched. This may happen in high-load situation where the notification rate is too big (northstar.cfg *_state_refresh_threshold).
nodeEvent topology_v2.json#/definitions/nodeNotification Node event notification.
linkEvent topology_v2.json#/definitions/linkNotification Link event notification.
lspEvent topology_v2.json#/definitions/lspNotification TE-LSP event notification.
lspTopologyEvent topology_v2.json#/definitions/lspTopologyEvent This notification is sent when there is a burst of LSP notification, it indicates that the complete set of TE-LSPs is potentially changed. See northstar.cfg lsp_state_refresh_threshold
demandEvent topology_v2.json#/definitions/demandNotification Demand event notification.
demandTopologyEvent topology_v2.json#/definitions/lspTopologyEvent This notification is sent when there is a burst of LSP or demand notification, it indicates that the complete set of TE-LSPs is potentially changed. See northstar.cfg lsp_state_refresh_threshold (This is intentionally the same as TE-LSPs).
p2mpEvent topology_v2.json#/definitions/p2mpGroupNotification P2MP group event notification. The lsp in the update are reduced to their lspIndex to reduce the size of the event
facilityEvent topology_v2.json#/definitions/facilityNotification Facility/SRLG event notification.
teContainerEvent topology_v2.json#/definitions/containerNotification TE Container event notification.
maintenanceEvent topology_v2.json#/definitions/maintenanceNotification Maintenance resource notification.
haEvent topology_v2.json#/definitions/haHostNotification Node state event notification. Only update (no add or remove) events are supported. The notification does not include the list of processes and only contains operational information.
healthEvent topology_v2.json#/definitions/healthNotification Node health event notification. Only update (no add or remove) events are supported. The notifications include utilization of CPU, disk, memory that exceed certain threshold, and processes status.
componentStatus topology_v2.json#/definitions/statusComponentNotification Indicating LSP reconciliation during NS bringup or Switchover.

The following example is a simple python client for receiving all NorthStar Notifications:


                #!/usr/bin/env python
from socketIO_client import SocketIO, BaseNamespace
import requests,json,sys
serverURL = 'https://northstar.example.net'
username = 'user'
password = 'password'
class NSNotificationNamespace(BaseNamespace):
    def on_connect(self):
        print('Connected to %s:8443/restNotifications-v2'%serverURL)
    def on_event(key,name,data):
        print "NorthStar Event: %r,data:%r"%(name,json.dumps(data))
# First use NorhtStar OAuth2 authentication API to get a token
payload = {'grant_type': 'password','username': username,'password': password}
r = requests.post(serverURL + ':8443/oauth2/token',data=payload,verify=False,auth=(username, password))
data =r.json()
if "token_type" not in data or "access_token" not in data:
    print "Error: Invalid credentials"
    sys.exit(1)
headers= {'Authorization': "{token_type} {access_token}".format(**data)}
socketIO = SocketIO(serverURL, 8443,verify=False,headers= headers)
ns = socketIO.define(NSNotificationNamespace, '/restNotifications-v2')
socketIO.wait() 

Topology

Use the endpoints to retrieve the following information:

  • Topology list

  • Node list

  • Links

  • TE-LSPs

  • Demands

  • Facilities

  • P2MP group

  • TE-Containers

  • Maintenances

  • Interfaces

  • Component status

  • Topology status

Apply query parameter q=JSONPath to filter the objects listed under a specific endpoint. Example: The HTTP request GET https://northstar.example.net:8443/NorthStar/API/v2/tenant/1/topology/1/te-lsps?q=$.[?(@.operationalStatus == "Down")] lists only the te-lsps with attribute operationalStatus value "Down". For more information on JSON, refer JSONPath

The topology schema is: topology_v2.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/topologies [GET: get a list of topologies]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id> [GET: get all Nodes and Links]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/< topology-id>/status [GET: get status of all NorthStar components]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/status/multilayerTopology [GET: get multi-layer topology status]

GET
v2/tenant/​{tenant_id}​/topology
Get List of Topologies

Returns a list of the topologies that are available.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
   {
      "topologyIndex": 1,
      "topoObjectType": "topology"
   }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​
Get Topological Elements

Lists topological elements. The example shows three nodes, and two point-to-point links between node 11 and node 8. One node is PCEP-enabled (node 8, name 62.0.0.104) and one node is a pseudo node (node 2). A pseudo node does not have router-ids in its protocol object. It's pseudoNode attribute set to TRUE.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "links": [
        {
            "endA": {
                "TEcolor": 0,
                "TEmetric": 10,
                "bandwidth": 10000000000,
                "ipv4Address": {
                    "address": "62.104.107.1",
                    "topoObjectType": "ipv4"
                },
                "node": {
                    "name": "62.0.0.104",
                    "topoObjectType": "node",
                    "topologyIndex": 1
                },
                "protocols": {
                    "ISIS": {
                        "TEMetric": 10,
                        "level": "L2",
                        "srlgs": [{"srlgValue": 407}]
                    },
                    "RSVP": {"bandwidth": 10000000000}
                },
                "srlgs": [{"srlgValue": 407 }],
                "topoObjectType": "interface",
                "unreservedBw": [9989999616, 9989999616, 9989999616, 9989999616, 9489999872, 9489999872, 9489999872, 9489999872  ]
            },
            "endZ": {
                "TEcolor": 0,
                "TEmetric": 10,
                "bandwidth": 10000000000,
                "ipv4Address": {
                    "address": "62.104.107.2",
                    "topoObjectType": "ipv4"
                },
                "node": {
                    "name": "62.0.0.107",
                    "topoObjectType": "node",
                    "topologyIndex": 1
                },
                "protocols": {
                    "ISIS": {
                        "TEMetric": 10,
                        "level": "L2",
                        "srlgs": [ { "srlgValue": 407 }]
                    },
                    "RSVP": {"bandwidth": 10000000000 }
                },
                "srlgs": [{"srlgValue": 407}],
                "topoObjectType": "interface",
                "unreservedBw": [9989999616, 9989999616, 9989999616, 9989999616, 9989999616, 9989999616,9989999616,9489999872]
            },
            "linkIndex": 6,
            "name": "L62.104.107.1_62.104.107.2",
            "operationalStatus": "Up",
            "topoObjectType": "link",
            "topologyIndex": 1
        },
        {
            "endA": {
                "TEcolor": 0,
                "TEmetric": 10,
                "bandwidth": 10000000000,
                "ipv4Address": {
                    "address": "62.114.117.1",
                    "topoObjectType": "ipv4"
                },
                "node": {
                    "name": "62.0.0.104",
                    "topoObjectType": "node",
                    "topologyIndex": 1
                },
                "protocols": {
                    "ISIS": {
                        "TEMetric": 10,
                        "level": "L2",
                        "srlgs": [{"srlgValue": 407}]
                    },
                    "RSVP": { "bandwidth": 10000000000 }
                },
                "srlgs": [{"srlgValue": 407} ],
                "topoObjectType": "interface",
                "unreservedBw": [ 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]
            },
            "endZ": {
                "TEcolor": 0,
                "TEmetric": 10,
                "bandwidth": 10000000000,
                "ipv4Address": {
                    "address": "62.114.117.2",
                    "topoObjectType": "ipv4"
                },
                "node": {
                    "name": "62.0.0.107",
                    "topoObjectType": "node",
                    "topologyIndex": 1
                },
                "protocols": {
                    "ISIS": {
                        "TEMetric": 10,
                        "level": "L2",
                        "srlgs": [{"srlgValue": 407}]
                    },
                    "RSVP": {"bandwidth": 10000000000}
                },
                "srlgs": [{"srlgValue": 407}],
                "topoObjectType": "interface",
                "unreservedBw": [9600000000,600000000,9600000000,9600000000,9600000000,9600000000,9600000000,9600000000]
            },
            "linkIndex": 7,
            "name": "L62.114.117.1_62.114.117.2",
            "operationalStatus": "Up",
            "topoObjectType": "link",
            "topologyIndex": 1
        }
    ],
    "nodes": [
        {
            "AutonomousSystem": {"asNumber": 62},
            "hostName": "vmx104-62",
            "layer": "IP",
            "name": "62.0.0.104",
            "nodeIndex": 8,
            "protocols": {
                "ISIS": {
                    "TERouterId": "62.0.0.104",
                    "area": "490062",
                    "isoAddress": "0620.0000.0104",
                    "routerId": "62.0.0.104"
                },
                "PCEP": {
                    "pccAddress": "62.0.0.104"
                }
            },
            "topoObjectType": "node",
            "topologyIndex": 1
        },
        {
            "AutonomousSystem": {"asNumber": 62},
            "hostName": "vmx105-62-p107",
            "layer": "IP",
            "name": "62.0.0.107",
            "nodeIndex": 11,
            "protocols": {
                "ISIS": {
                    "TERouterId": "62.0.0.107",
                    "area": "490062",
                    "isoAddress": "0620.0000.0107",
                    "routerId": "62.0.0.107"
                }
            },
            "topoObjectType": "node",
            "topologyIndex": 1
        },
	{
	    "topoObjectType": "node",
	    "topologyIndex": 1,
	    "name": "0620.0000.0101.02",
	    "nodeIndex": 2,
            "AutonomousSystem": {"asNumber": 62},
	    "layer": "IP",
	    "pseudoNode": true,
	    "protocols": {
		"ISIS": { }
	    }
	}
    ],
    "topoObjectType": "topology",
    "topologyIndex": 1
}

This operation does not accept a request body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​
Delete the Topology

Deletes all of the topology planned data. The information acquired through BGP-LS reappears immediately.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only topologyEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status
Get NorthStar Component Status

Returns the status of all NorthStar components.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: topology_v2.json#/definitions/componentStatusList .

[
  {
    "component": "PCE",
    "status": "PCE is up.",
    "statusTimestamp": 1468006441666,
    "statusTimestampTime": "2016-07-08T19:34:01.666Z"
  },
  {
    "component": "Topology acquisition",
    "status": "Connected to NTAD: 172.16.16.2 port: 450",
    "statusTimestamp": 1468006441632,
    "statusTimestampTime": "2016-07-08T19:34:01.632Z"
  },
  {
    "component": "Path Computation Server",
    "status": "Active Path Stat: 3 up 0 down 0 detoured 0 being provisioned. Link Stat: 19 up 0 down. Node Stat: 7 active nodes, 0 PCC nodes",
    "statusTimestamp": 1468153795771,
    "statusTimestampTime": "2016-07-10T12:29:55.771Z"
  },
  {
    "component": "Transport Topology acquisition",
    "status": "Up",
    "childs": [
      {
        "status": "Up; current peer: hostname='' ip='192.0.2.10'",
        "statusTimestamp": 1468153845392,
        "statusTimestampTime": "2016-07-10T12:30:45.392062Z",
        "component": "VendorX"
      }
    ],
    "statusTimestamp": 1468153853495,
    "statusTimestampTime": "2016-07-10T12:30:53.495Z"
  }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/pce
Get PCEP Protocol Adapter Status

Returns the status of the PCEP protocol adapter component.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "PCE",
    "status": "PCE is up.",
    "statusTimestamp": 0
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/topologyAcquisition
Get BGP-LS Protocol Adapter Status

Returns the status of the Network Topology Acquisition Daemon (NTAD, BGP-LSP protocol adapter) component.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "Topology acquisition",
    "status": "Connected to NTAD: 62.105.199.2 port: 450",
    "statusTimestamp": 1427167092212
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/pathComputationServer
Get Path Computation Server Status

Returns the status of the Path Computation Server component.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
  {
    "component": "Path Computation Server",
    "status": "Active Path Stat: 3 up 0 down 0 detoured 0 being provisioned. Link Stat: 19 up 0 down. Node Stat: 7 active nodes, 0 PCC nodes",
    "statusTimestamp": 1468153795771,
    "statusTimestampTime": "2016-07-10T12:29:55.771Z"
  }

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/transportTopologyAcquisition
Get Transport Topology Acquisition Daemon Status

Returns the status of the Transport Network Topology Acquisition Daemon.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
  {
    "component": "Transport Topology acquisition",
    "status": "Up",
    "childs": [
      {
        "status": "Up; current peer: hostname='' ip='192.0.2.10'",
        "statusTimestamp": 1468153845392,
        "statusTimestampTime": "2016-07-10T12:30:45.392062Z",
        "component": "VendorX"
      }
    ],
    "statusTimestamp": 1468153853495,
    "statusTimestampTime": "2016-07-10T12:30:53.495Z"
  }

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/analyticsCollection
Get Analytics Data Collection Component Status

Returns the status of the analytics data collection.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "Analytics data collection",
    "status": "host=pcs-server, status=OK",
    "statusTimestampTime": "2017-07-27T04:09:05.239Z",
    "statusTimestamp": 1501128545239
}

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/status/analyticsDatabase
Get Analytics Data Collection Database Status

Returns the status of the analytics data collection database.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
{
    "component": "Analytics database",
    "status": "Analytics Database Status:green Cluster NorthStar nodes count:1 (1 data nodes)",
    "statusTimestamp": 1501129483764,
    "statusTimestampTime": "2017-07-27T04:24:43.764Z"
}

This operation does not accept a request body.

Node

Use these endpoints for access to the nodes retrieved through BGP-LS and planned nodes.

The node schema is: node_v2.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes [GET : get all nodes, POST : create a new node]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes/search URL parameters : name, AS, queryType=OR [ GET : search nodes (name/as)]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes/<nodeIndex> [ GET : get node, POST : modify node , DELETE]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/nodes/<nodeIndex>/history [ GET : node history]

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes
Get Nodes

Returns a full list of nodes.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "AutonomousSystem": {"asNumber": 62},
        "layer": "IP",
        "name": "0620.0000.0101.02",
        "nodeIndex": 2,
        "protocols": {
            "ISIS": {}
        },
	"pseudoNode": true,
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx101-62",
        "layer": "IP",
        "name": "62.0.0.101",
        "nodeIndex": 1,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.101",
                "area": "490062",
                "isoAddress": "0620.0000.0101",
                "routerId": "62.0.0.101"
            },
            "PCEP": {
                "pccAddress": "62.0.0.101"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p105",
        "layer": "IP",
        "name": "62.0.0.105",
        "nodeIndex": 9,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.105",
                "area": "490062",
                "isoAddress": "0620.0000.0105",
                "routerId": "62.0.0.105"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p106",
        "layer": "IP",
        "name": "62.0.0.106",
        "nodeIndex": 10,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.106",
                "area": "490062",
                "isoAddress": "0620.0000.0106",
                "routerId": "62.0.0.106"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p107",
        "layer": "IP",
        "name": "62.0.0.107",
        "nodeIndex": 11,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.107",
                "area": "490062",
                "isoAddress": "0620.0000.0107",
                "routerId": "62.0.0.107"
            }
        },
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [-0.025,-49.459999]
	    }
	}
        "topoObjectType": "node",
        "topologyIndex": 1
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes
Create a Planned Node

Creates a planned node using the following schema: node_v2.json#/definitions/createNode .

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The following JSON sample shows the minimum required information to add a planned node. The Following parameters are required:

Create Node Required Attributes
Attribute Type Description Fixed
name string No Node Name
topologyIndex integer Yes 1
topoObjectType string Yes node

The following parameters can be set:

  • Name

  • Autonomous System

  • management address

  • hostName

  • nodeType

  • design parameter: canFail

  • Node coordinates

{
    "name": "PlannedNode",
    "topoObjectType": "node",
    "topologyIndex": 1
}
Response example:
{
    "layer": "IP",
    "name": "PlannedNode",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1
}
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/search
Search Nodes

Searches the list of nodes for specific URI parameters. For example, search?name=62.0.0.101 must return one node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

name (Optional) query xsd:string

Filters on node name. The parameter is treated as a regular expression. Simple strings such as 62.0.0.101 are accepted. JavaScript regexp (for example, /^62/) is also accepted.

hostName (Optional) query xsd:int

Filters on hostname

AS (Optional) query xsd:int

Filters on AS number

queryType (Optional) query xsd:string

The queryType parameter sets the logical operator to be used between the query parameters. By default, the queryType is AND. If queryType is set to OR, node is included in the result if any of the query parameters matches.

Response example:
[
    {
        "AutonomousSystem": {"asNumber": 62},
        "layer": "IP",
        "name": "0620.0000.0101.02",
        "nodeIndex": 2,
        "protocols": {
            "ISIS": {}
        },
	"pseudoNode": true,
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx101-62",
        "layer": "IP",
        "name": "62.0.0.101",
        "nodeIndex": 1,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.101",
                "area": "490062",
                "isoAddress": "0620.0000.0101",
                "routerId": "62.0.0.101"
            },
            "PCEP": {
                "pccAddress": "62.0.0.101"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p105",
        "layer": "IP",
        "name": "62.0.0.105",
        "nodeIndex": 9,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.105",
                "area": "490062",
                "isoAddress": "0620.0000.0105",
                "routerId": "62.0.0.105"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p106",
        "layer": "IP",
        "name": "62.0.0.106",
        "nodeIndex": 10,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.106",
                "area": "490062",
                "isoAddress": "0620.0000.0106",
                "routerId": "62.0.0.106"
            }
        },
        "topoObjectType": "node",
        "topologyIndex": 1
    },
    {
        "AutonomousSystem": {"asNumber": 62},
        "hostName": "vmx105-62-p107",
        "layer": "IP",
        "name": "62.0.0.107",
        "nodeIndex": 11,
        "protocols": {
            "ISIS": {
                "TERouterId": "62.0.0.107",
                "area": "490062",
                "isoAddress": "0620.0000.0107",
                "routerId": "62.0.0.107"
            }
        },
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [-0.025,-49.459999]
	    }
	}
        "topoObjectType": "node",
        "topologyIndex": 1
    }
]
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only nodeEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Get a Single Node

Returns details for a node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Response example:
{
    "AutonomousSystem": {
        "asNumber": 62
    },
    "hostName": "vmx101-62",
    "layer": "IP",
    "name": "62.0.0.101",
    "nodeIndex": 1,
    "protocols": {
        "ISIS": {
            "TERouterId": "62.0.0.101",
            "area": "490062",
            "isoAddress": "0620.0000.0101",
            "routerId": "62.0.0.101"
        },
        "PCEP": {
            "pccAddress": "62.0.0.101"
        }
    },
    "topoObjectType": "node",
    "topologyIndex": 1
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Update Node Properties

Updates a node using the following schema: node_v2.json#/definitions/updateNode

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Request example:
{
    "layer": "IP",
    "id": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1
}
Response example:
{
    "layer": "IP",
    "id": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Patch Node

Updates a node using a RFC6902 patch: json-patch.json. The result of the patch must conform to node_v2.json#/definitions/updateNode. The REST server remove all operational parameters like operationalStatus, ..etc. .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Request example:

The Patched update accepts the same parameters as the update

[{"op" : "add", "path":"/protocols/PCEP/extensions/lsp-association-protection" , "value" : false}]
Response example:
{
    "layer": "IP",
    "id": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1,
    "protocols" : {
        "PCEP" : {
            "extensions" : {
                "lsp-association-protection" : false
            }
        }
    }
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Delete a Node

Deletes a node. (You cannot delete a live node; it reappears on the next update from Topology server.)

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​/history
Get the Node Event History

Returns the event history for a node.

 

The history contains a list of Unix-timestamped events for the node resource.

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

start (Optional) query xsd:int

Start timestamp: Include events with the starting timetime and later.

end (Optional) query xsd:int

End timestamp: Include events before (but not including) the ending timestamp.

Response example:
[
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427130726939
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427130727025
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427135395317
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "CHI",
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [
		    4.29167,
		    2.9
		]
	    }
	},
	"timestamp": 1427168112286
    }
]
POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Create a List of Nodes

Creates several Nodes using the following JSON schema: node_v2.json#/definitions/createNodeList .

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must contain a list of Nodes to be created. The individual node parameters are the same as creating an single node.

[
    {"name": "PlannedNode2","topoObjectType": "node","topologyIndex": 1},
    {"name": "PlannedNode3","topoObjectType": "node","topologyIndex": 1}
]
Response example:
[
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode2","name": "PlannedNode2","nodeIndex": 9,"layer": "IP","live": false},
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode3","name": "PlannedNode3","nodeIndex": 10,"layer": "IP","live": false}
]
PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Update a List of Nodes

Updates several Nodes using the following JSON schema: node_v2.json#/definitions/nodeListUpdate .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk update accepts a list of Node updates. Each entry requires the same parameters and logic as updating a single Node.

[
    {"nodeIndex": 9,"topoObjectType": "node","topologyIndex": 1, "hostName" : "testHostName"},
    {"nodeIndex": 10,"topoObjectType": "node","topologyIndex": 1,"comment" : "This is a comment"}
]
Response example:

The response contains a list of individual update responses (see Node update).

[
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode2","nodeIndex": 9,"layer": "IP","live": false,"hostName" : "testHostName"},
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode3","nodeIndex": 10,"layer": "IP","live": false,"comment" : "This is a comment"}
]   
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Update a List of Nodes using PATCH

Updates several Nodes using the following JSON schema: node_v2.json#/definitions/nodeListPatch .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk PATCH accepts a list consisting of nodeIndex and patch:

[
    {"nodeIndex": 9, "patch" : [{"op" : "add", "path" : "/comment", "value": "Updated"}]},
    {"nodeIndex": 10,"patch" : [{"op" : "add", "path" : "/comment", "value": "Updated-1"}]}
]
Response example:

The response contains a list of individual update responses.

[
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode2","nodeIndex": 9,"layer": "IP","live": false,"hostName" : "testHostName","comment" : "Updated"},
    {"topoObjectType": "node","topologyIndex": 1, "id": "PlannedNode3","nodeIndex": 10,"layer": "IP","live": false,"comment" : "Updated1"}
]   
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/bulk
Delete a List of Nodes

Deletes a list of Nodess. The payload must conform to node_v2.json#/definitions/nodeListDelete

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

TE-LSPs

Use these endpoints to access TE-LSPs and the related information.

The TE-LSP schema is: lsp.json .

You can perform the following operations using the TE-LSP endpoints:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/ [GET : get all te-lsps, POST : create one LSP]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/search search parameters : name={nameFilter}, from={fromIpV4} operStatus={operationalStatus} queryType=OR [ GET : search LSPs ()]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/bulk Bulk LSP operations: allows to create/update/delete a list of te-lsps [ POST : create LSPs , PUT/PATCH : update lsps, DELETE : delete]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/<lspIndex> [ GET : get te-lsp, PUT/PATCH : update, DELETE : delete]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-lsps/<lspIndex>/history [ GET : get historical index of te-lsps]

Note: Use this API to create point-to-point LSPs only. The API supports RSVP and SR LSPs. Starting from Northstar release 4.1 onwards, binding SID SR LSPs are supported. Do not use this API to create the P2MP members. Ensure that you use the P2MP resources to create P2MP resources.

The TE-LSP API does allow diverse LSPs to be computed. This is controlled using the following set of attributes:

  • diversityGroup: the LSPs are grouped together using a diversityGroup. If LSP1 and LSP2 should be diverse to each other, they should be in the same diversityGroup.

  • diversityLevel (site, srlg or link): the level of requested diversity. NorthStar will try to compute path that reach that diversity level, if this cannot be achieved, it will try to route the path as diverse as possible, unless minimumDiversityLevel is specified.

  • minimumDiversityLevel (site, srlg or link): the minimum acceptable diversity level. If NorthStar cannot achieve diversity as good or better than minimumDiversityLevel, the routing is considered as failed.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps
Get TE-LSPs

Returns the TE-LSP list.

 

The example contains 10 TE-LSPs:

  • A simple delegated LSP (index 1, named LSP_Node101_Node102). A delegated LSP is configured in the PCC and delegated to NorthStar. NorthStar controls the path and some attributes of the LSP.

  • A delegated LSP with a configured explicit path (index 2, name LSP_101_103). The path name in the router is Path_Node101_Node103_Strict_1.

  • A protected tunnel with a primary and secondary path. The two paths (each represented as a TE-LSP) of a tunnel (index 3 and 4). The tunnel is named LSP_Node102_Node104_with_secondary and each path has a pathName. The tunnel name is used for correlation. One path (index3) is the primary path, while the other is the secondary path. The secondary path will be activated upon primary path failure. LSPs carrying traffic are marked as "Active" rather than "Up".

  • A protected tunnel with a primary and secondary standby path (index 5 and 6). The model is similar to a tunnel with a secondary path, the difference is that the standby path has a pathType set to standby and the path is signaled in the control plane (making its operational status "Up").

  • A set of three TE-LSPs in a TE++ configuration (index 7,8,9). The TE-LSPs are named TEplusplus-Node102-Node103-<index>. Correlation of the entries can be done using liveProperties, options, and TEPlusPlusId. Those LSPs are not delegated to NorthStar, as indicated by the attribute controlType set to PCC. NorthStar will not modify those LSPs.

  • A PCE-Initiated LSP (index 10).

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.106.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-105-106",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "lspIndex": 13,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.106",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 1
        },
        "tunnelId": 60274,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 10,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.101:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 14
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.103:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 15
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.106:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 16
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990091",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-101",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "lspIndex": 17,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 32533,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990082",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-102",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "lspIndex": 18,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.102",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 29910,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990087",
            "correlatedRROHopCount": 2
        },
        "name": "Silver-104-103",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 19,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.103",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32451,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-104-105",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 20,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32072,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps
Create a TE-LSP

Creates a TE-LSP using the following JSON schema: lsp.json#/definitions/createLSP . For example, protection and custom service mapping parameters set.

 
Normal response codes
201
Error response codes
400
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

Create LSP Required Attributes.
Attribute Type Description Fixed
name string No Tunnel name
from/address string No Tunnel ingress
to/address string No Tunnel egress

The following examples show different set of parameters and results:

  • LSP with a bandwidth of 100M

    {
        "name": "Rest_LSP_1",
        "from": {
    	"topoObjectType": "ipv4",
    	"address": "62.0.0.101"
        },
        "to": {
    	"topoObjectType": "ipv4",
    	"address": "62.0.0.103"
        },
        "plannedProperties": {
    	"bandwidth": "100M",
    	"setupPriority": 7,
    	"holdingPriority": 7
        }
    }
    
  • Primary and standby LSPs. The source (from), destination (to), and name must be the same. The standby (and secondary) LSPs must have a pathName attribute set in order to differentiate them. The Primary LSP may have a pathName set.

    Primary LSP:

    {
        "name": "REST_LSP_2", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "pathType": "primary", 
        "plannedProperties": {	
    	"bandwidth": "400M", 
    	"setupPriority": 7, 
    	"holdingPriority": 7
        }
    }
    

    Standby LSP:

    {
        "name": "REST_LSP_2", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "pathType": "standby", 
        "plannedProperties": {	
    	"pathName" : "standby_path_for_second_LSP",
    	"bandwidth": "100M", 
    	"setupPriority": 7, 
    	"holdingPriority": 7
        }
    }
    
  • LSP with a loose explicit route. The loose hop must follow a hop; if no other hop can be supplied, usual best practice is use of the ingress node ID.

    {
    
        "name": "REST_LPS_with_explicit_route",
        "from": {"topoObjectType": "ipv4","address": "62.0.0.101"},
        "to":   {"topoObjectType": "ipv4","address": "62.0.0.103"},
        "plannedProperties": {
    	"bandwidth": 10000000,
    	"setupPriority": 7,
    	"holdingPriority": 7,
    	"ero" : [
                {"topoObjectType": "ipv4","address": "62.0.0.101","loose": false},
                {"topoObjectType": "ipv4","address": "62.0.0.102","loose": true}
    	]
        }
    }
    
  • Creates a TE LSP and associates it with a CCC VPN via userProperties.

    {
      "name": "lintalphaomega",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "RSVP",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.103"
      },
      "plannedProperties": {
        "bandwidth": "24k",
        "setupPriority": 7,
        "holdingPriority": 7,
        "userProperties": {
          "ccc-vpn-name": "vpnsisisi",
          "ccc-interface": "ge-0/0/7.987",
          "transmit-lsp": "lintalphaomega",
          "receive-lsp": "lintomegaalpha"
        }
      }
    }
    

    The response is :

    {
        "plannedProperties": {
            "bandwidth": "24K",
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "lintalphaomega_p0",
            "adminStatus": "Up",
            "preferredEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "userProperties": {
                "ccc-vpn-name": "vpnsisisi",
                "ccc-interface": "ge-0/0/7.987",
                "transmit-lsp": "lintalphaomega",
                "receive-lsp": "lintomegaalpha"
            },
            "lastStatusString": "[ConfigServer]<Netconf provisioning order received",
            "correlatedRROHopCount": 0
        },
        "name": "lintalphaomega",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 95,
        "controlType": "PCC",
        "provisioningType": "RSVP"
    }
    

In the following NETCONF SR LSP examples, the following should be noted:

  • Only Juniper routers are supported.

  • Only NETCONF provisioning is supported.

  • The binding SID label, if specified, is checked by the device based on the configured label range.

  • Only one primary LSP path is supported.

SR LSP examples:

  • In this example, the SR LSP has a node SID specified for the destination.

    {
      "name": "restSRNodeSID",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.103"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103",
            "loose": true
          }
        ],
        "design": {
          "routingMethod": "routeByDevice",
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.103",
                    "loose": true
                }
            ],
            "design": {
                "routingMethod": "routeByDevice"
            }
        },
        "name": "restSRNodeSID",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 106,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the SR LSP has a list of link SIDs specified to reach the destination.

    {
      "name": "restSRLinkSIDs",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.104"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.101.105.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.105.106.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.106.107.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.107.1",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.106.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.1",
                    "loose": false
                }
            ]
        },
        "name": "restSRLinkSIDs",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "lspIndex": 107,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    

    In NorthStar, a privateForwardingAdjacency is comprised of a pair of binding SID SR LSPs from node A to node Z and from node Z to node A.

  • In this example, the Binding SID SR LSP named restBindingSIDSRnodeSID from vmx105 to vmx 107 has a node SID specified for the destination.

    {
      "name": "restBindingSIDSRnodeSID",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048048,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107",
            "loose": true
          }
        ],
        "design": {
          "routingMethod": "routeByDevice",
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.107",
                    "loose": true
                }
            ],
            "design": {
                "routingMethod": "routeByDevice"
            }
        },
        "name": "restBindingSIDSRnodeSID",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "lspIndex": 108,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the Binding SID SR LSP named restBindingSIDSRnodeSID from vmx107 to vmx 105 has a node SID specified for the destination.

    {
      "name": "restBindingSIDSRnodeSID",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048048,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105",
            "loose": true
          }
        ],
        "design": {
          "routingMethod": "routeByDevice",
          "adminGroups": {}
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.107",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": true
                }
            ],
            "design": {
                "routingMethod": "routeByDevice"
            }
        },
        "name": "restBindingSIDSRnodeSID",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 109,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the Binding SID SR LSP named restBindingSIDSRlinkSIDs from vmx105 to vmx 107 has a list of SIDs specified to reach the destination.

    {
      "name": "restBindingSIDSRlinkSIDs",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048049,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.105.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.106.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.106.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.107.2",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {
    
          }
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.106.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                }
            ]
        },
        "name": "restBindingSIDSRlinkSIDs",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "lspIndex": 110,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the Binding SID SR LSP named restBindingSIDSRlinkSIDs from vmx107 to vmx 105 has a list of SIDs specified to reach the destination.

    {
      "name": "restBindingSIDSRlinkSIDs",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.107"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.105"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "bindingSID": 1048049,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.107.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.104.106.2",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.106.1",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.102.105.2",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {
    
          }
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.107",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.106.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.2",
                    "loose": false
                }
            ]
        },
        "name": "restBindingSIDSRlinkSIDs",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.107"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 111,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    
  • In this example, the SR LSP named restSRoverPFA1 from vmx101 to vmx 103 has a list of SIDs specified to reach the destination; along the path, a privateForwardingAdjacency is used.

    {
      "name": "restSRoverPFA1",
      "creationConfigurationMethod": "NETCONF",
      "provisioningType": "SR",
      "pathType": "primary",
      "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
      },
      "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.103"
      },
      "plannedProperties": {
        "bandwidth": "0",
        "setupPriority": 7,
        "holdingPriority": 7,
        "ero": [
          {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.101.105.2",
            "loose": false
          },
          {
            "topoObjectType": "hopId",
            "id": "binding:0110.0000.0105:restBindingSIDSRlinkSIDs",
            "loose": false
          },
          {
            "topoObjectType": "ipv4",
            "address": "11.103.107.1",
            "loose": false
          }
        ],
        "design": {
          "adminGroups": {
    
          }
        }
      }
    }
    

    The response is:

    {
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 7,
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.2",
                    "loose": false
                },
                {
                    "topoObjectType": "hopId",
                    "id": "binding:0110.0000.0105:restBindingSIDSRlinkSIDs",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ]
        },
        "name": "restSRoverPFA1",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 112,
        "controlType": "PCC",
        "provisioningType": "SR"
    }
    

Response example:

The following example shows the creation of an LSP with a bandwidth of 100M:

{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}

If the input does not conform to the JSON schema, the response includes an HTTP Error 400 and the validation errors.

{
  "error": "Input Validation error :Invalid type: number (expected string) /name"
}
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/search
Search LSPs

Performs a search in the LSP list based on the URI parameters. For example, "search?name=62.101.105" returns one link.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

name (Optional) query xsd:string

Filters on specified LSP Name, which is treated as a regular expression. Simple strings like "LP_" are acceptable, as are JavaScript regular expressions such as "/104$/").

from (Optional) query xsd:string

Filters on the LSP from/address property.

operationalStatus (Optional) query xsd:string

Filters based on the LSP operationalStatus property.

queryType (Optional) query xsd:string

The queryType parameter sets the logical operator to be used between the query parameters. By default, the queryType is AND. If the queryType is set to OR, an LSP is included in the results if any of its parameter values match the query.

Response example:
[
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.106.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-105-106",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "lspIndex": 13,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.106",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 1
        },
        "tunnelId": 60274,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 10,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.101:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 14
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.103:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 15
    },
    {
        "operationalStatus": "Active",
        "name": "11.0.0.106:11.0.0.104:300:vpls:vpn_200",
        "p2mpIndex": 184549480,
        "p2mpName": "11.0.0.104:300:vpls:vpn_200",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.106"
        },
        "liveProperties": {
            "bandwidth": 0,
            "metric": 0,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.106.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controlType": "PCC",
        "controller": "External",
        "pathType": "primary",
        "lspIndex": 16
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990091",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-101",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "lspIndex": 17,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.101",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 32533,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.101.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990082",
            "correlatedRROHopCount": 3
        },
        "name": "Silver-104-102",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.102"
        },
        "lspIndex": 18,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.102",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 3
        },
        "tunnelId": 29910,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 30,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.102.105.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "lastStatusString": "[PCServer]<PCC ACK request_id=417990087",
            "correlatedRROHopCount": 2
        },
        "name": "Silver-104-103",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.103"
        },
        "lspIndex": 19,
        "controlType": "Delegated",
        "provisioningType": "RSVP",
        "initiator": "PCC",
        "controller": "NorthStar",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.103",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32451,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "loose": false
                }
            ],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.103.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        }
    },
    {
        "operationalStatus": "Active",
        "plannedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                }
            ],
            "routingStatus": "Down",
            "adminStatus": "Up",
            "design": {
                "routingMethod": "routeByDevice"
            },
            "lastStatusString": "[PCServer]<Down controller_state=Path found on down lsp",
            "controllerStatus": {
                "status": "Path found on down lsp"
            },
            "correlatedRROHopCount": 2
        },
        "name": "rsvp-104-105",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.104"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.105"
        },
        "lspIndex": 20,
        "controlType": "PCC",
        "provisioningType": "RSVP",
        "collectedProperties": {
            "bandwidth": "0",
            "setupPriority": 7,
            "holdingPriority": 0,
            "calculatedEro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.104",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "loose": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.0.0.105",
                    "loose": false
                }
            ],
            "routingStatus": "Up",
            "adminStatus": "Up",
            "correlatedRROHopCount": 2
        },
        "tunnelId": 32072,
        "liveProperties": {
            "bandwidth": 0,
            "metric": 20,
            "setupPriority": 7,
            "holdingPriority": 0,
            "operationalStatus": "Active",
            "adminStatus": "Up",
            "ero": [],
            "rro": [
                {
                    "topoObjectType": "ipv4",
                    "address": "11.104.107.2",
                    "protectionInUse": false,
                    "protectionAvailable": false
                },
                {
                    "topoObjectType": "ipv4",
                    "address": "11.105.107.1",
                    "protectionInUse": false,
                    "protectionAvailable": false
                }
            ]
        },
        "controller": "External"
    }
]
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only lspEvent or lspTopologyEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Get a Single TE-LSP

Returns the details for a TE-LSP.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

Response example:
{
    "lspIndex": 2,
    "name": "LP_101_103",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "Delegated",
    "plannedProperties": {
	"bandwidth": "10M",
	"setupPriority": 7,
	"holdingPriority": 0,
	"calculatedEro": [
	    {"topoObjectType": "ipv4","address": "62.101.105.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.102.105.1","loose": false},
	    {"topoObjectType": "ipv4","address": "62.102.106.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.104.106.1","loose": false},
	    {"topoObjectType": "ipv4","address": "62.104.107.2","loose": false},
	    {"topoObjectType": "ipv4","address": "62.103.107.1","loose": false}
	],
	"pathName": "Path_Node101_Node103_Strict_1",
	"adminStatus": "Up",
	"routingStatus": "Up",
	"lastStatusString": "<Active PCS initialization"
    },
    "liveProperties": {
        "adminStatus": "Up",
        "bandwidth": 10000000,
        "ero": [
            {"address": "62.101.105.2", "loose": false, "topoObjectType": "ipv4" },
            {"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
            {"address": "62.103.107.1", "loose": false, "topoObjectType": "ipv4" }
        ],
        "holdingPriority": 0,
        "metric": 40,
        "pathName": "Path_Node101_Node103_Strict_1",
        "rro": [
            {"address": "62.0.0.105",   "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.101.105.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.0.0.107",   "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.105.107.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.0.0.103",   "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
            {"address": "62.103.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
        ],
        "setupPriority": 7
    },
    "operationalStatus": "Active",
    "pathType": "primary",
    "tunnelId": 56614
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Update a TE-LSP

Updates a TE-LSP using the JSON schema: lsp.json#/definitions/updateLSP .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

Request example:

The update accepts the same parameters as the create, except for parameters that cannot be modified (from, to, name, pathName, pathType).

{
    "lspIndex": 31,
    "name": "Rest_LSP_1",
    "from": {"topoObjectType": "ipv4","address": "62.0.0.101" },
    "to": {"topoObjectType": "ipv4","address": "62.0.0.103"  },
    "pathType": "primary",
    "plannedProperties": {
	"bandwidth": "15M",
	"setupPriority": 7,
	"holdingPriority": 7	
    }
}
Response example:
{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Patch a TE-LSP

Updates a TE-LSP using a RFC6902 patch: json-patch.json. The result of the patch must conform to lsp.json#/definitions/updateLsp. The REST server remove all operational parameters like operationalStatus, ..etc. . Using an empty patch (empty list) will result in the LSP to be re-provisioned without parameter changed.

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

Request example:

The Patched update accepts the same parameters as the create, except for parameters that cannot be modified (from, to, name, pathName, pathType).

[{ "op": "replace", "path": "/plannedProperties/bandwidth", "value": "100M" }]
Response example:
{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Delete a TE-LSP

Deletes a TE-LSP. This function is supported only on the PCE-initiated LSPs. PCC-controlled and PCC-delegated LSPs cannot be deleted from NorthStar. They must be deleted in the node.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

This operation does not accept a request body and does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Create a List of TE-LSPs

Creates several TE-LSPs using the following JSON schema: lsp.json#/definitions/createLSPList .

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must contain a list of LSPs to be created. The LSP parameters are the same as creating an individual LSP. The following example shows the creation of two diverse LSPs at the same time.

[
    {
        "name": "REST_LSP_DIVERSE_1", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"}
        }
    },
    {
        "name": "REST_LSP_DIVERSE_2", 
        "from": {"address": "62.0.0.103", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.101", "topoObjectType": "ipv4"},
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"}
        }
    }
]
Response example:
[
    {
        "name": "REST_LSP_DIVERSE_1", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "lspIndex": 21,
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "adminStatus": "Up",
            "routingStatus": "Unknown",
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"},
            "lastStatusString": ">Provisioning Order from REST Interface"
        },
        "controlType": "PCEInitiated",
        "operationalStatus": "Unknown"
    },
    {
        "name": "REST_LSP_DIVERSE_2", 
        "from": {"address": "62.0.0.103", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.101", "topoObjectType": "ipv4"},
        "lspIndex": 22,       
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "adminStatus": "Up",
            "routingStatus": "Unknown",
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"},
            "lastStatusString": ">Provisioning Order from REST Interface"
        },
        "controlType": "PCEInitiated",
        "operationalStatus": "Unknown"
    }
]

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Update a List of TE-LSPs

Updates several TE-LSPs using the following JSON schema: lsp.json#/definitions/lspListUpdate .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk update accepts a list of LSP updates. Each entry requires the same parameters and logic as updating a single LSP.

Response example:

The response contains a list of individual update responses (see TE-LSP update).

PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Update a List of TE-LSPs using PATCH

Updates several TE-LSPs using the following JSON schema: lsp.json#/definitions/lspListPatch .

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The bulk PATCH accepts a list consisting of lspIndex and patch:

[
	{"lspIndex" : 1,"patch":[{ "op": "replace", "path": "/plannedProperties/bandwidth", "value": "1M" }]},
	{"lspIndex" : 2,"patch":[{ "op": "replace", "path": "/plannedProperties/bandwidth", "value": "2M" }]}
]
Response example:

The response contains a list of individual update responses (see TE-LSP update).

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/bulk
Delete a List of TE-LSPs

Deletes a list of TE-LSPs. This function is supported only on the PCE-initiated LSPs. PCC-controlled and PCC-delegated LSPs cannot be deleted from NorthStar. They must be deleted in the node.b The payload must conform to lsp.json#/definitions/lspListDelete

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​/history
Get the LSP Event History

Returns the history for a TE-LSP.

 

The history contains a list of Unix-timestamped events for the LSP resource.

Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

lspIndex URI xsd:int

The unique lspIndex.

start (Optional) query xsd:int

Start timestamp: Include events with the starting timetime and later.

end (Optional) query xsd:int

End timestamp: Include events before (but not including) the ending timestamp.

Response example:
[
    {
	"plannedProperties": {
	    "bandwidth": "0",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "PCC",
	"eventStatusString": "<Down",
	"timestamp": 1427128941053,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "0",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "PCC",
	"eventStatusString": "<Down PCS initialization",
	"timestamp": 1427128941057,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "VMX103_VMX101",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "reprovision:provisioning new delegated lsp",
	"timestamp": 1427132006714,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427132006720,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427132006780,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Up",
	"timestamp": 1427132007053,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427132007069,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427132009764,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Node103_Node101",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427135406437,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "reprovision:Provision using planned data",
	"timestamp": 1427167092366,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down, PCS initialization",
	"timestamp": 1427167092372,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427167092475,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Down"
	},
	"controlType": "Delegated",
	"eventStatusString": "Down",
	"timestamp": 1427167092516,
	"operation": "State Change"
    },
    {
	"plannedProperties": {
	    "bandwidth": "10M",
	    "setupPriority": 7,
	    "holdingPriority": 0,
	    "pathName": "Path_Node101_Node103_Strict_1",
	    "adminStatus": "Up",
	    "routingStatus": "Up"
	},
	"controlType": "Delegated",
	"eventStatusString": "Active",
	"timestamp": 1427167092865,
	"operation": "State Change"
    }
]

Demands

Use the following endpoints to access demands and the related information. Demands can be created based on netflow or LDP collection tasks.

The demand resources are described in demands.json .

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands
Gets all Demands

Returns a full list of Demands.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[  
   {  
      "operationalStatus":"Unknown",
      "plannedProperties":{  
         "bandwidth":"1.684666M",
         "setupPriority":7,
         "holdingPriority":7,
         "calculatedEro":[  
            {  
               "topoObjectType":"ipv4",
               "address":"11.103.107.2",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.105.107.1",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.101.105.1",
               "loose":false
            }
         ],
         "routingStatus":"Up",
         "pathName":"11.0.0.101",
         "adminStatus":"Up",
         "lastStatusString":"[PCServer]>demand update",
         "controllerStatus":{  
            "status":""
         },
         "correlatedRROHopCount":3
      },
      "name":"vmx103_11.0.0.101/32_NONE_IP",
      "from":{  
         "topoObjectType":"ipv4",
         "address":"11.0.0.103"
      },
      "pathType":"primary",
      "to":{  
         "topoObjectType":"prefix",
         "address":"11.0.0.101",
         "length":32
      },
      "demandIndex":30,
      "liveProperties":{  
         "bandwidth":"1.684666M"
      }
   },
   {  
      "operationalStatus":"Unknown",
      "plannedProperties":{  
         "bandwidth":"1.613733M",
         "setupPriority":7,
         "holdingPriority":7,
         "calculatedEro":[  
            {  
               "topoObjectType":"ipv4",
               "address":"11.104.107.2",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.105.107.1",
               "loose":false
            },
            {  
               "topoObjectType":"ipv4",
               "address":"11.102.105.1",
               "loose":false
            }
         ],
         "routingStatus":"Up",
         "pathName":"11.0.0.102",
         "adminStatus":"Up",
         "lastStatusString":"[PCServer]>demand update",
         "controllerStatus":{  
            "status":""
         },
         "correlatedRROHopCount":3
      },
      "name":"vmx104_11.0.0.102/32_NONE_IP",
      "from":{  
         "topoObjectType":"ipv4",
         "address":"11.0.0.104"
      },
      "pathType":"primary",
      "to":{  
         "topoObjectType":"prefix",
         "address":"11.0.0.102",
         "length":32
      },
      "demandIndex":31,
      "liveProperties":{  
         "bandwidth":"1.613733M"
      }
   }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands
Create a Demand

Create a demand using the following JSON schema: demands.json#/definitions/createDemand .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{  
   "plannedProperties":{  
      "pathName":"11.0.0.11",
      "bandwidth":"0",
      "setupPriority":7,
      "holdingPriority":7,
      "design":{  
         "routingMethod":"default",
         "adminGroups":{  

         }
      }
   },
   "name":"testprefix",
   "pathType":"primary",
   "from":{  
      "topoObjectType":"ipv4",
      "address":"11.0.0.10"
   },
   "to":{  
      "topoObjectType":"ipv4",
      "address":"11.0.0.11"
   },
   "prefix":{  
      "topoObjectType":"ipv4",
      "address":"10.4.10.0",
      "length":24
   }
}
Response example:
{
    "plannedProperties": {
        "bandwidth": 0,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up"
    },
    "name": "testprefix",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 17,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.10.0",
        "length": 24
    }
}
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only demandEvent and demandTopologyEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Get a Specific Demand

Return the details of a specified demand.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

Response example:
{
    "operationalStatus": "Unknown",
    "plannedProperties": {
        "bandwidth": 0,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "10.1.10.1",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.1.2.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.2.11.11",
                "loose": false
            }
        ],
        "routingStatus": "Up",
        "correlatedRROHopCount": 3,
        "lastStatusString": "[PCServer]<demand orders update"
    },
    "name": "testprefix",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 27,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.10.0",
        "length": 24
    }
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Update a Specific Demand

Modify a specific demand using the following JSON schema: demands.json#/definitions/updateDemand .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

Request example:
{
    "plannedProperties": {
        "bandwidth": 4727,
        "setupPriority": 7,
        "holdingPriority": 7,
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "10.1.10.1",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.1.2.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "10.2.11.11",
                "loose": false
            }
        ],
        "bindingLSP":"sr-color-test",
        "routingStatus": "Up",
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "lastStatusString": "[PCServer]>new demand",
        "correlatedRROHopCount": 3
    },
    "name": "PE1_10.4.0.0/24_IP",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 47,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.0.0",
        "length": 24
    }
}
Response example:
{
    "plannedProperties": {
        "bandwidth": 4727,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "bindingLSP": "sr-color-test"
    },
    "name": "PE1_10.4.0.0/24_IP",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 47,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.0.0",
        "length": 24
    }
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Update a Specific Demand using PATCH

Patch a specific demand using a RFC6902 patch: json-patch.json. The result of the patch must conform to demands.json#/definitions/updateDemand. The REST server remove all operational parameters like operationalStatus, ..etc. .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

Request example:
[{ "op": "add", "path": "/plannedProperties/bindingLSP", "value": "sr-color-test" }]
Response example:
{
    "plannedProperties": {
        "bandwidth": 140019,
        "setupPriority": 7,
        "holdingPriority": 7,
        "pathName": "11.0.0.11",
        "adminStatus": "Up",
        "bindingLSP": "sr-color-test"
    },
    "name": "PE1_10.4.0.0/24_IP",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.10"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.11"
    },
    "demandIndex": 50,
    "prefix": {
        "topoObjectType": "prefix",
        "address": "10.4.0.0",
        "length": 24
    }
}
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/​{demandIndex}​
Delete a Specific Demand

Delete a specific demand.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

demandIndex URI xsd:int

The unique demandIndex.

This operation does not accept a request body and does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Create a set of Demands

Create a set of demands using the following JSON schema: demands.json#/definitions/createDemandList. The resulting list of demands (after the patch is applied) must also conform to demands.json#/definitions/demandListUpdate . The return code indicates the request acceptance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
	{  
	   "plannedProperties":{  
	      "pathName":"11.0.0.11",
	      "bandwidth":"0",
	      "setupPriority":7,
	      "holdingPriority":7,
	      "design":{  
	         "routingMethod":"default",
	         "adminGroups":{  
	
	         }
	      }
	   },
	   "name":"testprefix",
	   "pathType":"primary",
	   "from":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.10"
	   },
	   "to":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.11"
	   },
	   "prefix":{  
	      "topoObjectType":"ipv4",
	      "address":"10.4.10.0",
	      "length":24
	   }
	},
	{  
	   "plannedProperties":{  
	      "pathName":"11.0.0.11",
	      "bandwidth":"0",
	      "setupPriority":7,
	      "holdingPriority":7,
	      "design":{  
	         "routingMethod":"default",
	         "adminGroups":{  
	
	         }
	      }
	   },
	   "name":"testprefix2",
	   "pathType":"primary",
	   "from":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.10"
	   },
	   "to":{  
	      "topoObjectType":"ipv4",
	      "address":"11.0.0.11"
	   },
	   "prefix":{  
	      "topoObjectType":"ipv4",
	      "address":"10.4.11.0",
	      "length":24
	   }
	}	
]
Response example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.10.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.11.0",
            "length": 24
        }
    }
]
PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Update a set of Demands

Update a set of demands using the following JSON schema: demands.json#/definitions/demandListUpdate . The return code indicates the request acceptance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.20.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.21.0",
            "length": 24
        }
    }
]
Response example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.20.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.21.0",
            "length": 24
        }
    }
]
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Patch a set of Demands

Patch a set of demands using the following JSON schema: demands.json#/definitions/demandListPatch . The return code indicates the request acceptance.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
	{"demandIndex" : 51,"patch":[{ "op": "replace", "path": "/prefix/address", "value": "10.4.30.0" }]},
	{"demandIndex" : 52,"patch":[{ "op": "replace", "path": "/prefix/address", "value": "10.4.31.0" }]}
]
Response example:
[
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 51,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.30.0",
            "length": 24
        }
    },
    {
        "plannedProperties": {
            "bandwidth": 0,
            "setupPriority": 7,
            "holdingPriority": 7,
            "pathName": "11.0.0.11",
            "adminStatus": "Up"
        },
        "name": "testprefix2",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.10"
        },
        "pathType": "primary",
        "to": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.11"
        },
        "demandIndex": 52,
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.31.0",
            "length": 24
        }
    }
]
DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/demands/bulk
Delete a set of Demands

Delete a set of demands. The return code indicates the request acceptance.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:
[
  {"demandIndex":32},
  {"demandIndex":31}
]

This operation does not return a response body.

Task scheduler

Use these endpoints to work with task scheduler.

The scheduler resources are described in scheduler.json.

The scheduler also provides a socket.io interface on which taskStatusUpdate event updates like task add/remove/update/status-change are sent. The socket.io namespace used is /taskScheduler and event name taskStatusUpdate.

GET
v2/tenant/​{tenant_id}​/scheduler/tasklist
Gets all Tasks

Returns a full list of Tasks as per JSON schema: scheduler.json#/definitions/taskList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
    "taskID": "7660df1e-b8fb-4f71-987e-a3d261c4d78f",
    "taskType": "Device Collection",
    "taskName": "dc",
    "createTime": "2019-04-26T09:45:54.745",
    "interval": 1,
    "scheduleType": 0,
    "startTime": "2019-04-26T09:45:54.745",
    "stopTime": null,
    "lastExecutionTime": "2019-04-26T09:45:57.755",
    "lastExecutionEndTime": "2019-04-26T09:46:30.762",
    "lastExecutionStatus": "Completed",
    "chainAfter": null,
    "taskparam": {
        "groupName": "liveNetwork",
        "idList": [],
        "jobId": 1556271955188,
        "opts": {
            "useMgmt": true,
            "concurrentJob": 16,
            "runParsing": true,
            "archiveRawData": true
        },
        "waitingList": [],
        "deviceGroups": [],
        "collection_commands": "config|interface|tunnel_path|transit_tunnel",
        "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
    },
    "lastExecutionLog": [
        "IP Address,Hostname,Status,Job Type,Severity",
        "11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        "11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        "11.0.0.103,vmx103-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        "11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
        ",All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/7660df1e-b8fb-4f71-987e-a3d261c4d78f/1556271957755),INFO",
        ",All Devices,COMPLETE,Processing,INFO"
    ],
    "chainTaskGroup": null,
    "taskSize": 1
},
{
    "taskID": "fad3d27f-0e20-45b7-bbf1-c027509d75e0",
    "taskType": "Network Archive",
    "taskName": "NA4",
    "createTime": "2019-06-13T06:03:09.795",
    "interval": 0,
    "scheduleType": 0,
    "startTime": "2019-06-13T06:03:09.795",
    "stopTime": null,
    "lastExecutionTime": "2019-06-13T06:03:12.827",
    "lastExecutionEndTime": "2019-06-13T06:05:56.574",
    "lastExecutionStatus": "Completed",
    "chainAfter": null,
    "taskparam": {
        "opts": [
            "-l"
        ]
    },
    "lastExecutionLog": [
        "Details,Severity",
        "Parsed config files,INFO",
        "Parsed tunnel path and added to the spec file,INFO",
        "Added interface and tunnel traffic to the spec file,INFO",
        "Saved PCS tunnel to optunnel.x and added to the spec file,INFO"
    ],
    "chainTaskGroup": null,
    "taskSize": 1
}
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/scheduler/tasks
Get tasks based on filter tasktype

Returns a list of Tasks by filter tasktype(?tasktype={tasktypeFilter}) as per JSON schema: scheduler.json#/definitions/taskList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "taskID": "7660df1e-b8fb-4f71-987e-a3d261c4d78f",
        "taskType": "Device Collection",
        "taskName": "dc",
        "createTime": "2019-04-26T09:45:54.745",
        "interval": 1,
        "scheduleType": 0,
        "startTime": "2019-04-26T09:45:54.745",
        "stopTime": null,
        "lastExecutionTime": "2019-04-26T09:45:57.755",
        "lastExecutionEndTime": "2019-04-26T09:46:30.762",
        "lastExecutionStatus": "Completed",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1556271955188,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "IP Address,Hostname,Status,Job Type,Severity",
            "11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "11.0.0.103,vmx103-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            ",All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/7660df1e-b8fb-4f71-987e-a3d261c4d78f/1556271957755),INFO",
            ",All Devices,COMPLETE,Processing,INFO"
        ],
        "chainTaskGroup": null,
        "taskSize": 1
    },
    {
        "taskID": "c51aea24-1c13-426a-89c9-fbb99ecc87de",
        "taskType": "Device Collection",
        "taskName": "future",
        "createTime": "2019-06-11T12:18:52.112",
        "interval": 0,
        "scheduleType": 1,
        "startTime": "2019-06-28T12:18:00.00",
        "stopTime": null,
        "lastExecutionTime": null,
        "lastExecutionEndTime": null,
        "lastExecutionStatus": "Scheduled",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1560255525511,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [],
        "chainTaskGroup": null,
        "taskSize": 1
    },
    {
        "taskID": "70c71c06-73b4-4ea6-b4c8-48b831bb1781",
        "taskType": "Device Collection",
        "taskName": "dc1",
        "createTime": "2019-06-10T08:44:04.929",
        "interval": 0,
        "scheduleType": 0,
        "startTime": "2019-06-10T08:44:04.929",
        "stopTime": null,
        "lastExecutionTime": "2019-06-10T08:44:07.953",
        "lastExecutionEndTime": "2019-06-10T08:44:46.30",
        "lastExecutionStatus": "Completed",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1560156243979,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "Count,IP Address,Hostname,Status,Job Type,Severity",
            "1,11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "2,11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "3,11.0.0.103,vmx103-shiva,ACCESS_FAIL,config|interface|tunnel_path|transit_tunnel,CRITIC",
            "4,11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "-,-,All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/70c71c06-73b4-4ea6-b4c8-48b831bb1781/1560156247953),INFO",
            "-,-,All Devices,COMPLETE,Processing,INFO",
            "Task result:,Devices attempted- 4 | success- 3 | access_fail- 1,,,"
        ],
        "chainTaskGroup": null,
        "taskSize": 4
    },
    {
        "taskID": "00e61ebd-adb2-4d97-a18f-b072f6f43504",
        "taskType": "Device Collection",
        "taskName": "First collection",
        "createTime": "2019-06-14T05:24:45.745",
        "interval": 1,
        "scheduleType": 4,
        "startTime": "2019-06-14T05:23:00.00",
        "stopTime": null,
        "lastExecutionTime": "2019-06-14T05:24:45.759",
        "lastExecutionEndTime": "2019-06-14T05:25:32.754",
        "lastExecutionStatus": "Scheduled",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1560489792572,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "Count,IP Address,Hostname,Status,Job Type,Severity",
            "1,11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,INFO",
            "2,11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,INFO",
            "3,11.0.0.103,vmx103-shiva,ACCESS_FAIL,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,CRITIC",
            "4,11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli,INFO",
            "-,-,All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/00e61ebd-adb2-4d97-a18f-b072f6f43504/1560489885759),INFO",
            "-,-,All Devices,COMPLETE,Processing,INFO",
            "Task result:,Devices attempted- 4 | success- 3 | access_fail- 1,,,"
        ],
        "chainTaskGroup": null,
        "taskSize": 4
    },
    {
        "taskID": "862b6dfb-4494-4230-ab4b-f40849eefc10",
        "taskType": "Device Collection",
        "taskName": "dc-1day",
        "createTime": "2019-02-05T09:09:38.237",
        "interval": 1,
        "scheduleType": 4,
        "startTime": "2019-02-05T09:09:38.237",
        "stopTime": null,
        "lastExecutionTime": "2019-06-13T09:09:38.278",
        "lastExecutionEndTime": "2019-06-13T09:10:13.691",
        "lastExecutionStatus": "Scheduled",
        "chainAfter": null,
        "taskparam": {
            "groupName": "liveNetwork",
            "idList": [],
            "jobId": 1549357765460,
            "opts": {
                "useMgmt": true,
                "concurrentJob": 16,
                "runParsing": true,
                "archiveRawData": true
            },
            "waitingList": [],
            "deviceGroups": [],
            "collection_commands": "config|interface|tunnel_path|transit_tunnel",
            "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
        },
        "lastExecutionLog": [
            "Count,IP Address,Hostname,Status,Job Type,Severity",
            "1,11.0.0.101,vmx101-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "2,11.0.0.104,vmx104-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "3,11.0.0.103,vmx103-shiva,ACCESS_FAIL,config|interface|tunnel_path|transit_tunnel,CRITIC",
            "4,11.0.0.102,vmx102-shiva,OK,config|interface|tunnel_path|transit_tunnel,INFO",
            "-,-,All Devices,COMPLETE,Collection (Dir: /opt/northstar/data/collection/862b6dfb-4494-4230-ab4b-f40849eefc10/1560416978278),INFO",
            "-,-,All Devices,COMPLETE,Processing,INFO",
            "Task result:,Devices attempted- 4 | success- 3 | access_fail- 1,,,"
        ],
        "chainTaskGroup": "Device Collection_dc-1day",
        "taskSize": 4
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/scheduler/updatetask
Update a task

Update a task using the following JSON schema: scheduler.json#/definitions/updateTask. Returns response as per JSON schema: scheduler.json#/definitions/responseObject.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{  
  "taskID": "00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "taskType": "Device Collection",
  "taskName": "First collection",
  "interval": 1,
  "scheduleType": 4,
  "chainAfter": null,
  "chainTaskGroup": "",
  "taskparam": {
    "groupName": "liveNetwork",
    "idList": [],
    "opts": {
      "useMgmt": true,
      "concurrentJob": 16,
      "runParsing": true,
      "archiveRawData": true
    },
    "waitingList": [],
    "deviceGroups": [],
    "collection_commands": "config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli",
    "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
  },
  "startTime": "2019-06-14T05:23:00.000Z"
}
Response example:
{
  "taskID":"00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "success":true
}
POST
v2/tenant/​{tenant_id}​/scheduler/removeaddtask
Remove and add a new Task

Removes all the existing tasks with given taskType and adds a new Task using the following JSON schema: scheduler.json#/definitions/updateTask. Returns response as per JSON schema: scheduler.json#/definitions/responseObject.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{  
  "taskID": "00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "taskType": "Device Collection",
  "taskName": "First collection",
  "interval": 1,
  "scheduleType": 4,
  "chainAfter": null,
  "chainTaskGroup": "",
  "taskparam": {
    "groupName": "liveNetwork",
    "idList": [],
    "opts": {
      "useMgmt": true,
      "concurrentJob": 16,
      "runParsing": true,
      "archiveRawData": true
    },
    "waitingList": [],
    "deviceGroups": [],
    "collection_commands": "config|interface|tunnel_path|transit_tunnel|switch_cli|equipment_cli",
    "process_commands": "config,interface,tunnel_path,transit_tunnel,switch_cli,equipment_cli"
  },
  "startTime": "2019-06-14T05:23:00.000Z"
}
Response example:
{
  "taskID":"00e61ebd-adb2-4d97-a18f-b072f6f43504",
  "success":true
}
POST
v2/tenant/​{tenant_id}​/scheduler/deletetask
Delete tasks

Delete one or more tasks using the following JSON schema: scheduler.json#/definitions/deleteTask. Returns response as per JSON schema: scheduler.json#/definitions/responseObject.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
["00e61ebd-adb2-4d97-a18f-b072f6f43504"]
Response example:
{
    "success": true
}
GET
v2/tenant/​{tenant_id}​/scheduler/taskshistory/​{taskId}​
Gets task execution status history in HTML table format for a given taskId

Returns task execution status history in HTML table format as per JSON schema: scheduler.json#/definitions/tasksHistoryList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
{
 "header": "1) 2019-06-14T07:03:18.040Z to 2019-06-14T07:03:42.616Z",
 "details":"
  <html>
    <body>
        <table cellspacing=0 cellpadding=0 width=\"100%\" border=1>\n
            <tr bgcolor=#cccccc>
                <td nowrap>
                    <b>IP Address</b>
                </td>
                <td nowrap>
                    <b>Hostname</b>
                </td>
                <td nowrap>
                    <b>Description</b>
                </td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p107</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva</td>
                <td nowrap>Collected 9 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p105</td>
                <td nowrap>Collected 2 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p106</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.70</td>
                <td nowrap>vmx104-shiva</td>
                <td nowrap>Collected 27 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.72</td>
                <td nowrap>vmx102-shiva</td>
                <td nowrap>Collected 55 LSPs</td>
            </tr>\n
            <tr bgcolor=#ff3333>
                <td nowrap>172.25.158.71</td>
                <td nowrap>vmx103-shiva</td>
                <td nowrap>No SNMP response received before timeout</td>
            </tr>\n
        </table>
    </body>
</html>"},

{
 "header": "2) 2019-06-14T06:58:18.040Z to 2019-06-14T06:58:42.722Z",
 "details":"
  <html>
    <body>
        <table cellspacing=0 cellpadding=0 width=\"100%\" border=1>\n
            <tr bgcolor=#cccccc>
                <td nowrap>
                    <b>IP Address</b>
                </td>
                <td nowrap>
                    <b>Hostname</b>
                </td>
                <td nowrap>
                    <b>Description</b>
                </td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p107</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva</td>
                <td nowrap>Collected 9 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p105</td>
                <td nowrap>Collected 2 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p106</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.70</td>
                <td nowrap>vmx104-shiva</td>
                <td nowrap>Collected 27 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.72</td>
                <td nowrap>vmx102-shiva</td>
                <td nowrap>Collected 55 LSPs</td>
            </tr>\n
            <tr bgcolor=#ff3333>
                <td nowrap>172.25.158.71</td>
                <td nowrap>vmx103-shiva</td>
                <td nowrap>No SNMP response received before timeout</td>
            </tr>\n
        </table>
    </body>
</html>"},

{
 "header":"3) 2019-06-14T06:53:18.037Z to 2019-06-14T06:53:45.973Z",
 "details":"
 <html>
    <body>
        <table cellspacing=0 cellpadding=0 width=\"100%\" border=1>\n
            <tr bgcolor=#cccccc>
                <td nowrap>
                    <b>IP Address</b>
                </td>
                <td nowrap>
                    <b>Hostname</b>
                </td>
                <td nowrap>
                    <b>Description</b>
                </td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p107</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva</td>
                <td nowrap>Collected 9 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p106</td>
                <td nowrap>Collected 1 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.69</td>
                <td nowrap>vmx101-shiva-p105</td>
                <td nowrap>Collected 2 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.70</td>
                <td nowrap>vmx104-shiva</td>
                <td nowrap>Collected 27 LSPs</td>
            </tr>\n
            <tr>
                <td nowrap>172.25.158.72</td>
                <td nowrap>vmx102-shiva</td>
                <td nowrap>Collected 55 LSPs</td>
            </tr>\n
            <tr bgcolor=#ff3333>
                <td nowrap>172.25.158.71</td>
                <td nowrap>vmx103-shiva</td>
                <td nowrap>No SNMP response received before timeout</td>
            </tr>\n
        </table>
    </body>
</html>"
}
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/scheduler/taskstatus/​{taskId}​
Gets task execution status history for a given taskId

Returns task execution status history as per JSON schema: scheduler.json#/definitions/tasksStatusList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:18:18.044Z",
        "executionendtime": "2019-06-14 07:18:41.763Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:13:18.042Z",
        "executionendtime": "2019-06-14 07:13:42.494Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:08:18.040Z",
        "executionendtime": "2019-06-14 07:08:44.478Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 07:03:18.040Z",
        "executionendtime": "2019-06-14 07:03:42.616Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    },
    {
        "taskid": "1767fcb4-59a0-48f8-8cb7-ad2612ceb606",
        "executionbegintime": "2019-06-14 06:58:18.040Z",
        "executionendtime": "2019-06-14 06:58:42.722Z",
        "executionlog": [
            "IP Address,Hostname,Description,Severity",
            "172.25.158.69,vmx101-shiva-p107,Collected 1 LSPs,INFO",
            "172.25.158.69,vmx101-shiva,Collected 9 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p105,Collected 2 LSPs,INFO",
            "172.25.158.69,vmx101-shiva-p106,Collected 1 LSPs,INFO",
            "172.25.158.70,vmx104-shiva,Collected 27 LSPs,INFO",
            "172.25.158.72,vmx102-shiva,Collected 55 LSPs,INFO",
            "172.25.158.71,vmx103-shiva,No SNMP response received before timeout,ERROR"
        ]
    }
]

This operation does not accept a request body.

Device Profiles

Use these endpoints to work with device profiles.

The device profile schema is: deviceProfile.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/netconf/profiles/ [GET : get all device profile, POST : create new device profiles, PUT: update device profiles, DELETE : delete device profiles]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/netconf/netconfCollection/liveNetwork [ POST: create a collection job with requested device profile ids ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/netconf/netconfCollection/<id> [ GET: get a collection job status with requested job id ]

GET
v2/tenant/​{tenant_id}​/netconf/profiles
Get all Profiles

Gets all profiles.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList .

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/netconf/profiles
Create New Profiles

Creates new profiles.

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/createProfileList .

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList

PUT
v2/tenant/​{tenant_id}​/netconf/profiles
Update Profiles

Updates profiles.

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/updateProfileList and must contain an id in each profile: deviceProfile.json#/definitions/profile

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList

DELETE
v2/tenant/​{tenant_id}​/netconf/profiles
Delete Profiles

Deletes profiles.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/deleteProfileList and must contain an id in each profile: deviceProfile.json#/definitions/profile

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/profileList

POST
v2/tenant/​{tenant_id}​/netconf/netconfCollection/liveNetwork
Create a New Collect

Creates a new collection.

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The request must use the following JSON schema: deviceProfile.json#/definitions/startCollection .

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/collectionStatus .

GET
v2/tenant/​{tenant_id}​/netconf/netconfCollection/​{id}​
Get the Status of a Collection Job

Gets the Status of a collection job.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

collectionJobId URI xsd:int

The unique identifier of the collection job.

Response example:

Returns the following JSON document: deviceProfile.json#/definitions/collectionStatus .

This operation does not accept a request body.

TE-Containers

TE-Containers are related to TE-LSPs, similar to JunOS TE++ containers. The API allows the access to those TE-Containers parameter. A TE-Container has most of the TE-LSP parameters and split/merge parameters. A TE-Container will create a set of child TE-LSPs to adjust for traffic. The container normalization is handled as a separate global task.

The TE-containers schema is: lsp-containers.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-containers/ [GET, POST]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-containers/<containerIndex> [ GET , PUT, PATCH , DELETE]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/te-containers/bulk [ POST , PUT, PATCH , DELETE] Bulk API

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers

List all TE-containers.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: lsp-containers.json.json#/definitions/containerList .

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers

Creates a container.

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/createContainer schema.

Response example:

Follows lsp-containers.json#/definitions/container .

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only teContainerEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Gets a TE Container.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Response example:

Follows lsp-containers.json#/definitions/container .

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Updates a TE Container

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Request example:

The input must conform to the lsp-containers.json#/definitions/updateContainer schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/container .

PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Updates a TE Container using an RFC6902 document

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Request example:

The input must conform to the rest-schemas/json-patch.json schema, the produced document (Original resource +patch) must conform to the lsp-containers.json#/definitions/updateContainer schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/container

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/​{containerIndex}​

Deletes a container.

 

The container must exist, no payload is expected or returned.

Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

containerIndex URI xsd:int

Program ID of a TE-container.

Request example:

No content is expected.

Response example:

No content

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Create a list of TE Container

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/containerCreateList schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/containerList .

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Modify a list of TE Container

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/containerUpdateList schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/containerList .

PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Modify a list of TE Container using a PATCH

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The input must conform to the lsp-containers.json#/definitions/containerListPatch schema. the resulting container list (with patch applied) must also comply to the lsp-containers.json#/definitions/containerUpdateList schema.

Response example:

Returns the following JSON document: lsp-containers.json#/definitions/containerList

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/te-containers/bulk

Deletes a list of containers.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

The containers must exist, the payload must conform to lsp-containers.json#/definitions/containerListDelete.

Response example:

Facilities

Use these endpoints to work with facilities.

The facilities schema is: facilities.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/facilities/ [GET : get all facilities]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/facilities/<facilityIndex> [ GET : get a facilitity, PUT : update, DELETE: delete]

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities

Gets all Facilities.

 

Returns the following JSON document: facilities.json#/definitions/facilityList .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities

Creates a facility.

 

Returns the following JSON document: facilities.json#/definitions/facility .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

This operation does not accept a request body and does not return a response body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only facilityEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/​{facilityIndex}​

Gets a Facility.

 

Returns the following JSON document: facilities.json#/definitions/facility .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

facilityIndex URI xsd:int

Program ID of a facility.

This operation does not accept a request body and does not return a response body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/​{facilityIndex}​

Updates a facility

 

Returns the following JSON document: facilities.json#/definitions/facility .

Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

facilityIndex URI xsd:int

Program ID of a facility.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/facilities/​{facilityIndex}​

Deletes a facility.

 
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

facilityIndex URI xsd:int

Program ID of a facility.

This operation does not accept a request body and does not return a response body.

P2MP

Use these endpoints to retrieve the P2MP lists and manage the P2MP groups. The complete set of endpoints and parameters is described in the schema p2mp.json. P2MP group in NorthStar can be provisioned using NETCONF (default) or PCEP. Since NorthStar 5.1 flow mapping to MVPN using source and group is supported.

The API allows for group and leaf discovery, creation, modification, deletion and bulk deletion. Those operations are supported using the following endpoints:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/ [GET: get all P2MP groups, POST: create a new P2MP group ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex> [GET: get a P2MP group specified by index, PUT/PATCH: modify the P2MP group, DELETE: Delete the P2MP group and all its members leaves, POST: Create a list of leaves, ]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex>/<lspIndex> [GET: get a P2MP leaf by index, PUT: get a P2MP leaf specified by index, DELETE: remove a leaf]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex>/bulk [DELETE: bulk remove a list of leaves]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/p2mp/<p2mpGroupIndex>/bulk [DELETE only: delete a list of TE-LSP members]

A special use case for the PATCH method is to re-provision an entire tree (or a leaf) and do not change anything. To reprovision a tree a PATCH /NorthStar/API/v2/tenant/1/topology/1/p2mp/<p2mpGroupIndex> payload

[]
The same method is used for a leaf: PATCH /NorthStar/API/v2/tenant/1/topology/1/te-lsps/< lspIndex> payload
[]
. Another use case for PATH is to add or replace flow mapping, the PATH examples show how to achieve those operations.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp
Get P2MP groups

Returns a full list of P2MP groups.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
    {
        "p2mpGroupIndex": 3,
        "p2mpIndex": 40,
        "name": "geeiamtree",
        "topoObjectType": "p2mpGroup",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "links": [
            {
                "rel": "self",
                "href": "3/"
            }
        ]
    },
    {
        "p2mpGroupIndex": 4,
        "p2mpIndex": 43,
        "name": "mapletree",
        "topoObjectType": "p2mpGroup",
        "from": {
            "topoObjectType": "ipv4",
            "address": "11.0.0.101"
        },
        "links": [
            {
                "rel": "self",
                "href": "4/"
            }
        ]
    }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp
Create a P2MP group

Create a P2MP group using the following schema: p2mp.json#/definitions/createP2mpGroup. The API request contains the destination list and the common planned properties. The common planned properties may include plannedProperties with flow mapping parameters.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Request example:

While creating the P2MP group, ensure that either the following plannedProperties parameters of all the members are identical, or the group plannedProperties are applied. Do not set the plannedProperties in the members. If you do not provide the plannedProperties parameter, the default value is applied.

P2MP group creation required Attributes.
Attribute Type Default Description
name string None P2MP group name name
from/address string none P2MP group ingress ingress
plannedProperties/bandwidth string or integer 0 P2MP members bandwidth
plannedProperties/setupPriority integer 7 P2MP member setup priority
plannedProperties/holdingPriority integer 0 P2MP member setup holdingPriority
plannedProperties/design/adminGroups/attributeIncludeAny integer 0 (not set) P2MP member setup administrative color include any
plannedProperties/design/adminGroups/attributeIncludeAll integer 0 (not set) P2MP member setup administrative color include all
plannedProperties/design/adminGroups/attributeExclude integer 0 (not set) P2MP member setup administrative color exclude
lsps list None List of members with name and destination. The name must be unique on the ingress.

The following examples show different set of parameters and results:

  • A P2MP tree with 3 Members using NETCONF.

    {
      "name":"alphatree",
      "from":{"address": "11.0.0.101", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          },
          "diversityGroup":"twins"
        }
      },
      "lsps":[
        {
          "name":"alphatree-101102",
          "to":{"address": "11.0.0.102", "topoObjectType": "ipv4"}
        },
        {
          "name":"alphatree-101103",
          "to":{"address": "11.0.0.103", "topoObjectType": "ipv4"}
        },
        {
          "name":"alphatree-101104",
          "to":{"address": "11.0.0.104", "topoObjectType": "ipv4"}
        }
      ]
    }

    The response is:

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.101", "topoObjectType": "ipv4"},
      "lsps":[
        {
          "name":"alphatree-101102",
          "to":{"address": "11.0.0.102", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99K",
            "correlatedRROHopCount":0,
            "design":{
              "diversityGroup":"TWINS"
            },
            "ero":[
              {
                "address":"11.101.105.2",
                "loose":false,
                "topoObjectType":"ipv4"
              },
              {
                "address":"11.102.105.1",
                "loose":false,
                "topoObjectType":"ipv4"
              }
            ],
            "holdingPriority":0,
            "lastStatusString":"[ConfigServer]<Netconf provisioning order received",
            "pathName":"alphatree-101102_p0",
            "setupPriority":7
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.101",
            "topoObjectType":"ipv4"
          },
          "lspIndex":91,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree-101103",
          "to":{"address": "11.0.0.103", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99K",
            "correlatedRROHopCount":0,
            "design":{
              "diversityGroup":"TWINS"
            },
            "ero":[
              {
                "address":"11.101.105.2",
                "loose":false,
                "topoObjectType":"ipv4"
              },
              {
                "address":"11.105.107.2",
                "loose":false,
                "topoObjectType":"ipv4"
              },
              {
                "address":"11.103.107.1",
                "loose":false,
                "topoObjectType":"ipv4"
              }
            ],
            "holdingPriority":0,
            "lastStatusString":"[ConfigServer]<Netconf provisioning order received",
            "pathName":"alphatree-101103_p0",
            "setupPriority":7
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.101",
            "topoObjectType":"ipv4"
          },
          "lspIndex":92,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree-101104",
          "to":{"address": "11.0.0.104", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99K",
            "correlatedRROHopCount":0,
            "design":{
              "diversityGroup":"TWINS"
            },
            "ero":[
              {
                "address":"dynamic",
                "loose":false,
                "topoObjectType":"ipv4"
              }
            ],
            "holdingPriority":0,
            "lastStatusString":"[ConfigServer]<Netconf provisioning order received",
            "pathName":"alphatree-101104_p0",
            "setupPriority":7
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.101",
            "topoObjectType":"ipv4"
          },
          "lspIndex":93,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
  • Create a P2MP group using PCEP and associate it with a Multicast VPN. This is the NorthStar 5.1 version using the flow mapping, prior version were using different encoding.

    {
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.2.2.2", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.3.3.3", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"}
        },
        {
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"}
        }
      ],
      "creationConfigurationMethod":"PCEP"
    }

    The response is:

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        },
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.2.2.2", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.3.3.3", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "name":"alphatree_11.0.0.213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "pathName":"alphatree_to213_p0",
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145953,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_11.0.0.214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145954,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }

Response example:

The responses are shown per example in the request section. In general the response is a JSON document conforming to p2mp.json#/definitions/p2mpGroup.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/stream
Start a SSE Stream

See EventSource for format. The notifications send on that stream are only p2mpEvent. The data will contain a JSON document (see NorthStar Notification API).

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Get a Specific P2MP Group

Returns the details of a specified P2MP group.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Response example:
{
  "topoObjectType":"p2mpGroup",
  "p2mpGroupIndex":8,
  "name":"geeiamtree",
  "from":{"address": "11.0.0.101", "topoObjectType": "ipv4"},
  "plannedProperties":{
    "bandwidth":"99k",
    "setupPriority":7,
    "holdingPriority":0,
    "design":{
      "adminGroups":{
        "attributeExclude":0,
        "attributeIncludeAll":0,
        "attributeIncludeAny":0
      }
    }
  },
  "lsps":[
    {
      "name":"geeiamtree101-102",
      "to":{"address": "11.0.0.102", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "adminStatus":"Up",
        "bandwidth":"99K",
        "calculatedEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "correlatedRROHopCount":2,
        "holdingPriority":0,
        "lastStatusString":"[PCServer]<Active",
        "pathName":"geeiamtree101-102_p0",
        "preferredEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "routingStatus":"Up",
        "setupPriority":7
      },
      "collectedProperties":{
        "adminStatus":"Up",
        "bandwidth":"99K",
        "calculatedEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "correlatedRROHopCount":2,
        "explicitPathName":"geeiamtree101-102_p0",
        "holdingPriority":0,
        "preferredEro":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "routingStatus":"Up",
        "setupPriority":7
      },
      "controlType":"PCC",
      "controller":"External",
      "from":{
        "address":"11.0.0.101",
        "topoObjectType":"ipv4"
      },
      "liveProperties":{
        "adminStatus":"Up",
        "bandwidth":99000,
        "ero":[
          {
            "address":"11.101.105.2",
            "loose":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "loose":false,
            "topoObjectType":"ipv4"
          }
        ],
        "holdingPriority":0,
        "metric":0,
        "operationalStatus":"Active",
        "pathName":"geeiamtree101-102_p0",
        "rro":[
          {
            "address":"11.101.105.2",
            "protectionAvailable":false,
            "protectionInUse":false,
            "topoObjectType":"ipv4"
          },
          {
            "address":"11.102.105.1",
            "protectionAvailable":false,
            "protectionInUse":false,
            "topoObjectType":"ipv4"
          }
        ],
        "setupPriority":7
      },
      "lspIndex":638,
      "operationalStatus":"Active",
      "p2mpIndex":184549477,
      "p2mpName":"geeiamtree",
      "pathType":"primary",
      "provisioningType":"RSVP"
    }
  ],
  "p2mpIndex":638
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Update a Specific P2MP Group

Modify a specific P2MP group, if the LSPS are not specified, the common properties are changed, not the LSPs. If the LSPs are specified, the set of LSPs will be modified. i.e LSP that is not in the new list will be remove, the other will be added/updated".

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Request example:
{
  "topoObjectType":"p2mpGroup",
  "name":"alphatree",
  "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
  "plannedProperties":{
    "bandwidth":"21k",
    "setupPriority":3,
    "holdingPriority":3
  },
  "lsps":[
    {"to":{"address": "11.0.0.102", "topoObjectType": "ipv4"}},
    {"to":{"address": "11.0.0.103", "topoObjectType": "ipv4"}},
    {"to":{"address": "11.0.0.104", "topoObjectType": "ipv4"}}
  ]
}
Response example:
{
  "topoObjectType":"p2mpGroup",
  "name":"alphatree",
  "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
  "plannedProperties":{
    "bandwidth":"21k",
    "setupPriority":3,
    "holdingPriority":3,
    "design":{
      "adminGroups":{
        "attributeExclude":0,
        "attributeIncludeAll":0,
        "attributeIncludeAny":0
      }
    }
  },
  "lsps":[
    {
      "name":"alphatree_to213",
      "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "adminStatus":"Up",
        "bandwidth":"21k",
        "design":{
          "routingMethod":"routeByDevice"
        },
        "holdingPriority":3,
        "pathName":"alphatree_to213_p0",
        "setupPriority":3
      },
      "controlType":"PCC",
      "from":{
        "address":"11.0.0.191",
        "topoObjectType":"ipv4"
      },
      "lspIndex":145948,
      "p2mpName":"alphatree",
      "pathType":"primary",
      "provisioningType":"RSVP"
    },
    {
      "name":"alphatree_to214",
      "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "adminStatus":"Up",
        "bandwidth":"21k",
        "design":{
          "routingMethod":"routeByDevice"
        },
        "holdingPriority":3,
        "pathName":"alphatree_to214_p0",
        "setupPriority":3
      },
      "controlType":"PCC",
      "from":{
        "address":"11.0.0.191",
        "topoObjectType":"ipv4"
      },
      "lspIndex":145949,
      "p2mpName":"alphatree",
      "pathType":"primary",
      "provisioningType":"RSVP"
    }
  ]
}
PATCH
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Update a Specific P2MP Group using a PATCH document

Modify a specific P2MP group using a PATCH document (RFC6906). The operation has the same behavior as the PUT method. An empty PATCH will re-provision the complete tree.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Request example:

The following examples show different set of parameters and results:

  • Modify the group bandwidth, setup and holding priority.

    [{ "op": "add", "path": "/plannedProperties/bandwidth", "value": "21k" },{ "op": "add", "path": "/plannedProperties/setupPriority", "value": 3 },{ "op": "add", "path": "/plannedProperties/holdingPriority", "value": 3 }]
    
  • Modify flow mapping: replace all (initial flows with groups 239.2.2.2 and 239.3.3.3) flows.

    [
      {
        "op":"add",
        "path":"/plannedProperties/flows",
        "value":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.4.4.4", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.5.5.5", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      }
    ]
    
  • Modify flow mapping: insert a new flow (initial flows with groups 239.2.2.2 and 239.3.3.3) flows.

    [
      {
        "op":"add",
        "path":"/plannedProperties/flows/0",
        "value": {
          "topoObjectType":"flow",
          "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
          "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
          "group":{"address": "239.1.1.1", "length": 32, "topoObjectType": "prefix"}
        }  
      }
    ]
    

Response example:

The response to the requests are

  • Modify the group bandwidth, setup and holding priority.

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"21k",
        "setupPriority":3,
        "holdingPriority":3,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        }
      },
      "lsps":[
        {
          "name":"alphatree_to213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"21k",
            "design":{
              "routingMethod":"routeByDevice"
            },
            "holdingPriority":3,
            "pathName":"alphatree_to213_p0",
            "setupPriority":3
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145948,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_to214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"21k",
            "design":{
              "routingMethod":"routeByDevice"
            },
            "holdingPriority":3,
            "pathName":"alphatree_to214_p0",
            "setupPriority":3
          },
          "controlType":"PCC",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145949,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
  • Modify flow mapping: replace all flows.

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        },
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.4.4.4", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.5.5.5", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "name":"alphatree_11.0.0.213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "pathName":"alphatree_to213_p0",
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145953,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_11.0.0.214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145954,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
    
  • Modify flow mapping: insert a new flow flows.

    {
      "topoObjectType":"p2mpGroup",
      "name":"alphatree",
      "from":{"address": "11.0.0.191", "topoObjectType": "ipv4"},
      "plannedProperties":{
        "bandwidth":"99k",
        "setupPriority":7,
        "holdingPriority":7,
        "design":{
          "adminGroups":{
            "attributeExclude":0,
            "attributeIncludeAll":0,
            "attributeIncludeAny":0
          }
        },
        "flows":[
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.1.1.1", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.2.2.2", "length": 32, "topoObjectType": "prefix"}
          },
          {
            "topoObjectType":"flow",
            "vpn":{"rd": "11.0.0.105:65000", "topoObjectType": "vpnId"},
            "source":{"address": "11.0.0.101", "length": 32, "topoObjectType": "prefix"},
            "group":{"address": "239.3.3.3", "length": 32, "topoObjectType": "prefix"}
          }
        ]
      },
      "lsps":[
        {
          "name":"alphatree_11.0.0.213",
          "to":{"address": "11.0.0.213", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "pathName":"alphatree_to213_p0",
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145953,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        },
        {
          "name":"alphatree_11.0.0.214",
          "to":{"address": "11.0.0.214", "topoObjectType": "ipv4"},
          "plannedProperties":{
            "adminStatus":"Up",
            "bandwidth":"99k",
            "holdingPriority":7,
            "setupPriority":7
          },
          "controlType":"PCEInitiated",
          "from":{
            "address":"11.0.0.191",
            "topoObjectType":"ipv4"
          },
          "lspIndex":145954,
          "p2mpName":"alphatree",
          "pathType":"primary",
          "provisioningType":"RSVP"
        }
      ]
    }
    

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Delete a P2MP Group

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/bulk
Delete list of P2MP Groups

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Bulk process P2MP Groups.

Request example:
[
    {"p2mpGroupIndex": 3},
    {"p2mpGroupIndex": 4}
]

This operation does not return a response body.

POST
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​
Create a P2MP Leaf

The POST URL accepts a list of new leaves. Use the following schema to create a P2MP leaf: p2mp.json#/definitions/createP2mpLeavesList .

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

Request example:
[
  {
    "name":"alphatree_to225",
    "to":{"address": "11.0.0.225", "topoObjectType": "ipv4"}
  }
]
Response example:
[
  {
    "name":"alphatree_to225",
    "to":{"address": "11.0.0.225", "topoObjectType": "ipv4"},
    "plannedProperties":{
      "adminStatus":"Up",
      "bandwidth":"21k",
      "holdingPriority":3,
      "pathName":"alphatree_to225_p0",
      "setupPriority":3
    },
    "controlType":"PCC",
    "from":{
      "address":"11.0.0.191",
      "topoObjectType":"ipv4"
    },
    "lspIndex":145950,
    "p2mpName":"alphatree",
    "pathType":"primary",
    "provisioningType":"RSVP"
  }
]
GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​/​{lspIndex}​
Get a Specific P2MP Leaf

Returns the details of a specified P2MP leaf.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

lspIndex URI xsd:int

The unique lspIndex.

Response example:
{
    "operationalStatus": "Active",
    "plannedProperties": {
        "bandwidth": "99K",
        "setupPriority": 7,
        "holdingPriority": 0,
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "routingStatus": "Up",
        "pathName": "geeiamtree101-102_p0",
        "adminStatus": "Up",
        "preferredEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "lastStatusString": "[PCServer]<Active",
        "correlatedRROHopCount": 2
    },
    "name": "geeiamtree101-102",
    "from": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.101"
    },
    "pathType": "primary",
    "to": {
        "topoObjectType": "ipv4",
        "address": "11.0.0.102"
    },
    "lspIndex": 638,
    "controlType": "PCC",
    "provisioningType": "RSVP",
    "p2mpName": "geeiamtree",
    "collectedProperties": {
        "bandwidth": "99K",
        "setupPriority": 7,
        "holdingPriority": 0,
        "calculatedEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "routingStatus": "Up",
        "explicitPathName": "geeiamtree101-102_p0",
        "adminStatus": "Up",
        "preferredEro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "correlatedRROHopCount": 2
    },
    "p2mpIndex": 184549477,
    "liveProperties": {
        "bandwidth": 99000,
        "metric": 0,
        "setupPriority": 7,
        "holdingPriority": 0,
        "operationalStatus": "Active",
        "adminStatus": "Up",
        "ero": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "loose": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "loose": false
            }
        ],
        "rro": [
            {
                "topoObjectType": "ipv4",
                "address": "11.101.105.2",
                "protectionInUse": false,
                "protectionAvailable": false
            },
            {
                "topoObjectType": "ipv4",
                "address": "11.102.105.1",
                "protectionInUse": false,
                "protectionAvailable": false
            }
        ],
        "pathName": "geeiamtree101-102_p0"
    },
    "controller": "External"
}

This operation does not accept a request body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​/​{lspIndex}​
Delete a P2MP Leaf

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

lspIndex URI xsd:int

The unique lspIndex.

This operation does not accept a request body and does not return a response body.

DELETE
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/p2mp/​{p2mpGroupIndex}​/bulk
Delete list of P2MP leaves

No response is received from the REST API unless an error occurs.

 
Normal response codes
204
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

p2mpGroupIndex URI xsd:int

Signaling protocol P2MP id, which may be empty, and is the same for all TE-LSPs of a tunnel.

lspIndex URI xsd:int

Bulk process P2MP leaves.

Request example:
[
    {"lspIndex": 145948},
    {"lspIndex": 145950}
]

This operation does not return a response body.

VRF

The endpoints defined here allows to discover which VRFs are configured in the router. This endpoint has been introduced in NorthStar 5.1 and is read-only. The information from this endpoint is opulated using the device collection.

Those operations are supported using the following endpoints:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/vrfs/ [GET: list the nodes with VRF information]

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/vrfs/<nodeIndex> [GET: list the VRF on a given node]

The detail of the information provided is defined in the associated json-schema vrfs.json.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/vrfs
Get the nodes with VRF

Returns the list of VRF summary: which node have vrf information and how many vrf are present.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "1/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "entries":6
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "2/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0105", "nodeIndex": 2, "topoObjectType": "node", "topologyIndex": 1},
    "entries":1
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "3/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0106", "nodeIndex": 3, "topoObjectType": "node", "topologyIndex": 1},
    "entries":6
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrfSummary",
    "links":[{"href": "4/", "rel": "vrfs"}],
    "node":{"id": "0110.0000.0107", "nodeIndex": 4, "topoObjectType": "node", "topologyIndex": 1},
    "entries":3
  }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/vrfs/​{nodeIndex}​
List the VRF on a given node

Returns the list of discovered VRF for that node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

The unique nodeIndex.

Response example:
[
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"cherryblossom",
    "routeDistinguisher":"11.0.0.102:65000",
    "interfaces":[{"interfaceName": "ge-0/0/7.0"}],
    "importPolicies":[{"policyName": "65000:100"}],
    "exportPolicies":[{"policyName": "65000:100"}]
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"etree1",
    "routeDistinguisher":"11.0.0.102:301",
    "interfaces":[{"interfaceName": "ge-0/0/5.301"}],
    "importPolicies":[{"policyName": "6500:301"}],
    "exportPolicies":[{"policyName": "6500:301"}],
    "VLANID":100
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"l2vpn_3_ce_101",
    "routeDistinguisher":"",
    "interfaces":[{"interfaceName": "ge-0/0/5.3"}]
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"vpn_0",
    "routeDistinguisher":"11.0.0.102:100",
    "interfaces":[{"interfaceName": "ge-0/0/1.0"}, {"interfaceName": "lo0.1"}],
    "importPolicies":[{"policyName": "11:100"}],
    "exportPolicies":[{"policyName": "11:100"}],
    "lspMatchRegex":"^Silver.*"
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"vpws_sh6_sh2_vlan1002",
    "routeDistinguisher":"11.0.0.102:2002",
    "interfaces":[{"interfaceName": "ge-0/0/5.1002"}],
    "importPolicies":[{"policyName": "6500:1002"}],
    "exportPolicies":[{"policyName": "6500:1002"}]
  },
  {
    "topologyIndex":1,
    "topoObjectType":"vrf",
    "node":{"id": "0110.0000.0102", "nodeIndex": 1, "topoObjectType": "node", "topologyIndex": 1},
    "instanceName":"vpn_200_ce_101",
    "routeDistinguisher":"",
    "interfaces":[{"interfaceName": "ge-0/0/5.200"}]
  }
]

This operation does not accept a request body.

BGP Routes

If PRDP is configured for a set of nodes, this API allows to see the BGP routes retrived by NorthStar.

The schema is: route.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/routes/ [GET : get the list of nodes with bgp routes (summary only)

  • https://northstar.example.net:8443/NorthStar/API/v2/tenant/<tenant-id>/topology/<topology-id>/routes/<nodeIndex> [ GET : get the list of routes on a node]

NorthStar is limiting the number of routes fetched, the list may be incomplete.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/routes

List all nodes with BGP routes and the number of routes for that node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

Response example:

Returns the following JSON document: route.json.json#/definitions/summaryList .

[
    {
        "topologyIndex": 1,
        "topologyObjectType": "routeSummary",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 7,
            "id": "0110.0000.0012",
            "topologyIndex": 1
        },
        "entries": 50
    },
    {
        "topologyIndex": 1,
        "topologyObjectType": "routeSummary",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 5,
            "id": "0110.0000.0010",
            "topologyIndex": 1
        },
        "entries": 98
    },
    {
        "topologyIndex": 1,
        "topologyObjectType": "routeSummary",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 6,
            "id": "0110.0000.0011",
            "topologyIndex": 1
        },
        "entries": 50
    }
]

This operation does not accept a request body.

GET
v2/tenant/​{tenant_id}​/topology/​{topology_id}​/routes/​{nodeIndex}​

Gets the routes maintained by NorthStar for a node.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

topologyId URI xsd:int

A unique identifier for the topology. In NorthStar version 2, the unique identifier is set to 1.

nodeIndex URI xsd:int

Program ID of a node.

Response example:

Follows route.json#/definitions/routeList .

[
    {
        "topologyIndex": 1,
        "topologyObjectType": "route",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 7,
            "id": "0110.0000.0012",
            "topologyIndex": 1
        },
        "table": "inet.0",
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.4.0",
            "length": 24
        },
        "pathCookie": 190819980,
        "asPath": [
            "3",
            "4"
        ],
        "protocolNextHops": [
            "11.0.0.22",
            "11.0.0.31"
        ],
        "protocol": "BGP",
        "routePreference": 170,
        "localPreference": 100,
        "vpnLabel": 0
    },
    {
        "topologyIndex": 1,
        "topologyObjectType": "route",
        "node": {
            "topoObjectType": "node",
            "nodeIndex": 7,
            "id": "0110.0000.0012",
            "topologyIndex": 1
        },
        "table": "inet.0",
        "prefix": {
            "topoObjectType": "prefix",
            "address": "10.4.22.0",
            "length": 24
        },
        "pathCookie": 190821156,
        "asPath": [
            "2",
            "4"
        ],
        "protocolNextHops": [
            "11.0.0.22"
        ],
        "protocol": "BGP",
        "routePreference": 170,
        "localPreference": 100,
        "vpnLabel": 0
    }
]

This operation does not accept a request body.

Analytics API

The analytics REST API allows to query the analytics data collected by NorthStar controller. Each URL accepts a POST request with as set of parameters refining the query.

Each queried object has specific counters. Those counters are dynamically generated based on the data collected. The queries are

  • Interfaces: /NorthStar/API/v2/tenant/1/statistics/interfaces/fields

  • LSP/demands: /NorthStar/API/v2/tenant/1/statistics/te-lsps/fields

  • Interface delay/loss: /NorthStar/API/v2/tenant/1/statistics/delay/fields

The information returned is a JSON object with a fields property containing a list of strings. For instance:
{ "fields": [ "average_rtt", "jitter", "loss_percent", "max_rtt", "min_rtt", "one_way" ]}

Other common parameters are startTime and endTime, Those parameter represent an absolute or relative time.

Absolute values can be either a string (ISO8601 format, date is required, time is optional) or an integer (milliseconds since epoch). The special value now is accepted.

The Date mathematic consist of a plus or minus followed by a time unit: y (year), M(month), w (week), d (day), h or H (hours), m (minutes) or s (seconds). For instance a query with startTime set to "now-1d", endTime "now" will retrieve the statistics for the last day. This field is based on ElasticSearch Date Math

POST
v2/tenant/​{tenant_id}​/statistics/demands/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • demand (array ): Array of demand objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "id": "demands-bulk.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the GET bulk demand API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "demand": {
      "$ref": "/stats-templates/common.json#/definitions/demandArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/delay/​{device_name}​/​{interface_name}​
Query resource {interface_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{interface_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/fields
Query resource fields

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • startTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interfaces/fields API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/top
Query resource top

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (integer ): Max number of interfaces top return.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "size": {
      "description": "Max number of interfaces top return",
      "type": "integer",
      "minimum": 1
    },
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/childtraffic/​{device_name}​/​{interface_name}​
Query resource {interface_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "interface-traffic.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST interface-traffic API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{interface_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/bulkdelay
Query resource bulkdelay

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/traffic
Query resource traffic

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/traffic/​{device_name}​
Query resource {device_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/traffic/​{device_name}​/​{interface_name}​
Query resource {interface_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "interface-traffic.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST interface-traffic API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{interface_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/interfaces/topdelay
Query resource topdelay

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (integer ): Max number of interfaces top return.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "size": {
      "description": "Max number of interfaces top return",
      "type": "integer",
      "minimum": 1
    },
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/childtraffic/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/jnxcos/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interface (array ): Array of interface objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /jnxcos/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/interfaceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/delay/fields
Query resource fields

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • startTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/fields API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • startTime (Either string or integer): Date time. .

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "id": "lsp-bulk.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST bulk lsp API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/lspArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/fields
Query resource fields

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • startTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/fields API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/top
Query resource top

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (number ): ???.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "size": {
      "$ref": "/stats-templates/common.json#/definitions/size"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/bulkdelay
Query resource bulkdelay

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • startTime (Either string or integer): Date time. .

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/lspArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/delay/​{device_name}​/​{lsp_name}​
Query resource {lsp_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{lsp_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/traffic
Query resource traffic

The POST request accepts a JSON object describing the query parameters.

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/traffic/​{device_name}​
Query resource {device_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/traffic/​{device_name}​/​{lsp_name}​
Query resource {lsp_name}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "lsp-traffic.json",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-lsps/traffic API",
  "type": "object",
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{lsp_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/events/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • from (number ): TODO.

  • startTime (Either string or integer): Date time. .

  • filter (object ): Generic filter object, ???.

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

  • order : Result order (asc or desc).the value must be one of:

    • asc

    • desc

  • size (number ): ???.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "events-bulk.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST bulk lsp API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/lspArray"
    },
    "size": {
      "$ref": "/stats-templates/common.json#/definitions/size"
    },
    "from": {
      "$ref": "/stats-templates/common.json#/definitions/from"
    },
    "order": {
      "$ref": "/stats-templates/common.json#/definitions/order"
    },
    "filter": {
      "$ref": "/stats-templates/common.json#/definitions/filter"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-lsps/events/​{lsp_name}​
Query resource {lsp_name}

This query does not accept any parameter.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{lsp_name} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/device/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/device/top
Query resource top

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • device (array ): Array of node objects.

  • endTime (Either string or integer): Date time. .

  • size (number ): ???.

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /device/top API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "size": {
      "$ref": "/stats-templates/common.json#/definitions/size"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "device": {
      "$ref": "/stats-templates/common.json#/definitions/deviceArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/ldp-lsps/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • startTime (Either string or integer): Date time. .

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • lsp (array ): Array of lsp objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "id": "ldp-lsps.hjson",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the GET bulk lsp API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "lsp": {
      "$ref": "/stats-templates/common.json#/definitions/fecArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/ldp-lsps/traffic/​{device_name}​/​{fec}​
Query resource {fec}

The POST request accepts a JSON object describing the query parameters.

  • counter (string ): Name of the counter to aggregate by..

  • endTime (Either string or integer): Date time. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

.

 

The POST data must conform to the following JSON schema.

{
  "id": "lsp-traffic.json",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the GET /te-lsps/traffic API",
  "type": "object",
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counter"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

{device_name} URI xsd:string

TODO

{fec} URI xsd:string

TODO

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/netflow/prefix_flow_demand
Query resource prefix_flow_demand

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • demand (array ): Array of demand objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /interface/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "demand": {
      "$ref": "/stats-templates/common.json#/definitions/demandArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/sid/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • sid (array ): Array of sid objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /sid/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/sidArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/sr-te-policy/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • policy (array ): Array of policy objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /sr-te-policy/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "interface": {
      "$ref": "/stats-templates/common.json#/definitions/policyArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example: Response example:
POST
v2/tenant/​{tenant_id}​/statistics/te-containers/traffic/bulk
Query resource bulk

The POST request accepts a JSON object describing the query parameters.

  • interval (string ): Time duration for instance 1d, 1y, 24h,.

  • counter : Either a single counter or an array of counters. .

  • aggregation (string ): Aggregation function to use to aggregate values.the value must be one of:

    • avg

    • max

    • min

    • cardinality

    • sum

  • startTime (Either string or integer): Date time. .

  • containerLsp (array ): Array of Container LSP objects.

  • endTime (Either string or integer): Date time. .

.

 

The POST data must conform to the following JSON schema.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Specifies the parameters expected in the POST /te-containers/traffic/bulk API",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "startTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "endTime": {
      "$ref": "/stats-templates/common.json#/definitions/date"
    },
    "interval": {
      "$ref": "/stats-templates/common.json#/definitions/interval"
    },
    "counter": {
      "$ref": "/stats-templates/common.json#/definitions/counters"
    },
    "aggregation": {
      "$ref": "/stats-templates/common.json#/definitions/aggregation"
    },
    "containerLsp": {
      "$ref": "/stats-templates/common.json#/definitions/containerLspArray"
    }
  }
}
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:
{
    "startTime": "now-1h",
    "endTime": "now",
    "aggregation": "avg",
    "interval": "5m",
    "counter": [
      "lsp_stats.pps",
      "lsp_stats.bps"
    ],
    "containerLsp": [
      {
        "name": "Container-lsp-vmx102-104",
        "index": 2
      },
      {
        "name": "Container-lsp-vmx101-106",
        "index": 3
      }
    ]
  }
Response example:
{
    "startTime": 1555989900000,
    "Container-lsp-vmx101-106": {
      "id": {
        "statisticType": "lsp",
        "name": "Container-lsp-vmx101-106"
      },
      "lsp_stats.pps": [
        392,
        617,
        678,
        710,
        663,
        697,
        722,
        662,
        672,
        674,
        717,
        706
      ],
      "lsp_stats.bps": [
        4172245,
        6557747,
        7205803,
        7550527,
        7047811,
        7414119,
        7677474,
        7035194,
        7143393,
        7163097,
        7618785,
        7504668
      ]
    },
    "Container-lsp-vmx102-104": {
      "id": {
        "statisticType": "lsp",
        "name": "Container-lsp-vmx102-104"
      },
      "lsp_stats.bps": [        
        674246,
        6283335,
        5609443,
        6873056,
        6343583,
        5900760,
        5775125,
        5986879,
        6336140,
        6031002,
        5902709,
        2955696
      ],
      "lsp_stats.pps": [
        63,
        591,
        528,
        646,
        597,
        555,
        543,
        563,
        596,
        567,
        555,
        278
      ]
    }
  }

Transport Topology acquisition

Enables configuration of the NorthStar connection to the transport controller for retrieval of abstracted transport topology and automation of addition of information to the IP layer.

The corresponding schema is: transportController.json .

The following tables show the set of parameters describing a transport controller configuration.

Create Transport controller Attributes
Attribute Type Fixed Description
name string No Transport controller name
notifyUrl string No The REST/RESTCONF URL publishing (via Server-Sent-event) topology notifications
profileName string No The profile group name the NorthStar controller must use to connect to the transport controller instances.
topologyUrl string No The URL providing the abstract topology, following the IETF model supported by NorthStar .
topoObjectType string Yes transportController

The other parameters are:

Create Transport controller optional Attributes
Attribute Type Fixed Description
interfaceType string No Indicates whether the transport controller interface follows the RESTCONF draft or a more simple REST interface. This does not affect the NorthStar Operation.
pollUrl string No The URL on the server to poll server liveliness, by default /.well-known/host-meta.
reconnectTimeout string No The time, in seconds, between two reconnect attempts between controller instances.
rootUrl string No Default root URL for RESTCONF datastores.
srlgPrefix string No Use the SRLG prefix to generate the SRLGs for the IP topology. If set, the SRLGs will be TSRLG_<srlgPrefix>_<SRLG>, otherwise TSRLG_<SRLG>. This permits you to either separate or merge two controller SRLG spaces. By default, SRLG is not set, or it has an empty string which corresponds to merging the SRLGs space.
topologyToUse string No The transport controller might return several topologies. This field permits you to select a specific topology to apply as a filter to the model te-topology-id field.

GET
v2/tenant/​{tenant_id}​/transportControllers
Get Transport Controller List

Returns a full list of the transport controllers using the following schema: transportController.json#/definitions/transportControllerList

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Response example:
[
  {
    "transportControllerIndex": 1,
    "name": "Nortel",
    "interfaceType": "RESTCONF",
    "notifyUrl": "/streams/NETCONF-JSON",
    "pollUrl": "",
    "profileName": "NortelProfile",
    "reconnectTimeout": 10,
    "rootUrl": "",
    "srlgPrefix": "",
    "topologyToUse": "",
    "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
    "topoObjectType": "transportController"
  }
]

This operation does not accept a request body.

POST
v2/tenant/​{tenant_id}​/transportControllers
Create Transport Controller Configuration

Creates a transport controller using the following schema: transportController.json#/definitions/createTransportController

 
Normal response codes
201
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

Request example:

{
    "name": "Nortel",
    "topologyModel":"ietf-te-topology-01",
    "interfaceType": "RESTCONF",
    "notifyUrl": "/streams/NETCONF-JSON",
    "profileName": "NortelProfile",
    "reconnectTimeout": 10,
    "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
    "topoObjectType": "transportController"
}

Response example:
{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "topologyModel":"ietf-te-topology-01",    
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}
GET
v2/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Get Transport Controller Configuration

Returns the configuration of a transport controller.

 
Normal response codes
200
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the unique identifier is set to 1.

transportControllerIndex URI xsd:int

The unique transportControllerIndex.

Response example:

Returns the following JSON document: transportController.json#/definitions/transportController .

{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "topologyModel":"ietf-te-topology-01",    
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}

This operation does not accept a request body.

PUT
v2/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Update Transport Controller Configuration

Updates a transport controller using the following schema: transportController.json#/definitions/updateTransportController The parameters are the same as for transport controller creation. A parameter change triggers reconnection to the transport controller using the new parameters.

 
Normal response codes
202
Request parameters
Parameter Style Type Description
tenant_id URI xsd:int

A unique identifier for the tenant or account. In NorthStar version 2, the uniq