The Juniper Networks NorthStar API enables querying of topology, management of topology planning parameters, and management of TE-LSP.
You can access the API through the NorthStar server (for example, northstar.example.net) through HTTP port 8091 and HTTPS port 8443, using the following base URLs:
http://northstar.example.net:8091/NorthStar/API/
https://northstar.example.net:8443/NorthStar/API/
In our examples, we use HTTP, however the same functionality is available over HTTPS.
All of the NorthStar RESTful APIS use JSON-formatted data that conforms to the JSON-Schema specification. The main schema is topology_v2.json, but 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 are accessible and can be manipulated using the RESTful API:
Nodes: communication endpoints.
Links: lines or channels through which data is transmitted.
Topology: A collection of nodes and links.
TE-LSPs: Traffic-engineered label-switched paths.
The corresponding schema is: topology.json . The operations are:
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/topologies [GET: get a list of topologies]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id> [GET: get all Nodes and Links]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/status [GET: get all NorthStar components Status]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/status/multilayerTopology [GET: get multi-layer topology status]
List available topologies.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
[
{
"topologyIndex": 1,
"topoObjectType": "topology"
}
]
This operation does not accept a request body.
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). Pseudo nodes do not have router-ids in their respective protocol object and have the pseudoNode attribute set to TRUE.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
{
"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.
Deletes all the topology planned data. The information acquired through BGP-LS reappears immediately.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
This operation does not accept a request body and does not return a response body.
Retrieves the status of the PCEP protocol adapter component.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
{
"status": "PCE is up.",
"statusTimestamp": 1462420202128,
"statusTimestampTime": "2016-05-05T03:50:02.128Z",
"component": "PCE"
}
This operation does not accept a request body.
Retrieves the status of the Network Topology Acquisition Daemon (NTAD, BGP-LSP protocol adapter) component.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
{
"status": "Connected to NTAD: 11.105.199.2 port: 450",
"statusTimestamp": 1462420201513,
"statusTimestampTime": "2016-05-05T03:50:01.513Z",
"component": "Topology acquisition"
}
This operation does not accept a request body.
Retrieves the status of the Path Computation Server component.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
{
"status": "Active Path Stat: 28 up 2 down 0 detoured 0 being provisioned. Link Stat: 14 up 0 down. Node Stat: 8 active nodes, 5 PCC nodes",
"statusTimestamp": 1462530967295,
"statusTimestampTime": "2016-05-06T10:36:07.295Z",
"component": "Path Computation Server"
}
This operation does not accept a request body.
Node API. The API allows access to the nodes retrieved through BGP-LS and planned nodes.
The corresponding schema is: node.json . The operations are:
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/nodes [GET : get all nodes, POST : create a new node]
https://northstar.example.net:8443/NorthStar/API/v1/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/v1/tenant/<tenant-id>/topology/<topology-id>/nodes/<nodeIndex> [ GET : get node, POST :modify node , DELETE]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/nodes/<nodeIndex>/history [ GET ]
Retrieves the full list of nodes.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
[
{
"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.
Creates a planned node. The request must follow the schema node.json#/definitions/createNode .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
The following JSON sample shows the minimum required information to add a planned node. The Following parameters are required:
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 paramater: canFail
Node coordinates
{
"name": "PlannedNode",
"topoObjectType": "node",
"topologyIndex": 1
}
{
"layer": "IP",
"name": "PlannedNode",
"nodeIndex": 12,
"protocols": {},
"topoObjectType": "node",
"topologyIndex": 1
}
Searchs the node list based on the URI parameters. For example, search?name=62.0.0.101 must return one node.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, 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. Javasript 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. |
[
{
"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
}
]
Retrieves details of a node.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
nodeIndex | URI | xsd:int |
The unique nodeIndex. |
{
"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.
Updates a node. The request must follow the schema node.json#/definitions/updateNode .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
nodeIndex | URI | xsd:int |
The unique nodeIndex. |
{
"layer": "IP",
"name": "PlannedNode",
"hostName" : "plannedNode.domain.example.com",
"nodeIndex": 12,
"protocols": {},
"topoObjectType": "node",
"topologyIndex": 1,
}
{
"layer": "IP",
"name": "PlannedNode",
"hostName" : "plannedNode.domain.example.com",
"nodeIndex": 12,
"protocols": {},
"topoObjectType": "node",
"topologyIndex": 1,
}
Deletes a Node. You cannot delete a live node; it reappears on the next update from Topology server.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, 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.
Retrieves the history for a Node.
The history contains a list of timestamped (unix timestamp) events for the node resource.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
nodeIndex | URI | xsd:int |
The unique nodeIndex. |
start (Optional) | query | xsd:int |
Start timestamp: Include only the events with timestamps beginning at and after the specified starting timestamp. |
end (Optional) | query | xsd:int |
End timestamp: Include only the events with timestamps before (but not including) the ending timestamp. |
[
{
"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
}
]
The corresponding schema is: link.json . The operations are:
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/links [GET : get all links, POST: create link]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/links/search URL parameters : name, address, queryType=OR [ GET : search links )]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/links/<linkId> [GET: get property, PUT: modify link, DELETE]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/links/<linkId>/history [GET]
Retrieves the full list of links.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
The example shows three links:
One point-to-point link (link #6, named "L62.104.107.1_62.104.107.2").
Two broadcast links (link 1 and 8). Broadcast links do not have protocols on one end (pseudo node end).
[
{
"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": {
"node": {
"topoObjectType": "node",
"name": "0620.0000.0101.02",
"topologyIndex": 1
}
},
"endZ": {
"TEcolor": 0,
"TEmetric": 10,
"bandwidth": 40000000000,
"ipv4Address": {
"address": "62.101.105.1",
"topoObjectType": "ipv4"
},
"node": {
"name": "62.0.0.101",
"topoObjectType": "node",
"topologyIndex": 1
},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2",
"srlgs": [{"srlgValue": 100}]
},
"RSVP": {"bandwidth": 40000000000}
},
"srlgs": [{"srlgValue": 100}]
"topoObjectType": "interface",
"unreservedBw": [39990001664, 39489998848, 39489998848, 39489998848, 39489998848, 39489998848, 39489998848, 39489998848]
},
"linkIndex": 1,
"name": "L_62.101.105.1",
"operationalStatus": "Up",
"topoObjectType": "link",
"topologyIndex": 1
},
{
"endA": {
"node": {
"topoObjectType": "node",
"name": "0620.0000.0101.02",
"topologyIndex": 1
}
},
"endZ": {
"TEcolor": 0,
"TEmetric": 10,
"bandwidth": 40000000000,
"ipv4Address": {
"address": "62.101.105.2",
"topoObjectType": "ipv4"
},
"node": {
"name": "62.0.0.105",
"topoObjectType": "node",
"topologyIndex": 1
},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2"
},
"RSVP": {"bandwidth": 40000000000}
},
"topoObjectType": "interface",
"unreservedBw": [39570001920, 39570001920, 39570001920, 39070003200, 38570004480, 38570004480, 38570004480, 38570004480]
},
"linkIndex": 8,
"name": "L_62.101.105.2",
"operationalStatus": "Up",
"topoObjectType": "link",
"topologyIndex": 1
}
]
This operation does not accept a request body.
Creates a planned link. The accepted and mandatory parameters are described by the schema link.json#/definitions/createLink .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
The example shows the creation of a numbered 40G planned link between node 62.0.0.102 and PlannedNode.
Attribute | Type | Description | Fixed |
---|---|---|---|
endA/node | string | No | Link source node |
endZ/node | string | No | Link destination node |
topologyIndex | integer | Yes | 1 |
topoObjectType | string | Yes | link |
{
"topoObjectType": "link",
"topologyIndex": 1,
"endA": {
"topoObjectType": "interface",
"node": {
"topoObjectType": "node","name": "62.0.0.102","topologyIndex": 1
},
"ipv4Address": { "topoObjectType": "ipv4","address": "62.102.166.1"},
"bandwidth": 40000000000,
"TEmetric": 10,
"protocols": {
"RSVP": {
"bandwidth": 40000000000
}
}
},
"endZ": {
"topoObjectType": "interface",
"node": {
"topoObjectType": "node", "name": "PlannedNode","topologyIndex": 1
},
"ipv4Address": { "topoObjectType": "ipv4","address": "62.102.166.2"},
"bandwidth": 40000000000,
"TEmetric": 10,
"protocols": {
"RSVP": {
"bandwidth": 40000000000
}
}
}
}
{
"topoObjectType": "link",
"topologyIndex": 1,
"name": "L62.102.166.1_62.102.166.2",
"operationalStatus": "Planned",
"linkIndex": 16,
"endA": {
"topoObjectType": "interface",
"ipv4Address": {"topoObjectType": "ipv4","address": "62.102.166.1"},
"protocols": {
"RSVP": {
"bandwidth": 40000000000
}
},
"bandwidth": 40000000000,
"node": {"topoObjectType": "node","name": "62.0.0.102","topologyIndex": 1}
},
"endZ": {
"topoObjectType": "interface",
"ipv4Address": {"topoObjectType": "ipv4","address": "62.102.166.2"},
"protocols": {
"RSVP": {
"bandwidth": 40000000000
}
},
"bandwidth": 40000000000,
"node": {"topoObjectType": "node","name": "PlannedNode","topologyIndex": 1}
}
}
Searches the Link list based on the URI parameters. For example, search?name=62.101.105 must return one Link.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
name (Optional) | query | xsd:string |
Filters on the link name. The parameter is treated as a regular expression. Simple strings such as L62 are accepted. Javasript regexp (for example, /^L62/) is also accepted |
address (Optional) | query | xsd:string |
Filters based on the link address (endA/ipv4Address/address and endZ/ipv4Address/address). |
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, link is included in the result if any of the query parameters matches. |
[
{
"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": {
"node": {
"topoObjectType": "node",
"name": "0620.0000.0101.02",
"topologyIndex": 1
}
},
"endZ": {
"TEcolor": 0,
"TEmetric": 10,
"bandwidth": 40000000000,
"ipv4Address": {
"address": "62.101.105.1",
"topoObjectType": "ipv4"
},
"node": {
"name": "62.0.0.101",
"topoObjectType": "node",
"topologyIndex": 1
},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2",
"srlgs": [{"srlgValue": 100}]
},
"RSVP": {"bandwidth": 40000000000}
},
"srlgs": [{"srlgValue": 100}]
"topoObjectType": "interface",
"unreservedBw": [39990001664, 39489998848, 39489998848, 39489998848, 39489998848, 39489998848, 39489998848, 39489998848]
},
"linkIndex": 1,
"name": "L_62.101.105.1",
"operationalStatus": "Up",
"topoObjectType": "link",
"topologyIndex": 1
},
{
"endA": {
"node": {
"topoObjectType": "node",
"name": "0620.0000.0101.02",
"topologyIndex": 1
}
},
"endZ": {
"TEcolor": 0,
"TEmetric": 10,
"bandwidth": 40000000000,
"ipv4Address": {
"address": "62.101.105.2",
"topoObjectType": "ipv4"
},
"node": {
"name": "62.0.0.105",
"topoObjectType": "node",
"topologyIndex": 1
},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2"
},
"RSVP": {"bandwidth": 40000000000}
},
"topoObjectType": "interface",
"unreservedBw": [39570001920, 39570001920, 39570001920, 39070003200, 38570004480, 38570004480, 38570004480, 38570004480]
},
"linkIndex": 8,
"name": "L_62.101.105.2",
"operationalStatus": "Up",
"topoObjectType": "link",
"topologyIndex": 1
}
]
Retrieves the details for a link.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
linkIndex | URI | xsd:int |
The unique linkIndex. |
{
"endA": {
"TEcolor": 0,
"TEmetric": 10,
"delay" : 600,
"bandwidth": 40000000000,
"ipv4Address": {
"address": "62.103.107.1",
"topoObjectType": "ipv4"
},
"node": {
"name": "62.0.0.103",
"topoObjectType": "node",
"topologyIndex": 1
},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2"
},
"RSVP": {
"bandwidth": 40000000000
}
},
"topoObjectType": "interface",
"unreservedBw": [39970000896, 39970000896, 39970000896, 39469998080, 39469998080, 39469998080, 39469998080, 39469998080]
},
"endZ": {
"TEcolor": 0,
"TEmetric": 10,
"delay": 600,
"bandwidth": 40000000000,
"ipv4Address": {
"address": "62.103.107.2",
"topoObjectType": "ipv4"
},
"node": {
"name": "62.0.0.107",
"topoObjectType": "node",
"topologyIndex": 1
},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2"
},
"RSVP": {
"bandwidth": 40000000000
}
},
"unreservedBw": [39289999360, 38790000640, 38790000640, 38790000640, 38790000640, 38790000640, 38790000640, 38790000640]
},
"linkIndex": 4,
"name": "L62.103.107.1_62.103.107.2",
"operationalStatus": "Up",
"topoObjectType": "link",
"topologyIndex": 1
}
This operation does not accept a request body.
Updates a planned Link. The accepted and mandatory parameters are described by the schema link.json#/definitions/updateLink .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
linkIndex | URI | xsd:int |
The unique linkIndex. |
The following example sets the link delay for the link L62.103.107.1_62.103.107.2
{
"topoObjectType":"link", "topologyIndex":1,
"linkIndex":4,
"endA":{
"topoObjectType":"interface",
"ipv4Address" : {"topoObjectType":"ipv4","address":"62.103.107.1"},
"protocols":{
"ISIS" : {
"TEMetric":10,
"level":"L2",
"metric":10
},
"RSVP":{"bandwidth":40000000000}
},
"bandwidth":40000000000,
"TEmetric":10,
"TEcolor":0,
"delay":600,
"node":{"topoObjectType":"node","name":"62.0.0.103","topologyIndex":1}
},"endZ" : {
"topoObjectType":"interface",
"ipv4Address":{"topoObjectType":"ipv4","address":"62.103.107.2"},
"protocols":{
"ISIS":{
"TEMetric":10,
"level":"L2",
"metric":10
},
"RSVP":{"bandwidth":40000000000}
},
"bandwidth":40000000000,
"TEmetric":10,
"TEcolor":0,
"delay":600,
"node":{"topoObjectType":"node","name":"62.0.0.107","topologyIndex":1}
}
}
{
"topoObjectType":"link", "topologyIndex":1,
"name":"L62.103.107.1_62.103.107.2",
"linkIndex":4,
"operationalStatus": "Up",
"endA":{
"topoObjectType":"interface",
"ipv4Address" : {"topoObjectType":"ipv4","address":"62.103.107.1"},
"protocols":{
"ISIS" : {
"TEMetric":10,
"level":"L2",
"metric":10
},
"RSVP":{"bandwidth":40000000000}
},
"bandwidth":40000000000,
"TEmetric":10,
"TEcolor":0,
"delay":600,
"node":{"topoObjectType":"node","name":"62.0.0.103","topologyIndex":1}
},"endZ" : {
"topoObjectType":"interface",
"ipv4Address":{"topoObjectType":"ipv4","address":"62.103.107.2"},
"protocols":{
"ISIS":{
"TEMetric":10,
"level":"L2",
"metric":10
},
"RSVP":{"bandwidth":40000000000}
},
"bandwidth":40000000000,
"TEmetric":10,
"TEcolor":0,
"delay":600,
"node":{"topoObjectType":"node","name":"62.0.0.107","topologyIndex":1}
}
}
Deletes a link. Live links reappear on the next update from the Topology server.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
linkIndex | URI | xsd:int |
The unique linkIndex. |
This operation does not accept a request body and does not return a response body.
Retrieves the history for a Link.
The history contains a list of timestamped (unix timestamp) events for the link resource.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
linkIndex | URI | xsd:int |
The unique linkIndex. |
start (Optional) | query | xsd:int |
Start timestamp: Include only events with timestamps beginning at and after the specified starting timestamp. |
end (Optional) | query | xsd:int |
End timestamp: Include only events with timestamps before (but not including) the ending timestamp. |
[
{
"topoObjectType": "link",
"topologyIndex": 1,
"name": "L62.103.107.1_62.103.107.2",
"operationalStatus": "Up",
"linkIndex": 4,
"endA": {
"topoObjectType": "interface",
"ipv4Address": {"topoObjectType": "ipv4","address": "62.103.107.1" },
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2",
"metric": 10
},
"RSVP": {"bandwidth": 40000000000}
},
"bandwidth": 40000000000,
"TEmetric": 10,
"TEcolor": 0,
"unreservedBw": [40000000000,40000000000,40000000000,40000000000,40000000000,40000000000,40000000000,40000000000],
"node": {"topoObjectType": "node","name": "62.0.0.103","topologyIndex": 1}
},
"endZ": {
"topoObjectType": "interface",
"ipv4Address": {"topoObjectType": "ipv4","address": "62.103.107.2"},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2",
"metric": 10
},
"RSVP": {"bandwidth": 40000000000}
},
"bandwidth": 40000000000,
"TEmetric": 10,
"TEcolor": 0,
"unreservedBw": [39469998080,38969999360,38470000640,38470000640,37970001920,37970001920,37970001920,37970001920],
"node": {"topoObjectType": "node","name": "62.0.0.107","topologyIndex": 1}
},
"timestamp": 1427129349771
},
{
"topoObjectType": "link",
"topologyIndex": 1,
"name": "L62.103.107.1_62.103.107.2",
"operationalStatus": "Up",
"linkIndex": 4,
"endA": {
"topoObjectType": "interface",
"ipv4Address": {"topoObjectType": "ipv4","address": "62.103.107.1"},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2",
"metric": 10
},
"RSVP": {"bandwidth": 40000000000}
},
"bandwidth": 40000000000,
"TEmetric": 10,
"TEcolor": 0,
"unreservedBw": [39970000896,39970000896,39970000896,38470000640,38470000640,38470000640,38470000640,38470000640],
"node": {"topoObjectType": "node","name": "62.0.0.103","topologyIndex": 1}
},
"endZ": {
"topoObjectType": "interface",
"ipv4Address": {"topoObjectType": "ipv4","address": "62.103.107.2"},
"protocols": {
"ISIS": {
"TEMetric": 10,
"level": "L2",
"metric": 10
},
"RSVP": {"bandwidth": 40000000000}
},
"bandwidth": 40000000000,
"TEmetric": 10,
"TEcolor": 0,
"unreservedBw": [39469998080,38969999360,38470000640,38470000640,37970001920,37970001920,37970001920,37970001920],
"node": {"topoObjectType": "node","name": "62.0.0.107","topologyIndex": 1}
},
"timestamp": 1427129349871
}
]
The corresponding schema is: lsp.json . The operations are:
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/te-lsps/ [GET : get all te-lsps, POST : create one LSP]
https://northstar.example.net:8443/NorthStar/API/v1/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/v1/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 : update lsps, DELETE]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/te-lsps/<lspIndex> [ GET : get te-lsp, PUT : update, DELETE]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-id>/te-lsps/<lspIndex>/history [ GET ]
Retrieve the full list of TE-LSPs.
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 will control 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.
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.
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 the standby path has a pathType set to standby and the path is signaled in the control plane (hence 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 the liveProperties, options, 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).
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
[
{
"lspIndex": 1,
"name": "LSP_Node101_Node102",
"from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "500M",
"setupPriority": 1,
"holdingPriority": 1,
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Active PCS initialization"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 500000000,
"ero": [
{"address": "62.101.105.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.102.105.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 1,
"metric": 25,
"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.102", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.105.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 1
},
"controlType": "Delegated",
"operationalStatus": "Active",
"pathType": "primary",
"tunnelId": 56615
},
{
"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
},
{
"lspIndex": 3,
"name": "LSP_Node102_Node104_with_secondary",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "400M",
"setupPriority": 5,
"holdingPriority": 5,
"calculatedEro": [
{"address": "62.102.106.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.106.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"pathName": "102_104_secondary",
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Active"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 400000000,
"ero": [
{"address": "62.102.106.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.106.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 5,
"metric": 40,
"pathName": "102_104_primary",
"rro": [
{"address": "62.0.0.106", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.106.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.104", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.106.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 5
},
"controlType": "Delegated",
"operationalStatus": "Active",
"pathType": "primary",
"tunnelId": 10304
},
{
"lspIndex": 4,
"name": "LSP_Node102_Node104_with_secondary",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "400M",
"setupPriority": 5,
"holdingPriority": 5,
"calculatedEro": [
{"address": "62.102.105.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.105.107.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"pathName": "102_104_secondary",
"adminStatus": "Up",
"routingStatus": "Down",
"lastStatusString": "<Down"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 400000000,
"ero": [],
"holdingPriority": 5,
"metric": 0,
"pathName": "102_104_secondary",
"rro": [],
"setupPriority": 5
},
"controlType": "Delegated",
"operationalStatus": "Down",
"pathType": "secondary",
"tunnelId": 0
},
{
"lspIndex": 5,
"name": "LSP_Node102_Node104_with_standby",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "500M",
"setupPriority": 7,
"holdingPriority": 7,
"calculatedEro": [
{"address": "62.102.106.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.106.1", "loose": false, "topoObjectType": "ipv4" }
],
"pathName": "102_104_primary",
"adminStatus": "Up",
"routingStatus": "Up",
"preference": 10,
"lastStatusString": "<Active"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 500000000,
"ero": [
{"address": "62.102.106.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.106.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 7,
"metric": 40,
"pathName": "102_104_primary",
"rro": [
{"address": "62.0.0.106", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.106.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.104", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.106.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 7
},
"controlType": "Delegated",
"operationalStatus": "Active",
"pathType": "primary",
"tunnelId": 10305
},
{
"lspIndex": 6,
"name": "LSP_Node102_Node104_with_standby",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "500M",
"setupPriority": 7,
"holdingPriority": 7,
"calculatedEro": [
{"address": "62.102.105.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.107.1", "loose": false, "topoObjectType": "ipv4" }
],
"pathName": "102_104_secondary",
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Up"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 500000000,
"ero": [
{"address": "62.102.105.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.107.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 7,
"metric": 40,
"pathName": "102_104_secondary",
"rro": [
{"address": "62.0.0.105", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.105.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.107", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.105.107.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.104", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 7
},
"controlType": "Delegated",
"operationalStatus": "Up",
"pathType": "standby",
"tunnelId": 10306
},
{
"lspIndex": 7,
"name": "TEplusplus-Node102-Node103-1",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.102"
},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"
},
"tunnelId": 10310,
"liveProperties": {
"bandwidth": 100000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 0,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "loose": false}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.102.105.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1","protectionInUse": false, "protectionAvailable": false}
],
"options": {
"TEPlusPlusId": 2
}
},
"operationalStatus": "Active",
"controlType": "PCC",
"pathType": "primary"
},
{
"lspIndex": 8,
"name": "TEplusplus-Node102-Node103-2",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.102"
},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"
},
"tunnelId": 10311,
"liveProperties": {
"bandwidth": 100000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 0,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "loose": false}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.102.105.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1","protectionInUse": false, "protectionAvailable": false}
],
"options": {
"TEPlusPlusId": 2
}
},
"operationalStatus": "Active",
"controlType": "PCC",
"pathType": "primary"
},
{
"lspIndex": 9,
"name": "TEplusplus-Node102-Node103-3",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.102"
},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"
},
"tunnelId": 10312,
"liveProperties": {
"bandwidth": 100000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 0,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "loose": false },
{"topoObjectType": "ipv4", "address": "62.105.107.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "loose": false}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2", "protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "protectionInUse": false, "protectionAvailable": false}
],
"options": {
"TEPlusPlusId": 2
}
},
"operationalStatus": "Active",
"controlType": "PCC",
"pathType": "primary"
},
{
"lspIndex": 10,
"name": "PCE_Initiated_LSP",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.101"},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"},
"tunnelId": 56694,
"plannedProperties": {
"bandwidth": "10M",
"setupPriority": 7,
"holdingPriority": 7,
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Active"
},
"liveProperties": {
"bandwidth": 10000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 7,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "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}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.101.105.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1","protectionInUse": false, "protectionAvailable": false}
]
},
"operationalStatus": "Active",
"controlType": "PCEInitiated",
"pathType": "primary"
}
]
This operation does not accept a request body.
Creates a TE-LSP. The accepted data is described by JSON schema lsp.json#/definitions/createLSP .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
Attribute | Type | Description | Fixed |
---|---|---|---|
name | string | No | Tunnel name |
from/address | string | No | Tunnel ingress |
to/address | string | No | Tunnel egress |
The following example shows the creation of a 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
}
}
The following two requests show the creation of 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.
{
"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
}
}
{
"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
}
}
The third example shows a request to create an LSP with a loose explicit route. The loose hop must follow a hop; if no other hop can be supplied, it is recommended to use 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}
]
}
}
The following example shows the creation of a 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 follow the JSON schema, a response with HTTP Error 400 and the validation errors are returned.
{
"error": "Input Validation error :Invalid type: number (expected string) /name"
}
Searches the LSP list based on the URI parameters. For example, search?name=62.101.105 should return one Link.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
name (Optional) | query | xsd:string |
Filters on LSP Name. The parameter is treated as a regular expression. Simple string such as LP_ is accepted. Javasript regexp (for example, /104$/) is also accepted |
from (Optional) | query | xsd:string |
Filters on LSP from/address property. |
operationalStatus (Optional) | query | xsd:string |
Filters based on 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, LSP is included in the result if any of the query parameters matches. |
[
{
"lspIndex": 1,
"name": "LSP_Node101_Node102",
"from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "500M",
"setupPriority": 1,
"holdingPriority": 1,
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Active PCS initialization"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 500000000,
"ero": [
{"address": "62.101.105.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.102.105.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 1,
"metric": 25,
"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.102", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.105.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 1
},
"controlType": "Delegated",
"operationalStatus": "Active",
"pathType": "primary",
"tunnelId": 56615
},
{
"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
},
{
"lspIndex": 3,
"name": "LSP_Node102_Node104_with_secondary",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "400M",
"setupPriority": 5,
"holdingPriority": 5,
"calculatedEro": [
{"address": "62.102.106.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.106.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"pathName": "102_104_secondary",
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Active"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 400000000,
"ero": [
{"address": "62.102.106.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.106.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 5,
"metric": 40,
"pathName": "102_104_primary",
"rro": [
{"address": "62.0.0.106", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.106.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.104", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.106.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 5
},
"controlType": "Delegated",
"operationalStatus": "Active",
"pathType": "primary",
"tunnelId": 10304
},
{
"lspIndex": 4,
"name": "LSP_Node102_Node104_with_secondary",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "400M",
"setupPriority": 5,
"holdingPriority": 5,
"calculatedEro": [
{"address": "62.102.105.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.105.107.2", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"pathName": "102_104_secondary",
"adminStatus": "Up",
"routingStatus": "Down",
"lastStatusString": "<Down"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 400000000,
"ero": [],
"holdingPriority": 5,
"metric": 0,
"pathName": "102_104_secondary",
"rro": [],
"setupPriority": 5
},
"controlType": "Delegated",
"operationalStatus": "Down",
"pathType": "secondary",
"tunnelId": 0
},
{
"lspIndex": 5,
"name": "LSP_Node102_Node104_with_standby",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "500M",
"setupPriority": 7,
"holdingPriority": 7,
"calculatedEro": [
{"address": "62.102.106.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.106.1", "loose": false, "topoObjectType": "ipv4" }
],
"pathName": "102_104_primary",
"adminStatus": "Up",
"routingStatus": "Up",
"preference": 10,
"lastStatusString": "<Active"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 500000000,
"ero": [
{"address": "62.102.106.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.106.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 7,
"metric": 40,
"pathName": "102_104_primary",
"rro": [
{"address": "62.0.0.106", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.106.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.104", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.106.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 7
},
"controlType": "Delegated",
"operationalStatus": "Active",
"pathType": "primary",
"tunnelId": 10305
},
{
"lspIndex": 6,
"name": "LSP_Node102_Node104_with_standby",
"from": {"address": "62.0.0.102", "topoObjectType": "ipv4"},
"to": {"address": "62.0.0.104", "topoObjectType": "ipv4"},
"plannedProperties": {
"bandwidth": "500M",
"setupPriority": 7,
"holdingPriority": 7,
"calculatedEro": [
{"address": "62.102.105.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.107.1", "loose": false, "topoObjectType": "ipv4" }
],
"pathName": "102_104_secondary",
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Up"
},
"liveProperties": {
"adminStatus": "Up",
"bandwidth": 500000000,
"ero": [
{"address": "62.102.105.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.105.107.2", "loose": false, "topoObjectType": "ipv4" },
{"address": "62.104.107.1", "loose": false, "topoObjectType": "ipv4" }
],
"holdingPriority": 7,
"metric": 40,
"pathName": "102_104_secondary",
"rro": [
{"address": "62.0.0.105", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.102.105.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.107", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.105.107.2", "protectionAvailable": true, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.0.0.104", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"},
{"address": "62.104.107.1", "protectionAvailable": false, "protectionInUse": false, "topoObjectType": "ipv4"}
],
"setupPriority": 7
},
"controlType": "Delegated",
"operationalStatus": "Up",
"pathType": "standby",
"tunnelId": 10306
},
{
"lspIndex": 7,
"name": "TEplusplus-Node102-Node103-1",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.102"
},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"
},
"tunnelId": 10310,
"liveProperties": {
"bandwidth": 100000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 0,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "loose": false}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.102.105.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1","protectionInUse": false, "protectionAvailable": false}
],
"options": {
"TEPlusPlusId": 2
}
},
"operationalStatus": "Active",
"controlType": "PCC",
"pathType": "primary"
},
{
"lspIndex": 8,
"name": "TEplusplus-Node102-Node103-2",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.102"
},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"
},
"tunnelId": 10311,
"liveProperties": {
"bandwidth": 100000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 0,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "loose": false}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.102.105.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1","protectionInUse": false, "protectionAvailable": false}
],
"options": {
"TEPlusPlusId": 2
}
},
"operationalStatus": "Active",
"controlType": "PCC",
"pathType": "primary"
},
{
"lspIndex": 9,
"name": "TEplusplus-Node102-Node103-3",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.102"
},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"
},
"tunnelId": 10312,
"liveProperties": {
"bandwidth": 100000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 0,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "loose": false },
{"topoObjectType": "ipv4", "address": "62.105.107.2", "loose": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "loose": false}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.102.105.2", "protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2", "protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1", "protectionInUse": false, "protectionAvailable": false}
],
"options": {
"TEPlusPlusId": 2
}
},
"operationalStatus": "Active",
"controlType": "PCC",
"pathType": "primary"
},
{
"lspIndex": 10,
"name": "PCE_Initiated_LSP",
"from": { "topoObjectType": "ipv4", "address": "62.0.0.101"},
"to": { "topoObjectType": "ipv4", "address": "62.0.0.103"},
"tunnelId": 56694,
"plannedProperties": {
"bandwidth": "10M",
"setupPriority": 7,
"holdingPriority": 7,
"adminStatus": "Up",
"routingStatus": "Up",
"lastStatusString": "<Active"
},
"liveProperties": {
"bandwidth": 10000000,
"metric": 40,
"setupPriority": 7,
"holdingPriority": 7,
"adminStatus": "Up",
"ero": [
{"topoObjectType": "ipv4", "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}
],
"rro": [
{"topoObjectType": "ipv4", "address": "62.101.105.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.105.107.2","protectionInUse": false, "protectionAvailable": false},
{"topoObjectType": "ipv4", "address": "62.103.107.1","protectionInUse": false, "protectionAvailable": false}
]
},
"operationalStatus": "Active",
"controlType": "PCEInitiated",
"pathType": "primary"
}
]
Retrieves the details for a TE-LSP.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
lspIndex | URI | xsd:int |
The unique lspIndex |
{
"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.
Updates a TE-LSP. The accepted data is described by JSON schema lsp.json#/definitions/updateLSP .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
lspIndex | URI | xsd:int |
The unique lspIndex |
The update does accept the same parameters as the create, except for some parameters which 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
}
}
{
"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"
}
Requests a TE-LSP to be deleted. This is possible only for PCE-Initiated LSPs. PCC-Controlled and PCC-Delegated LSPs cannot be deleted from NorthStar. They must be deleted in the node.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, 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.
Creates several TE-LSPs. The accepted data is described by JSON schema lsp.json#/definitions/createLSPOrResponseList .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
The request must contain a list of LSPs to be created. The LSP parameters are the same as individual LSP creation. 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"}
}
}
]
[
{
"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"
}
]
Updates several TE-LSPs. The accepted data is described by JSON schema lsp.json#/definitions/lspListUpdate .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
The bulk update accepts a list of LSP updates. The same parameter and logic as for the single LSP update apply to each entry.
Response example:The response contains a list of individual update response, see TE-LSP update.
Requests a list of TE-LSPs to be deleted. This is possible only for PCE-Initiated LSPs. PCC-Controlled and PCC-Delegated LSPs cannot be deleted from NorthStar. They must be deleted in the node.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
This operation does not accept a request body and does not return a response body.
Retrieves the history for a TE-LSP.
The history contains a list of timestamped (unix timestamp) events for the LSP resource.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
topologyId | URI | xsd:int |
The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1. |
lspIndex | URI | xsd:int |
The unique lspIndex |
start (Optional) | query | xsd:int |
Start timestamp: Include only the events with timestamps beginning at and after the specified starting timestamp. |
end (Optional) | query | xsd:int |
End timestamp: Include only the events with timestamps before (but not including) the ending timestamp. |
[
{
"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"
}
]
The device profile schema is: deviceProfile.json . The operations are:
https://northstar.example.net:8443/NorthStar/API/v1/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/v1/tenant/<tenant-id>/netconf/netconfCollection/liveNetwork [ POST: create a collection job with requested device profile ids ]
https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/netconf/netconfCollection/<id> [ GET: get a collection job status with requested job id ]
Get all Profiles.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document returned follows deviceProfile.json#/definitions/profileList.
This operation does not accept a request body.
Create new profiles.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document request follows deviceProfile.json#/definitions/profileList.
Response example:The JSON document returned follows deviceProfile.json#/definitions/profileList.
Update profiles.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document request follows, deviceProfile.json#/definitions/profileList. and must contains id in each profiledeviceProfile.json#/definitions/profile.
Response example:The JSON document returned follows deviceProfile.json#/definitions/profileList.
Delete profiles.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document request follows, deviceProfile.json#/definitions/profileList. and must contains id in each profiledeviceProfile.json#/definitions/profile.
Response example:The JSON document returned follows deviceProfile.json#/definitions/profileList.
Creates a new collection.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The request must use the following JSON schema: deviceProfile.json#/definitions/startCollection .
Response example:Returns the following JSON document: deviceProfile.json#/definitions/collectionStatus .
Gets the Status of a collection job.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
collectionJobId | URI | xsd:int |
The unique identifier of the collection job. |
Returns the following JSON document: deviceProfile.json#/definitions/collectionStatus .
This operation does not accept a request body.
Transport Controller configuration API. The API permits configuring NorthStar connection to transport controller to retrieve the abstracted transport topology to automatically add an extra information to the IP layer.
The corresponding schema is: transportController.json .
The following tables show the set of parameters describing a transport controller configuration.
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:
Attribute | Type | Fixed | Description |
---|---|---|---|
interfaceType | string | No | Indicates if 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 in-between two reconnect attempt between controller instances. |
rootUrl | string | No | Default root URL for RESTCONF datastores. |
srlgPrefix | string | No | The SRLG prefix is used to generate the SRLGs for the IP topology. If set the SRLGs will be TSRLG_<srlgPrefix>_<SRLG>, otherwise TSRLG_<SRLG>. This permits to either separate or merge two controller SRLG space. 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 the filter is applied to the model te-topology-id field. |
Retrieves the full list of transport controllers. The schema describing the response is transportController.json#/definitions/transportControllerList .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
[
{
"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.
Creates transport controller. The request must follow the schema transportController.json#/definitions/createTransportController .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
{
"name": "Nortel",
"interfaceType": "RESTCONF",
"notifyUrl": "/streams/NETCONF-JSON",
"profileName": "NortelProfile",
"reconnectTimeout": 10,
"topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
"topoObjectType": "transportController"
}
{
"name": "Nortel",
"interfaceType": "RESTCONF",
"notifyUrl": "/streams/NETCONF-JSON",
"profileName": "NortelProfile",
"reconnectTimeout": 10,
"topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
"topoObjectType": "transportController",
"transportControllerIndex": 1
}
Retrieves the details for a transport controller configuration.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerIndex | URI | xsd:int |
The unique transportControllerIndex. |
The JSON document returned follows transportController.json#/definitions/transportController .
{
"name": "Nortel",
"interfaceType": "RESTCONF",
"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.
Updates a transport controller. The request must follow the schema transportController.json#/definitions/updateTransportController . The parameters are the same as for transport controller creation. A change of parameter will trigger a reconnection to the transport controller using the new parameters.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerIndex | URI | xsd:int |
The unique transportControllerIndex. |
{
"name": "Nortel",
"interfaceType": "RESTCONF",
"notifyUrl": "/streams/NETCONF-JSON",
"profileName": "NortelProfile",
"reconnectTimeout": 10,
"topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
"srlgPrefix": "space1",
"topoObjectType": "transportController",
"transportControllerIndex": 1
}
{
"name": "Nortel",
"interfaceType": "RESTCONF",
"notifyUrl": "/streams/NETCONF-JSON",
"profileName": "NortelProfile",
"reconnectTimeout": 10,
"topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
"srlgPrefix": "space1",
"topoObjectType": "transportController",
"transportControllerIndex": 1
}
Deletes a transport controller configuration. The transport node, link, and circuits created from that transport controller are not deleted. You must delete them manually, if required.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerIndex | URI | xsd:int |
The unique transportControllerIndex. |
This operation does not accept a request body and does not return a response body.
This API manages a set of instances of a transport controller.
The corresponding schema is: transportControllerEndpoint.json .
The devices are managed as group of devices. For each device the following parameters can be managed:
Attribute | Type | Fixed | Description |
---|---|---|---|
ipAddr | string | No | IP address to connect |
accessMethod | string | No | Either HTTP or HTTPS |
authMethod | string | No | Authentication method; can be BASIC or NOAUTH |
The other parameters are:
Attribute | Type | Fixed | Description |
---|---|---|---|
hostName | string | No | Device name. |
httpPort | int | No | HTTP port. |
login | string | Yes | Login to be used for the BASIC auth. |
passwd | string | Yes | Encrypted password to be used for the BASIC auth. |
retry | int | No | Number of retries for the heartbeat, before the device is considered down. |
timeout | int | No | Request timeout for the device. |
Retrieves the full list of transport controller groups. The schema describing the response is transportControllerEndpoint.json#/definitions/transportControllerGroupList .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
[
{
"name": "NortelProfile"
},
{
"name": "Default"
}
]
This operation does not accept a request body.
Creates a group for transport controller. The request must follow the schema transportControllerEndpoint.json#/definitions/transportControllerGroupDescription .
The request must contain the group name to be created, as shown in the example
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
{
"name": "NortelProfile",
"profileType": "Network Controllers"
}
{
"success": true
}
Deletes a group for transport controller. The request must follow the schema transportControllerEndpoint.json#/definitions/transportControllerGroupDescription .
The request must contain the group name to be deleted, as shown in the example
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
{
"name": "NortelProfile",
"profileType": "Network Controllers"
}
{
"success": true
}
Retrieves a transport controller group, which is a list of devices. The schema describing the response is transportControllerEndpoint.json#/definitions/transportControllerGroup . The password are set by empty strings.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerGroupName | URI | xsd:string |
The transport controller devices groups name. |
[
{
"id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf",
"accessMethod": "HTTP",
"authMethod": "BASIC",
"hostName": "",
"httpPort": 80,
"ipAddr": "10.0.1.3",
"login": "Login2",
"passwd": "",
"retry": 3,
"timeout": 2
},
{
"id": "7bcf5b8a-30f4-46ad-9a51-29daac671587",
"accessMethod": "HTTP",
"authMethod": "BASIC",
"hostName": "",
"httpPort": 80,
"ipAddr": "10.0.1.2",
"login": "Login",
"passwd": "",
"retry": 3,
"timeout": 2
}
]
This operation does not accept a request body.
Creates devices in the group. The request must follow the schema transportControllerEndpoint.json#/definitions/transportControllerGroup .
The request contains a list of devices to be created.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerGroupName | URI | xsd:string |
The transport controller devices groups name. |
[
{
"accessMethod": "HTTP",
"authMethod": "BASIC",
"hostName": "",
"httpPort": 80,
"ipAddr": "10.0.1.2",
"login": "Login",
"passwd" : "XYXYXYXYXYX",
"retry": 3,
"timeout": 2
},
{
"accessMethod": "HTTP",
"authMethod": "BASIC",
"hostName": "",
"httpPort": 80,
"ipAddr": "10.0.1.3",
"login": "Login2",
"passwd" : "XYXYXYXYXYX",
"retry": 3,
"timeout": 2
}
]
{
"success": true
}
Updates devices in the group. The request must follow the schema transportControllerEndpoint.json#/definitions/transportControllerGroup .
The request contains a list of devices to be updated. The id parameter is required.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerGroupName | URI | xsd:string |
The transport controller devices groups name. |
[
{
"id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf",
"accessMethod": "HTTP",
"authMethod": "BASIC",
"hostName": "",
"httpPort": 80,
"ipAddr": "10.0.1.3",
"login": "Login3",
"passwd": "",
"retry": 3,
"timeout": 2
}
]
{
"success": true
}
Deletes devices from the group. The request must follow the schema transportControllerEndpoint.json#/definitions/transportControllerGroup .
The request contains a list of devices to be deleted. The id parameter is a mandatory parameter. The other parameters are ignored.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
transportControllerGroupName | URI | xsd:string |
The transport controller devices groups name. |
[
{
"id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf"
}
]
{
"success": true
}
This API permits monitoring and configuration of NorthStar high availability cluster.
The corresponding schema is: ha.json .
Get the status of all the nodes and processes of the cluster. .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document returned follows ha.json#/definitions/hosts . The data indicates the nodes that are part of the cluster and the processes running on each node. The role indicates the current role of the node and has the following two components: 1. First part indicates Active or Standby; the Active node is where the path computation is running. 2. Second part indicates whether or not the node is running as HA coordinator. This does not reflect the status of the zookeeper master available in a different URL.
[
{
"hostname": "northstar-cluster-3",
"ipv4": "10.0.0.1",
"status": "Up",
"role": "Standby,Coordinator",
"version": "2.0.0-20160216_081948.x86_64",
"processes": [
{
"processId": 26683,
"processName": "junosvm",
"startTime": "2016-02-16T19:24:07.000Z",
"role": "Standby"
},
{
"processId": 8389,
"processName": "zookeeper",
"startTime": "2016-02-16T22:54:15.000Z",
"role": "Standby"
},
{
"processId": 12347,
"processName": "ha_agent",
"startTime": "2016-02-16T23:07:09.000Z",
"role": "Standby"
},
{
"processId": 12276,
"processName": "npat",
"startTime": "2016-02-16T23:06:56.000Z",
"role": "Standby"
},
{
"processId": 12243,
"processName": "pceserver",
"startTime": "2016-02-16T23:06:54.000Z",
"role": "Standby"
},
{
"processId": 12192,
"processName": "nodejs",
"startTime": "2016-02-16T23:06:44.000Z",
"role": "Standby"
},
{
"processId": 7821,
"processName": "rabbitmq",
"startTime": "2016-02-16T22:54:12.000Z",
"role": "Standby"
},
{
"processName": "keepalived",
"startTime": "2016-02-16T19:59:46.000Z",
"role": "Standby"
},
{
"processId": 12248,
"processName": "toposerver",
"startTime": "2016-02-16T23:06:54.000Z",
"role": "Standby"
},
{
"processId": 8138,
"processName": "cassandra",
"startTime": "2016-02-16T22:54:12.000Z",
"role": "Standby"
},
{
"processId": 3455,
"processName": "haproxy",
"startTime": "2016-02-16T19:59:46.000Z",
"role": "Standby"
},
{
"processId": 8453,
"processName": "listener1_00",
"startTime": "2016-02-16T22:54:12.000Z",
"role": "Standby"
},
{
"processId": 12255,
"processName": "pcserver",
"startTime": "2016-02-16T23:06:54.000Z",
"role": "Standby"
},
{
"processId": 12268,
"processName": "mladapter",
"startTime": "2016-02-16T23:06:56.000Z",
"role": "Standby"
},
{
"processId": 12242,
"processName": "npat_ro",
"startTime": "2016-02-16T23:06:54.000Z",
"role": "Standby"
}
]
},
{
"hostname": "northstar-cluster-2",
"ipv4": "10.0.0.2",
"status": "Up",
"role": "Standby",
"version": "2.0.0-20160216_081948.x86_64",
"processes": [
{
"processId": 5427,
"processName": "junosvm",
"startTime": "2016-02-16T19:23:29.000Z",
"role": "Standby"
},
{
"processId": 18452,
"processName": "zookeeper",
"startTime": "2016-02-16T22:49:58.000Z",
"role": "Standby"
},
{
"processId": 22489,
"processName": "ha_agent",
"startTime": "2016-02-16T23:08:13.000Z",
"role": "Standby"
},
{
"processId": 22419,
"processName": "npat",
"startTime": "2016-02-16T23:08:01.000Z",
"role": "Standby"
},
{
"processId": 22387,
"processName": "pceserver",
"startTime": "2016-02-16T23:07:59.000Z",
"role": "Standby"
},
{
"processId": 22344,
"processName": "nodejs",
"startTime": "2016-02-16T23:07:49.000Z",
"role": "Standby"
},
{
"processId": 17884,
"processName": "rabbitmq",
"startTime": "2016-02-16T22:49:55.000Z",
"role": "Standby"
},
{
"processName": "keepalived",
"startTime": "2016-02-16T19:44:45.000Z",
"role": "Standby"
},
{
"processId": 22393,
"processName": "toposerver",
"startTime": "2016-02-16T23:07:59.000Z",
"role": "Standby"
},
{
"processId": 18196,
"processName": "cassandra",
"startTime": "2016-02-16T22:49:55.000Z",
"role": "Standby"
},
{
"processId": 11334,
"processName": "haproxy",
"startTime": "2016-02-16T19:44:45.000Z",
"role": "Standby"
},
{
"processId": 18516,
"processName": "listener1_00",
"startTime": "2016-02-16T22:49:55.000Z",
"role": "Standby"
},
{
"processId": 22404,
"processName": "pcserver",
"startTime": "2016-02-16T23:07:59.000Z",
"role": "Standby"
},
{
"processId": 22411,
"processName": "mladapter",
"startTime": "2016-02-16T23:08:00.000Z",
"role": "Standby"
},
{
"processId": 22386,
"processName": "npat_ro",
"startTime": "2016-02-16T23:07:59.000Z",
"role": "Standby"
}
]
},
{
"hostname": "northstar-cluster-1",
"ipv4": "10.0.0.3",
"status": "Up",
"role": "Active",
"version": "2.0.0-20160216_081948.x86_64",
"processes": [
{
"processId": 11420,
"processName": "junosvm",
"startTime": "2016-02-16T19:24:28.000Z",
"role": "Active"
},
{
"processId": 23745,
"processName": "zookeeper",
"startTime": "2016-02-16T22:47:26.000Z",
"role": "Active"
},
{
"processId": 27746,
"processName": "ha_agent",
"startTime": "2016-02-16T23:08:19.000Z",
"role": "Active"
},
{
"processId": 28375,
"processName": "npat",
"startTime": "2016-02-16T23:10:57.000Z",
"role": "Active"
},
{
"processId": 27799,
"processName": "pceserver",
"startTime": "2016-02-16T23:08:35.000Z",
"role": "Active"
},
{
"processId": 27604,
"processName": "nodejs",
"startTime": "2016-02-16T23:07:55.000Z",
"role": "Active"
},
{
"processId": 23190,
"processName": "rabbitmq",
"startTime": "2016-02-16T22:47:23.000Z",
"role": "Active"
},
{
"processId": 28379,
"processName": "keepalived",
"startTime": "2016-02-16T23:10:57.000Z",
"role": "Active"
},
{
"processId": 28358,
"processName": "toposerver",
"startTime": "2016-02-16T23:10:56.000Z",
"role": "Active"
},
{
"processId": 23505,
"processName": "cassandra",
"startTime": "2016-02-16T22:47:23.000Z",
"role": "Active"
},
{
"processId": 13960,
"processName": "haproxy",
"startTime": "2016-02-16T19:29:31.000Z",
"role": "Active"
},
{
"processId": 23806,
"processName": "listener1_00",
"startTime": "2016-02-16T22:47:23.000Z",
"role": "Active"
},
{
"processId": 27848,
"processName": "pcserver",
"startTime": "2016-02-16T23:08:45.000Z",
"role": "Active"
},
{
"processId": 28360,
"processName": "mladapter",
"startTime": "2016-02-16T23:10:56.000Z",
"role": "Active"
},
{
"processId": 28357,
"processName": "npat_ro",
"startTime": "2016-02-16T23:10:56.000Z",
"role": "Active"
}
]
}
]
This operation does not accept a request body.
Get the status of all the zookeeper clusters. .
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document returned follows ha.json#/definitions/zookeeperStatus . NorthStar uses a zookeeper cluster to coordinate different nodes. The URL provides the status of the zookeeper subsystem. You must check this information during the maintenance, because a failure of the zookeeper master might trigger a switchover, in some cases.
{
"master": "northstar-cluster-2",
"followers": [
{
"ip": "10.0.0.1",
"synced": true,
"host": "northstar-cluster-3"
},
{
"ip": "10.0.0.3",
"synced": true,
"host": "northstar-cluster-1"
}
]
}
This operation does not accept a request body.
Retrieves the list of preferences.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document returned follows ha.json#/definitions/highAvailability.
[
{
"preferenceType": "primaryNode",
"host": "northstar-cluster-3",
"priority": 0
},
{
"preferenceType": "primaryNode",
"host": "northstar-cluster-2",
"priority": 0
},
{
"preferenceType": "primaryNode",
"host": "northstar-cluster-1",
"priority": 0
}
]
This operation does not accept a request body.
Sets the node preferences.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The JSON document should follow ha.json#/definitions/highAvailability . You must set the new preferences for a node.
This operation does not return a response body.
Triggers a switchover.
Parameter | Style | Type | Description |
---|---|---|---|
tenant_id | URI | xsd:int |
The unique identifier of the tenant or account. In Northstar version 1, unique identifier is set to 1. |
The request body must be empty.
This operation does not return a response body.