Network Control version v1.0
http://api.example.com/x-nmos/netctrl/{version}
- version: required (v1.0)
Overview
The Network Control API is exposed by an NMOS network controller. It provides APIs to create and manage network flows, add senders and receivers for the flows, and fetch network details.
Further Documentation
Further normative documentation covering the behaviour of this API is contained in the docs folder of this repository.
Network Devices
List Network Devices. NB: Query parameters should be implemented for all permitted resource attributes.
Endpoints
List Endpoints. NB: Query parameters should be implemented for all permitted resource attributes.
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Get a single Endpoint
Register a new Endpoint. The PUT is invoked to inform the network controller about the presence of an Endpoint. The Endpoint should include details of the Network Device the Endpoint is attached to. The attached network device details can be fetched by the endpoint through LLDP (if the endpoint is LLDP capable) or manual entry in the caller of this API (e.g., a broadcast controller). The network controller may verify these details. If the details are invalid, the network controller may reject the request. When the attached network device details are not included in the request, the network controller may attempt to determine them and include them in the registered Endpoint. However, if the network controller cannot determine them, it may reject the the request. Subsequent PUT requests should receive an error response. Updates should be done using PATCH.
Update an existing Endpoint's attributes.
Delete an existing Endpoint.
Network Links
List Network Links. NB: Query parameters should be implemented for all permitted resource attributes.
Network Flows
List Network Flows. NB: Query parameters should be implemented for all permitted resource attributes.
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Get a single Network Flow
Create a Network Flow with the specified ID. Subsequent PUT requests should receive an error response. Updates should be done using PATCH.
Update an existing Network Flow with the specified ID. A Network Flow is equivalent to and also uniquely identified by the Sender Endpoint ID and the multicast address, or the <S,G> pair. So, neither the Sender Endpoint ID nor the multicast address can be updated of an existing Network Flow. A new Network Flow should be created for a different pair of <S,G>. Moreover, for simplicity, receiver Endpoint IDs can only be updated using a /receivers POST or DELETE request.
Delete the Network Flow with the specified ID.
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Add one or more receivers to this Network Flow. Receivers included in the body should be appended to the existing receivers, if any. If the forward flow flag is set for this Network Flow, both bandwidth reservation and flow switching must occur for all new receivers. If the forward flow flag is not set, only resource reservation should take place. Failure to satisfy for any one receiver should fail for all and fail the complete request. Proper error message should be provided in this scenario. No task should be completed partially, that is, server should employ all-or-nothing strategy.
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Delete the receiver of this Network Flow with the specified ID.