3.6 Protocol Messages

3.6.1 RLNH_INIT

The RLNH_INIT message initiates link establishment between two peers. It is sent when the Connection Manager indicates to RLNH that the connection is up.

Table 3.1 RLNH Init Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
Version

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_INIT is 5.

Version

The RLNH protocol version. The current version is 2.

3.6.2 RLNH_INIT_REPLY

During link set up, RLNH responds to the RLNH_INIT message by sending an RLNH_INIT_REPLY message. The status field indicates whether the protocol is supported or not. The Feat_neg_string tells the remote RLNH what features the local RLNH supports.

Table 3.2 RLNH Init Reply Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
Status
Feat_neg_string (variable length, null-terminated string)

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_INIT_REPLY is 6.

Status

Status code indicating whether the protocol version received in the RLNH_INIT message is supported (0) or not (1).

Feat_neg_string

String containing feature name and argument pairs. Example: "feature1:arg1,feature2:arg2\0".

3.6.3 RLNH_PUBLISH

The RLNH_PUBLISH message publishes an association between an endpoint name and the link address that shall be used to refer to it in subsequent messaging. Upon receiving an RLNH_PUBLISH message, RLNH creates a local representation of the remote name. This resolves any pending hunt calls for link_name/remote_name.

Table 3.3 RLNH Publish Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
Linkaddr
Name (variable length, null-terminated string)

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_PUBLISH is 2.

Linkaddr

The link address being published.

Name

The name being published..

3.6.4 RLNH_QUERY_NAME

The RLNH_QUERY_NAME message is sent in order to resolve a remote name. An RLNH_PUBLISH message will be sent in response when the name has been found and assigned a link address by the peer.

Table 3.4 RLNH Query Name Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
src_linkaddr
Name (variable length, null-terminated string)

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_QUERY_NAME is 1.

src_linkaddr

Link address of the endpoint that issued the query.

Name

The name to be looked up.

3.6.5 RLNH_UNPUBLISH

The RLNH_UNPUBLISH message tells the remote RLNH that the endpoint previously assigned the given link-address has been closed.

Table 3.5 RLNH Unpublish Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
Linkaddr

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_UNPUBLISH is 3.

Linkaddr

The address of the closed endpoint.

3.6.6 RLNH_UNPUBLISH_ACK

The RLNH_UNPUBLISH_ACK message tells the remote RLNH that all associations regarding an unpublished link address have been terminated. This indicates to the peer that it is ok to reuse the link address.

Table 3.6 RLNH Unpublish Ack Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
Linkaddr

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_UNPUBLISH_ACK is 4.

Linkaddr

The link address of the unpublished endpoint.

3.6.7 RLNH_PUBLISH_PEER

When a remote LINX endpoint is used as the sender in a send_w_sender() function call and the receiver exists on the same node as the local LINX endpoint, the remote LINX endpoint is published as a remote sender.

Table 3.7 RLNH Publish Peer Header

012345678910111213141516171819202122232425262728293031
0123
ReservedType
Linkaddr
Peer_linkaddr

Reserved

Reserved for future use, must be 0.

Type

Message type. The value of RLNH_PUBLISH_PEER is 5.

Linkaddr

The link address being published.

Peer_linkaddr

The link address of the endpoint that previously published it self on the current link.