NMOS Implementation Notes.

NMOS is supported since Firmware 3.9.9.44345 (Horus - Hapi) 1.1.8b44345 (Anubis)

Supported NMOS API's

  • NMOS Node API IS-04 v1.2
  • NMOS Connection API IS-05 v1.0

Advanced Page for NMOS Settings

To enable NMOS on a supported device the “Advanced” web page provides an additional NMOS Tab

Figure 1 The NMOS settings tab on the Advanced configuration page

NMOS General Settings

  • Enable:
    • Enable NMOS operation such as registering against a registry server and responding to NMOS REST API calls. To change the registration server configuration NMOS needs to be disabled.
      When the NMOS switch is enabled two things happen:
      1. Depending on the chosen "Mode" in the "Configure Registration Server" section the device starts to look for a registration server
      2. It opens up the "Port" chosen in the "NMOS General Settings" section for NMOS API calls. Supported NMOS API's are: IS-04 v1.2 and IS-05 v1.0
    • Disabling NMOS
      1. stops the server from listening for API calls
      2. Revokes the registration from a registration server
  • Port:
    This is the port used to reach the NMOS API on the device (unallowed: 80,81,8080). This setting can be changed when NMOS is not enabled.

Configure Registration Server

  • Mode:
    Lets you choose between mDNS (Bonjour), Unicast DNS, Static and Registry-less
    • mDNS (Bonjour): The registration server is found browsing for _nmos-register._tcp taking the first server to be found
    • Search domain: A search domain for looking up a DNS entry needs to be supplied. The search domain associated with the primary network interface is shown as Suggested. This mode is not yet supported on embedded devices
    • Static Address: The registration server is found using the address given in the “Address” field. This is the preferred way at the time of writing and tests against the Sony nmos-cpp registry and the Riedel NMOS explorer were carried out using this method.
  • Address
    IP address of the registration server which is evaluated and used when the mode is set to "Static".
    The supported format is "<ip address>:<port number>"
  • Search Domain
    If the mode is set to "Search Domain" this will be used as search DNS for an SRV record (Unicast DNS).
    Under certain circumstances an available  search domain can be identified and is added as "Suggested" one.
  • Registry-less (since v1.6.5): this mode must be used if the user plans to use NMOS without a NMOS registry in the network

Registration Server

  • This section only provides status information about the Registration Server
  • Server Name and Host are usually provided as response from a DNS/mDNS look up - they might be empty when mode is set to static
  • The <ip-address> of the server
  • The <port> of the server
  • If a registration server can be reached the Registered shows "true" over a green background. Otherwise it just reads "false"

Supported Functionality

  • IS-04 exposes the Ravenna device using this structure:
  • Each session source created on the “Sessions sources” tab creates a Sender, a Source and the corresponding Flow-NMOS-object. Each “Session sink” that has triggered a save operation on the web page is represented as a Receiver-NMOS-object
  • The registration is kept alive using a heartbeat every 5 seconds
  • Although deprecated creating a connection using just IS-04 is still supported
  • IS-05 connection API is supported using single as well as bulk operation.
  • Only immediate activation is supported


Special tweaks

Flush streamer address on disable will set the multicast destinations addresses of a streamer to empty when disabling it, allowing interoperability with Nevion.

Set UUID from names will set the UUIDs of ressource not from internal IDs or serial numbers (subject to change), but from the source name. User has to make sure the name (streamer/receiver names, device name) are unique.

Test results with the official test facility

  • We run nightly regression tests using the AMWA NMOS testing tool
    • Passing all IS-04-01 tests
    • Passing 53 of 68 tests skipping tests test_01..test_08 (replaced by ‘auto’ test), tests test_27..test_30 (absolute and relative activation) and test_41 (SDPoker test) and test_42 (warning)
    • Passing all IS-05-02 tests (interaction between IS-05 and IS-04)

Known Issues and Limitations

  • Testing is carried out using only our node implementations on Anubis and on our RavennaASIO implementation running on a PC although as of Jan 2022 we have a number of customers that are using our NMOS.
  • Tools used are the Sony nmos-cpp registry and the Riedel NMOS explorer 

    Figure 2 Setup used to test our NMOS functionality

  • Absolute and relative time connection activation (IS-05) is not supported.
  • Finding the most suitable registry server using priority text records is not supported
  • Nixer clients should not use port 8080 for NMOS as it is the update port, it is recommended to rather choose port 1936