NorthStar API v1

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.

Topology

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]

GET
v1/tenant/​{tenant_id}​/topology
Gets list of topologies

List available topologies.

 
Normal response codes
200
Request 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.

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

This operation does not accept a request body.

GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​
Get topological elements

Lists topological elements. The example shows three nodes, and two point-to-point links between node 11 and node 8. One node is PCEP-enabled (node 8, name 62.0.0.104) and one node is a pseudo node (node 2). Pseudo nodes do not have router-ids in their respective protocol object and have the pseudoNode attribute set to TRUE.

 
Normal response codes
200
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

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

This operation does not accept a request body.

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

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

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

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.

GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/status/pce
Get PCEP protocol adapter status

Retrieves the status of the PCEP protocol adapter component.

 
Normal response codes
200
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Response example:
{
  "status": "PCE is up.", 
  "statusTimestamp": 1462420202128, 
  "statusTimestampTime": "2016-05-05T03:50:02.128Z", 
  "component": "PCE"
}

This operation does not accept a request body.

GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/status/topologyAcquisition
Get BGP-LS protocol adapter status

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

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

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.

Response example:
{
  "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.

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

Retrieves the status of the Path Computation Server component.

 
Normal response codes
200
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Response example:
{
  "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

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 ]

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

Retrieves the full list of nodes.

 
Normal response codes
200
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

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

This operation does not accept a request body.

POST
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes
Create a planned Node

Creates a planned node. The request must follow the schema node.json#/definitions/createNode .

 
Normal response codes
201
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Request example:

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

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

The following parameters can be set:

  • Name

  • Autonomous System

  • management address

  • hostName

  • nodeType

  • design paramater: canFail

  • Node coordinates

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

Searchs the node list based on the URI parameters. For example, search?name=62.0.0.101 must return one node.

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

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.

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

Retrieves details of a node.

 
Normal response codes
200
Request 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.

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.

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

This operation does not accept a request body.

PUT
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Update Node properties

Updates a node. The request must follow the schema node.json#/definitions/updateNode .

 
Normal response codes
202
Request 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.

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.

Request example:
{
    "layer": "IP",
    "name": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1,
}
Response example:
{
    "layer": "IP",
    "name": "PlannedNode",
    "hostName" : "plannedNode.domain.example.com",
    "nodeIndex": 12,
    "protocols": {},
    "topoObjectType": "node",
    "topologyIndex": 1,
}
DELETE
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​
Delete a node

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

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

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.

GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/nodes/​{nodeIndex}​/history
Retrieve the Node event history

Retrieves the history for a Node.

 

The history contains a list of timestamped (unix timestamp) events for the node resource.

Normal response codes
200
Request 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.

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.

Response example:
[
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427130726939
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427130727025
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "vmx101-62",
	"timestamp": 1427135395317
    },
    {
	"topoObjectType": "node",
	"topologyIndex": 1,
	"name": "62.0.0.101",
	"nodeIndex": 1,
	"AutonomousSystem": {
	    "asNumber": 62
	},
	"layer": "IP",
	"protocols": {
	    "ISIS": {
		"routerId": "62.0.0.101",
		"TERouterId": "62.0.0.101",
		"isoAddress": "0620.0000.0101",
		"area": "490062"
	    }
	},
	"hostName": "CHI",
	"topology": {
	    "coordinates": {
		"type": "Point",
		"coordinates": [
		    4.29167,
		    2.9
		]
	    }
	},
	"timestamp": 1427168112286
    }
]

TE-LSPs

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 ]

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

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).

Normal response codes
200
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Response example:
[
    {
        "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.

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

Creates a TE-LSP. The accepted data is described by JSON schema lsp.json#/definitions/createLSP .

 
Normal response codes
201
Error response codes
400
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Request example:

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

The following 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}
	]
    }
}
Response example:

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"
}
GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/search
Search LSPs

Searches the LSP list based on the URI parameters. For example, search?name=62.101.105 should return one Link.

 
Normal response codes
200
Request 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.

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.

Response example:
[
    {
        "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"
    }
]
GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Get a single TE-LSP

Retrieves the details for a TE-LSP.

 
Normal response codes
200
Request 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.

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

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

This operation does not accept a request body.

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

Updates a TE-LSP. The accepted data is described by JSON schema lsp.json#/definitions/updateLSP .

 
Normal response codes
202
Request 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.

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

Request example:

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	
    }
}
Response example:
{
    "lspIndex": 20,
    "name": "Rest_LSP_1",
    "from": {"address": "62.0.0.101", "topoObjectType": "ipv4"},
    "to":   {"address": "62.0.0.103", "topoObjectType": "ipv4"},
    "controlType": "PCEInitiated",
    "plannedProperties": {
	"adminStatus": "Up",
	"bandwidth": "100M",
	"setupPriority": 7,
	"holdingPriority": 7,
	"lastStatusString": "Provisioning Order from REST Interface",
	"routingStatus": "Unknown"
    },
    "operationalStatus": "Unknown",
    "pathType": "primary"
}
DELETE
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​
Delete a TE-lsp

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.

 
Normal response codes
204
Request 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.

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.

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

Creates several TE-LSPs. The accepted data is described by JSON schema lsp.json#/definitions/createLSPOrResponseList .

 
Normal response codes
201
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Request example:

The request must contain a list of LSPs to be created. The LSP parameters are the same as 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"}
        }
    }
]
Response example:
[
    {
        "name": "REST_LSP_DIVERSE_1", 
        "from": {"address": "62.0.0.102", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.104", "topoObjectType": "ipv4"},
        "lspIndex": 21,
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "adminStatus": "Up",
            "routingStatus": "Unknown",
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"},
            "lastStatusString": ">Provisioning Order from REST Interface"
        },
        "controlType": "PCEInitiated",
        "operationalStatus": "Unknown"
    },
    {
        "name": "REST_LSP_DIVERSE_2", 
        "from": {"address": "62.0.0.103", "topoObjectType": "ipv4"}, 
        "to":   {"address": "62.0.0.101", "topoObjectType": "ipv4"},
        "lspIndex": 22,       
        "plannedProperties": {	
	    "bandwidth": "100M", 
	    "setupPriority": 7, 
	    "holdingPriority": 7,
            "adminStatus": "Up",
            "routingStatus": "Unknown",
            "design" : {"diversityLevel":"srlg","diversityGroup":"DiverseGroup1"},
            "lastStatusString": ">Provisioning Order from REST Interface"
        },
        "controlType": "PCEInitiated",
        "operationalStatus": "Unknown"
    }
]

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

Updates several TE-LSPs. The accepted data is described by JSON schema lsp.json#/definitions/lspListUpdate .

 
Normal response codes
202
Request 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.

topologyId URI xsd:int

The unique identifier of the topology. In NorthStar version 1, unique identifier is set to 1.

Request example:

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.

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

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.

 
Normal response codes
204
Request 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.

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.

GET
v1/tenant/​{tenant_id}​/topology/​{topology_id}​/te-lsps/​{lspIndex}​/history
Retrieve the LSP event history

Retrieves the history for a TE-LSP.

 

The history contains a list of timestamped (unix timestamp) events for the LSP resource.

Normal response codes
200
Request 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.

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.

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

Device Profiles

The corresponding schema is: deviceProfile.json . The operations are:

  • https://northstar.example.net:8443/NorthStar/API/v1/tenant/<tenant-id>/topology/<topology-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>/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>/netconf/netconfCollection/liveNetwork [ POST: create a collection job with requested device profiles ids ]

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

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

Get all Profiles.

 
Normal response codes
200
Request 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.

Response example:

The JSON document returned follows deviceProfile.json#/definitions/profileList.

This operation does not accept a request body.

POST
v1/tenant/​{tenant_id}​/netconf/profiles
Create new profiles

Create new profiles.

 
Normal response codes
201
Request 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.

Request example:

The JSON document request follows deviceProfile.json#/definitions/profileList.

Response example:

The JSON document returned follows deviceProfile.json#/definitions/profileList.

PUT
v1/tenant/​{tenant_id}​/netconf/profiles
Update profiles

Update profiles.

 
Normal response codes
202
Request 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.

Request example:

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
v1/tenant/​{tenant_id}​/netconf/profiles
Delete profiles

Delete profiles.

 
Normal response codes
204
Request 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.

Request example:

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.

POST
v1/tenant/​{tenant_id}​/netconf/netconfCollection/liveNetwork
Create a new collect

Create a new collect.

 
Normal response codes
201
Request 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.

Request example:

The JSON document request follows deviceProfile.json#/definitions/startCollection.

Response example:

The JSON document returned follows deviceProfile.json#/definitions/collectionStatus.

GET
v1/tenant/​{tenant_id}​/netconf/netconfCollection/liveNetwork/​{id}​
Get the status of a collection job

Get the status of a collection job

 
Normal response codes
200
Request 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.

collectionJobId URI xsd:int

The unique identifier of the collection job.

Response example:

The JSON document returned follows deviceProfile.json#/definitions/collectionStatus.

This operation does not accept a request body.

Transport Topology acquisition

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.

Create Transport controller Attributes
Attribute Type Fixed Description
name string No Transport controller name
notifyUrl string No The REST/RESTCONF URL publishing (via Server-Sent-event) topology notifications
profileName string No The profile group name the NorthStar controller must use to connect to the transport controller instances.
topologyUrl string No The URL providing the abstract topology, following the IETF model supported by NorthStar .
topoObjectType string Yes transportController

The other parameters are:

Create Transport controller optional Attributes
Attribute Type Fixed Description
interfaceType string No Indicates 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.

GET
v1/tenant/​{tenant_id}​/transportControllers
Get transport controller list

Retrieves the full list of transport controllers. The schema describing the response is transportController.json#/definitions/transportControllerList .

 
Normal response codes
200
Request 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.

Response example:
[
  {
    "transportControllerIndex": 1,
    "name": "Nortel",
    "interfaceType": "RESTCONF",
    "notifyUrl": "/streams/NETCONF-JSON",
    "pollUrl": "",
    "profileName": "NortelProfile",
    "reconnectTimeout": 10,
    "rootUrl": "",
    "srlgPrefix": "",
    "topologyToUse": "",
    "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
    "topoObjectType": "transportController"
  }
]

This operation does not accept a request body.

POST
v1/tenant/​{tenant_id}​/transportControllers
Create a transport controller configuration

Creates transport controller. The request must follow the schema transportController.json#/definitions/createTransportController .

 
Normal response codes
201
Request 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.

Request example:

{
    "name": "Nortel",
    "interfaceType": "RESTCONF",
    "notifyUrl": "/streams/NETCONF-JSON",
    "profileName": "NortelProfile",
    "reconnectTimeout": 10,
    "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
    "topoObjectType": "transportController"
}

Response example:
{
  "name": "Nortel",
  "interfaceType": "RESTCONF",
  "notifyUrl": "/streams/NETCONF-JSON",
  "profileName": "NortelProfile",
  "reconnectTimeout": 10,
  "topologyUrl": "/restconf/data/ietf-te-topology:te-topologies-state",
  "topoObjectType": "transportController",
  "transportControllerIndex": 1
}
GET
v1/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Get a transport controller configuration

Retrieves the details for a transport controller configuration.

 
Normal response codes
200
Request 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.

Response example:

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.

PUT
v1/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Update transport controller configuration

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.

 
Normal response codes
202
Request 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.

Request example:
{
  "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
}
Response example:
{
  "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
}
DELETE
v1/tenant/​{tenant_id}​/transportControllers/​{transportControllerIndex}​
Delete transport controller configuration

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.

 
Normal response codes
204
Request 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.

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

Transport Topology devices

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:

Create Transport controller Attributes
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:

Create Transport controller optional Attributes
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.

GET
v1/tenant/​{tenant_id}​/transportControllerGroups
Get transport controller device groups

Retrieves the full list of transport controller groups. The schema describing the response is transportControllerEndpoint.json#/definitions/transportControllerGroupList .

 
Normal response codes
200
Request 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.

Response example:
[  
  {
    "name": "NortelProfile"
  },
  {
    "name": "Default"
  }
]

This operation does not accept a request body.

POST
v1/tenant/​{tenant_id}​/transportControllerGroups
Create a transport controller device group

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

Normal response codes
201
Request 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.

Request example:
{
    "name": "NortelProfile",
    "profileType": "Network Controllers"
}
Response example:
{
  "success": true
}
DELETE
v1/tenant/​{tenant_id}​/transportControllerGroups
Delete a transport controller device group

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

Normal response codes
201
Request 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.

Request example:
{
    "name": "NortelProfile",
    "profileType": "Network Controllers"
}
Response example:
{
  "success": true
}
GET
v1/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Get transport controller device groups

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.

 
Normal response codes
200
Request 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.

transportControllerGroupName URI xsd:string

The transport controller devices groups name.

Response example:
[
  {
    "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.

POST
v1/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Create new devices in the group

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.

Normal response codes
201
Request 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.

transportControllerGroupName URI xsd:string

The transport controller devices groups name.

Request example:
[
    {
        "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
  }
]
Response example:
{
  "success": true
}
PUT
v1/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Update devices in the group

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.

Normal response codes
201
Request 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.

transportControllerGroupName URI xsd:string

The transport controller devices groups name.

Request example:
[
  {
    "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
  }
]
Response example:
{
  "success": true
}
DELETE
v1/tenant/​{tenant_id}​/transportControllerGroups/​{transportControllerGroupName}​
Delete devices from the group

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.

Normal response codes
201
Request 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.

transportControllerGroupName URI xsd:string

The transport controller devices groups name.

Request example:
[
  {
    "id": "91172e83-7b45-422c-ac1e-1940fb9a7ddf"
  }
]
Response example:
{
  "success": true
}

High Availability

This API permits monitoring and configuration of NorthStar high availability cluster.

The corresponding schema is: ha.json .

GET
v1/tenant/​{tenant_id}​/highAvailability/hosts
Get the status of the cluster

Get the status of all the nodes and processes of the cluster. .

 
Normal response codes
200
Request 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.

Response example:

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
v1/tenant/​{tenant_id}​/highAvailability/zkstatus
Get the status of the zookeeper cluster

Get the status of all the zookeeper clusters. .

 
Normal response codes
200
Request 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.

Response example:

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.

GET
v1/tenant/​{tenant_id}​/highAvailability/highAvailability
Retrieve the list of preferences

Retrieves the list of preferences.

 
Normal response codes
200
Request 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.

Response example:

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.

PUT
v1/tenant/​{tenant_id}​/highAvailability/highAvailability
Modify the node preferences

Sets the node preferences.

 
Request 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.

Request example:

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.

POST
v1/tenant/​{tenant_id}​/highAvailability/stepdown
Request the primary node to step down

Triggers a switchover.

 
Request 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.

Request example:

The request body must be empty.

This operation does not return a response body.