...
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_DATA | This 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_TABLE | This 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:
|
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.
...