Expand description
§Zenoh extensions
A zenoh extension is encoded as TLV (Type, Length, Value). Zenoh extensions with unknown IDs (i.e., type) can be skipped by reading the length and not decoding the body (i.e. value). In case the zenoh extension is unknown, it is still possible to forward it to the next hops, which in turn may be able to understand it. This results in the capability of introducing new extensions in an already running system without requiring the redeployment of the totality of infrastructure nodes.
The zenoh extension wire format is the following:
Header flags:
- E |: Encoding The encoding of the extension
- E/
- Z: More If Z==1 then another extension will follow.
7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+
|Z|ENC|M| ID |
+-+---+-+-------+
% length % -- If ENC == Z64 || ENC == ZBuf (z32)
+---------------+
~ [u8] ~ -- If ENC == ZBuf
+---------------+
Encoding:
- 0b00: Unit
- 0b01: Z64
- 0b10: ZBuf
- 0b11: Reserved
(*) If the zenoh extension is not understood, then it SHOULD NOT be dropped and it
SHOULD be forwarded to the next hops.