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 |