AMWA IS-06 NMOS Network-control-API version v1.0
http://example.api.com/x-nmos/netctrl/{version}
- version: required (v1.0)
Overview
The Phase 2 network control API is exposed by NMOS network controller. It provides Phase 2 APIs to create and manage network flows, add senders and receivers for the flows, and fetch network details.
Network Devices
Endpoints
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 schema includes mandatory 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 capabale) or manual entry in the caller of this API (e.g., broadcast controller). The network may verify these details for security purposes. Verification may happen synchronously, as part of the request. Network controller must create a corresponding network link with this endpoint as the peer device. Peer port id of the new link may or maynot be assigned, i.e, implementation dependent. Subsequent PUT requests should throw error. Updates should be done using PATCH.
Update an existing endpoint attributes.
Delete an existing endpoint.
Network Links
Get all links in the network. Links are always bidirectional. Implementation of the API must ensure that query results is independent of how a bi-directional link is persisted.
Network flow
A pre-flight check generally used for Cross-Origin Resource Sharing (CORS) purposes
Retrieve a single network-flow with the specified guid.
Create a network flow with the specific guid. No subsequent PUT request should be made for this flow and should return error. Use PATCH to update existing network flow.
Update an existing network flow with the specific guid. A network flow is equivalent to and uniquely identified by the sender id and the multicast address, or the <S,G> pair. So, neither the sender id or the multicast address can be updated of an existing 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 /receivers post or delete request.
Delete the network-flow with the specified guid.
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 is set for this network flow, both bandwidth resrvation and flow switching must occur for all new receivers. If the fowrad-flow 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 receiver of this network flow with given id.