Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added reference to route table wiki page

...

To support using an RMR connection for communicating route tables, there are three message types which have been added.  These are defined in rmr/RIC_message_types.h included with the development package.  

RMRRM_TABLE_DATAThis message type is sent from Route Manager to RMR. The payload contains any valid record described below (e.g. route table entry). The message may contain multiple records; all records in a message must have a trailing newline.
RMRRM_REQ_TABLEThis message type is sent from RMR to the Route Manager to request that a new table be sent.  RMR populates some information in the payload, but at the moment it is expected that the payload is ignored by Route Manager
RMRRM_TABLE_STATE

This message type is sent from RMR to Route Manager to communicate the state of the last transmitted table.  The payload contains one of two states:

  • "OK <id>\n"
    Indicates that the table was received and is installed.  <id> is the table ID which was sent on the start record (see the RMR Route Table wiki page for more information about table ID). 
  • "ERR <id> <message-text>\n"
    Indicates that the table, identified by <id> was not received correctly and is not installed. The tokens following <id> are a brief message that might explain the problem.

Messages arriving with a type which is not listed above are silently dropped.

...

RMR expects an update to consist of at least three new line separated records which may arrive in one or multiple messages from the Route Table Manager. The start and end records are similar to the newrt start and end records which are used when sending a complete table. The request tag on each is updatert; the exact syntax is shown below:


updatert | start | <table-id>
updatert | end | <count>


When RMR encounters a start update request in the stream from the Route Manager it will create a copy of the current table which will be updated with any rte/mse requests which are received before the end request is received. The end request carries one additional piece of information: the number of update requests that were sent between start and end. If RMR did not receive the indicated number when the end request is received, the table is discarded.


The <table-id> field is a string supplied by the Route Manager and used to respond with a table status message that RMR will send back to Route Manager.


Entry Updates     

The mse and rte requests which are recognised as a part of a full table are used to change existing, and add new, entries. Entries in the current table which are not changed with new data remain the same.

...