9.13 Set environment alarm limits ......................................................................................44
9.14 List environment status ..............................................................................................44
Appendix A – Supported commands ...................................................................... 45
nevion.com | 4
Modular Routing Protocol - MRP Rev. L
1 Introduction
This document describes the communication protocol for controlling Nevion products.
Nevion VikinX Modular, Sublime and Compact routers in addition to Flashlink frames can
be connected to Nevion Control Panels or computers through Ethernet, RS232 or RS422.
As the protocol is ASCII based, changes can be made using a terminal program.
This document contains a command reference of the Modular Routing Protocol. All syntax
in this document is presented in the Backus-Naur form (BNF).
nevion.com | 5
Modular Routing Protocol - MRP Rev. L
2 Definitions
2.1 Routers and levels
Physical routers must be partitioned into one or more levels to make them controllable.
Level is a logical router inside a physical router. A physical router output can not be
included in more than one level. Input and output sequences are continuous and span from
0 to size-1. Refer to the Nevion Configurator user manual for more details.
Nevion products can only be partitioned into levels when Multicon is used. Without
Multicon, the level size is equal to the physical router size.
2.2 Clients and servers
Typically, control panels are clients connecting to a server. Units controlling a router or
Multicon system are clients. Servers are typically Sublime routers and the part of Multicon
communicating with control panels. Units being controlled by others are servers.
2.3 Message format and structure
All message and command data consists of ASCII characters.
There are three types of messages:
Commands.
Command responses. Responses that the server sends back after receiving a
command. Command responses are prefixed with a '?' character, may contain an
echo of the command and are sent only to the client issuing the command.
Status messages. Messages that the server sends to inform about status changes.
Status messages are prefixed with a % character, do not echo any commands, and
are sent to all connected clients.
A message consists of a sequence of ASCII characters (a string), terminated by two
linefeed (value 0x10) characters. For the rest of this document, <LF> will represent a
linefeed. Message termination is not shown in syntax descriptions for clarity. Literal strings
are enclosed in single quotes in this document.
No part of the message will be executed before the complete message is received. The
optional CRC is placed immediately preceding the pair of linefeed characters, see chapter
2.5 and 4.2. For commands, the CRC should be added after the last character of the
command, before the pair of linefeeds. For command responses and status messages the
CRC is preceded with a linefeed:
Start and end of a text string is by means of a single " character. If a string contains a " or \
character, it must be preceded by a \ (like in the C programming language). Description
fields may be up to 127 bytes long. UTF-8 is used for character encoding throughout the
system.
2.4 Common syntax definitions
These syntax definitions are common to many functions.
Mnemonics are supported for a lot of items. The alias and name is freely assignable, and
will in many cases be called a label. The initial item name, alias and description is set
during configuration. The description is not available for modification through this protocol.
LOCK CROSSPOINT
A lock is a property applied to an output, destination, salvo or parameter that makes that
output, destination, salvo or parameter unchangeable to all users, including the user that
locked it.
UNLOCK CROSSPOINT
Unlock is only effective if it is sent by a user with higher access level than the user which
sent the lock or protect command, or the unlock is sent by the same user that sent the lock
or protect command.
PROTECT CROSSPOINT
A protect is a property applied to an output, destination or salvo that makes that output,
destination or salvo unchangeable to all other users, except for the one that protected it.
Refer to the Nevion Configurator for user management details.
The user that owns a locked or protected item is allowed to change the lock/protect state of
this item. A user with higher access level then the user that owns the locked/protected item
is allowed to change the state. An administrator can always unlock.
nevion.com | 7
Modular Routing Protocol - MRP Rev. L
Lock command/state
Partial
Protect
Lock
Decimal
Unlock/unprotect
0 0 0
0
Lock
0 0 1
1
Protect
0 1 0
2
N/A
0 1 1
3
N/A
1 0 0
4
Partial lock
1 0 1 5 Partial protect
1 1 0
6
Partial lock + protect
1 1 1
7
Table 1. Lock command/state definitions
<user ID> is a two-byte number specifying the user id of the user that locked the item.
User privileges are defined at configuration time. The optional user id is ignored in
commands, but legal for backwards compatibility. Refer to chapter 3.2.
When setting a lock, only LOCK, PROTECT and UNLOCK are valid commands. In status
messages, the state values are considered bitmask values, enabling a combined status
value ranging from 0-7 (Table 1).
2.6 Check Sum (Cyclic Redundancy Checksum, CRC)
If the message is terminated by a * followed by 4 hexadecimal numbers, and then two
<LF>, the message contains a check sum. The receiver of the message should verify that
the check sum is correct, before executing the command.
The checksum is not needed for operation of the server. The checksum is a 16-bit word.
The polynomial used for CRC calculation is defined in CCITT X.25 and UIT V.41. [*CRC]
denotes proper placement of the checksum in commands and responses.
Example:
x l3 52 27 *53A2
2.7 Protocol error handling
Unknown or misspelled commands and syntactic errors return the same error message.
Example command response:
? "portocol"
ERROR: Unknown command
2.8 Future expansion
New commands and status messages may be added in the future, and messages may
have parameters added. A client or host implementation must be able to ignore these extra
parameters and messages without system failure. New parameters will always be added at
the end of the command or status line.
nevion.com | 8
Modular Routing Protocol - MRP Rev. L
Command:
Response:
login admin password
? "login admin password"
login admin ok
Command:
Response:
userlist
? "userlist"
user admin 1
user guest 2
user Oper1 3
user Oper2 4
user Studio3 5
3 Initial communication
3.1 Connection to server
Access to the server(s) for communication purposes is achieved by connecting either the
serial port of your computer and/or by using an Ethernet connection (TCP at port 4381).
3.2 User identification and privileges
A default user will be set when a connection is opened. Access rights are set in relation to
this. To change user to get additional privileges, use the login command. This command is
new to MRP 3.0. Omitting username will return an ok response including the current
username.
Logging in with the login command will set syntax to v3 (see 4.1).
<command> ::= 'login' [<username> [<password>]]
<response> ::= 'login' <username> <result>
<result> ::= 'ok'|'failed' [<error code>]
Example:
3.3 User list
Status commands only return a numerical value for identifying users, to map numerical
values to user names, use this command.
When using the compact syntax, some of the syntax in Compact
Router Control Protocol is used. This includes using input number
127 as disconnect commands and status on levels which support
disconnect.
'v128'
When using the v128 syntax, disconnect commands and status is
using the letter 'd'. This makes it possible to support data-routers
with 128 or more inputs.
'v3'
Updated protocol syntax, where locking and user information is
produced at all times. Turns on output of notifications not present
in earlier versions, i.e. parameters, salvos, virtual routing updates
etc.
Command:
Response:
syntax v128
? "syntax v128"
v128 mode
Command:
Response:
crc on
? "crc on"
*CBCE
ping *2E23
? "ping *2E23"
pong
*BD8C
4 Protocol configuration
4.1 Protocol syntax
Set the syntax used in the protocol. The syntax is local for each connection.
<command> ::= 'syntax' <mode>
<response> ::= <mode> 'mode'
Possible modes:
Example:
The default syntax is v128. Always send the syntax command after connecting to the
server. It is recommended to use v3 for new implementations; the others are for backwards
compatibility only.
4.2 CRC in response
Switch on or off CRC in responses from the server. This command is local for each
connection. Command response is empty apart from CRC and command echo.
<command> ::= 'crc' 'on'|'off'
<response> ::= ''
CRC in response is off by default.
Example:
nevion.com | 10
Modular Routing Protocol - MRP Rev. L
Command:
Response:
command_echo off
? "command_echo off"
Command:
Response:
ping
? "ping"
pong
4.3 Command echo
Switch on or off echo on commands. This command is local for each connection to the
server. Command response is empty apart from CRC and command echo.
<command> ::= 'command_echo' 'on'|'off'
<response> ::= ''
Command echo is on by default.
4.4 Protocol version
This command is used to determine the current protocol implementation. This command is
new to MRP 3.0.
<command> ::= 'protocol'
<response> ::= <protocol description>
Response example:
? "protocol"
MRP rev 3.0
4.5 Server Ping
This command is used to check if the server is still responding.
<command> ::= 'ping'
<response> ::= 'pong'
Example:
4.6 Status message suppression
To minimize load on clients, only physical crosspoint status messages are sent until a
request has been made for more. Not specifying on or off will return the current setting.
Please note the sense of the filter setting; 'filter vxpt on' means allow virtual routing status
across this interface.
nevion.com | 11
Modular Routing Protocol - MRP Rev. L
Filters
status
ssp
name
xpt
x, xl
sspo, sspi
l, in, out
vxpt
x
sspo, sspi
vt, vl, vcat, vsrc, vdest
salvo x sspi
sg, salvo
param x -
pg, par
event
event - -
The following table shows how the filter features and properties are connected together.
The properties (status, ssp, name) turns on/off columns. The features (xpt, vxpt, salvo,
param, event) turns on/off rows.
Some product might also report the formats 'Data (Video)' and 'Data (Audio)',
but these formats are not supported by revision 3 and later of this protocol.
Example:
5.2 Virtual Table list
This command is used to get the list of all virtual tables.