zenoh_protocol::scouting::hello

Module flag

source
Expand description

§Hello message

The Hello message is used to advertise the locators a zenoh node is reachable at. The Hello message SHOULD be sent in a unicast fashion in response to a super::Scout message as shown below:

A                   B                   C
|       SCOUT       |                   |
|------------------>|                   |
|         \---------------------------->|
|                   |                   |
|       HELLO       |                   |
|<------------------|                   |
|                   |      HELLO        |
|<--------------------------------------|
|                   |                   |

Moreover, a Hello message MAY be sent in the network in a multicast fashion to advertise the presence of zenoh node. The advertisement operation MAY be performed periodically as shown below:

 A                   B                   C
 |       HELLO       |                   |
 |------------------>|                   |
 |         \---------------------------->|
 |                   |                   |
 ~        ...        ~        ...        ~
 |                   |                   |
 |       HELLO       |                   |
 |------------------>|                   |
 |         \---------------------------->|
 |                   |                   |
 ~        ...        ~        ...        ~
 |                   |                   |

Examples of locators included in the Hello message are:

 udp/192.168.1.1:7447
 tcp/192.168.1.1:7447
 udp/224.0.0.224:7447
 tcp/localhost:7447

The Hello message structure is defined as follows:

Header flags:
- L: Locators       If L==1 then the list of locators is present, else the src address is the locator
- X: Reserved
- Z: Extensions     If Z==1 then zenoh extensions will follow.

 7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+
|Z|X|L|  HELLO  |
+-+-+-+---------+
|    version    |
+---------------+
|zid_len|X|X|wai| (*)
+-+-+-+-+-+-+-+-+
~     [u8]      ~ -- ZenohID
+---------------+
~   <utf8;z8>   ~ if Flag(L)==1 -- List of locators
+---------------+

(*) WhatAmI. It indicates the role of the zenoh node sending the HELLO message.
   The valid WhatAmI values are:
   - 0b00: Router
   - 0b01: Peer
   - 0b10: Client
   - 0b11: Reserved

Constants§