You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Magic Number | 0 | 2 | 2 | 01 64 | Fixed value (0x01 and 'd') |
26
-
| Version Number | 2 | 3 | 1 | <preclass="language-yaml">VERSION: Uint8 </pre> | Version number starting from 0x01 |
27
-
| Block Size | 3 | 5 | 2 | <preclass="language-yaml">SIZE: Uint16 </pre> | Total block size in bytes |
28
-
| TTL | 5 | 6 | 1 | <preclass="language-yaml">TTL: Uint8 </pre> | Time-to-live for this block, get decremented with each node redirection |
29
-
| Priority | 6 | 7 | 1 | <preclass="language-yaml">PRIORITY: Uint8 </pre> | Routing priority of this block |
30
-
| Signed / Encrypted | 7 | 8 | 1 | <preclass="language-yaml">SECURITY: Uint8 </pre> | 0x00: not signed or encrypted, 0x01: signed, 0x02: encrypted, 0x03: signed and encrypted |
31
-
32
-
```
33
-
DATEX.Endpoint {
34
-
TYPE: Uint8
35
-
ID: Uint8[18]
36
-
INSTANCE: Uint16
37
-
}
38
-
39
-
PointerId {
40
-
TYPE: Uint8
41
-
IDENTIFIER: Uint8[18]
42
-
INSTANCE: Uint16
43
-
TIMESTAMP: Uint32 # unix ts in seconds, starting from 25. Juli 23
44
-
COUNTER: Uint8
45
-
}
46
-
47
-
ReceiverEndpoint {
48
-
ENDPOINT: Endpoint
49
-
optional KEY: Uint8[512] # only if Receivers.FLAGS.ENDPOINTS_HAVE_KEYS
50
-
}
51
-
52
-
ReceiverEndpoints {
53
-
COUNT: Uint16 # if MAX, flood, no RECEIVERS
54
-
ENDPOINTS: ReceiverEndpoint[COUNT]
55
-
}
56
-
57
-
Receivers {
58
-
FLAGS: Uint8
59
-
HAS_POINTER_ID: FLAGS & 0b00000001,
60
-
HAS_ENDPOINTS: FLAGS & 0b00000010,
61
-
ENDPOINTS_HAVE_KEYS: FLAGS & 0b00000100
62
-
optional POINTER_ID: PointerId
63
-
optional ENDPOINTS: ReceiverEndpoints
64
-
}
65
-
66
-
RoutingHeader {
67
-
MAGIC_NUMBER: Uint16 {0x01, 0x64},
68
-
VERSION: Uint8,
69
-
TTL: Uint8,
70
-
FLAGS: Uint8
71
-
HAS_UNENCRYPTED_SIGNATURE: FLAGS & 0b00000001,
72
-
HAS_ENCRYPTION: FLAGS & 0b00000010,
73
-
HAS_ENCRYPTED_SIGNATURE: FLAGS & 0b00000100,
74
-
IS_LARGE_SIZE: FLAGS & 0b00001000
75
-
BLOCK_SIZE: IS_LARGE_SIZE ? Uint32 : Uint16,
76
-
77
-
SCOPE_ID: Uint32
78
-
BLOCK_INDEX: Uint16
79
-
BLOCK_SUB_INDEX: Uint16
80
-
81
-
SENDER_TYPE: Uint8,
82
-
optional SENDER: Uint8[20] # only exists if SENDER_TYPE != 255, otherwise SENDER is @@any
83
-
optional RECEIVERS: Receivers
84
-
}
85
-
86
-
BlockHeader {
87
-
88
-
FLAGS: Uint21
89
-
BLOCK_TYPE: FLAGS & 0b111100000000000000000,
90
-
ALLOW_EXECUTE: FLAGS & 0b000010000000000000000,
91
-
END_OF_BLOCK: FLAGS & 0b000001000000000000000, # if a subdivided block has only a single signature, it is sent with the last block containing the END_OF_BLOCK flag
0 commit comments