NVision NV9000 Protocol implementation notes

NV9000 protocol for router control is supported in Helm, RouteMaster and RouteMaster VR.

RouteMaster uses the protocol for both outgoing and incoming connections, allowing third-party systems using NV9000 to control RouteMaster.  Helm uses it for outgoing connections to control routers.

NV9000 is only supported via TCP/IP. The standard port number for NV9000 protocol is 9193. However, Helm and RouteMaster can be configured for any port.

Levels

NV9000 protocol supports 32 levels. However, unlike other protocols, each level has separate source and destination mnemonics, and can be locked and unlocked independently.  Rascular Products do not support this and currently show mnemonics from the first level, and always lock and unlock all levels together.

Physical Ports vs. Device IDs

The NV9000 protocol has two modes of operation:

  • Physical Ports: Control is by port number, which directly corresponds to physical connectors on each router
  • Device ID: NV9000 maintains a database which exposes numeric Device IDs, and hides the underlying mapping to ports.

Because Device IDs are not necessarily sequential, they’re a poor fit for RouteMaster and Helm’s matrix-based control model, so we strongly recommend that Port-based control (the default) is used. In Helm, setting the UsePhysicalPorts router property to false switches to using Device IDs.  In this mode it’s possible to create a mapping file which assigns specific IDs to Routemaster’s matrix-based numbering.

When using NV9000 as a client protocol with RouteMaster, both Device ID and Port modes can be used. In this case, Device IDs map directly to port numbers.

Supported and Required Commands

This table details the commands used for outgoing connections, and the commands supported for incoming connections. If a command is not listed here, it’s not currently used or supported.

Physical Port control

Command Outgoing Incoming Notes
Get Physical Levels (0x3014) Yes Yes
Take by Port (0x3001) Yes Yes
Lock by Port (0x3003) Yes Yes
Fire Salvo (0x300A) Yes Yes
Request Port Mnemonics (0x3015) Yes Yes Mnemonics for Level 0 are always requested. For incoming commands, the level ID is ignore.
Register for Port changes (0x3005) Yes Yes
Request Port status  (0x3007) Yes Yes
Request Port Protect status Yes
Request Extended Port status  (0x3007) Yes

Device ID control

Command Outgoing Incoming Notes
Get Physical Levels (0x3014) Yes Yes
Take by ID (0x3000) Yes Yes
Lock by ID (0x3002) Yes
Fire Salvo (0x300A) Yes Yes
Request ID Mnemonics (0x3012) Yes Yes
Register ID Changes (0x3004) Yes Yes
Request Destination ID Status (0x3017) Yes Yes

Special Properties

For outgoing TCP/IP connections, the following properties can be set directly in Helm Designer, or in the RouteMaster configuration file.

UsePhysicalPorts Boolean, defaults to True Use Port-base control if true, ID-based control if false.
UserID Defaults to zero Indicates the ID of the controlling device to NV9000