If the connection should be established over SAProuters, the route information is sent as the first message. The information includes:
Eye catcher
Route information version
NI version
Operation mode
Route length
Total number of nodes on the route
Pointer to the next hop on the route
Number of remaining nodes
Route string
The field for the route string contains the whole route, inclusive all previous nodes. For each node, the hostname, service/port and the password is included, separated by null characters. The values for the service/port and the password field may be empty strings. As default port number the value 3299 is used.
In the connect phase, the NI layer converts the route string from the input format (see Route Strings) into this internal format.
The data structure for the message is as follows:
Offset |
Size (bytes) |
Description and Value |
---|---|---|
0x00 |
9 |
eye catcher ("NI_ROUTE\0") |
0x09 |
1 |
route information version (current version: 2) |
0x0a |
1 |
NI version (current version: 36) |
0x0b |
1 |
total number of entries (value 2 to 255) |
0x0c |
1 |
talk mode (NI_MSG_IO: 0; NI_RAW_IO; 1; NI_ROUT_IO: 2), see Communication Modes. |
0x0d |
2 |
currently unused field |
0x0f |
1 |
number of rest nodes (remaining hops; value 2 to 255) |
0x10 |
4 |
route length (integer value in net byte order) |
0x14 |
4 |
current position as an offset into the route string (integer value in net byte order) |
0x18 |
* |
route string in ASCII |
Caution
This is supplementary information and not a customer interface. Do not create custom developments based on this information. The interface is subject to change without notice.
The internal format of the route string looks like following (ASCII characters):
Syntax
<hostname node 1>\0<port node 1>\0<password node 1>\0<hostname node 2>\0 ...
where \0 means the null character.
Example
Example of a remote connection
localhost\03300\0test\0sapserv3.wdf.sap-ag.de\0\0\0147.204.100.35\0sapdp01\0\0
with
node 1: hostname = localhost; port = 3300; password = test
node 2: hostname = sapserv3.wdf.sap-ag.de; port = 3299 (def.); password =
node 3: host address = 147.204.100.35; service name = sapdp01; password =
After a SAProuter has received the route information, the next destination is extracted from the string. If the connect to the next destination is successful, the same route information is passed with an incremented current position and decremented number of remaining nodes.
The own hostname in the string is replaced by the address / hostname of the previous node. This mechanism allows following SAProuters still to extract the whole route. In addition, newer SAProuter will add a leading blank to the hostname.