master
h 103 lines 4.62 KB
Raw
1 // Copyright: SPDX-License-Identifier: GPL-3.0-only
2
3 #ifndef MQTT_CONSTANTS_H
4 #define MQTT_CONSTANTS_H
5
6 #define MQTT_MAX_QOS 0x02
7
8 #define MQTT_VERSION_5_0 0x5
9
10 /* [MQTT-1.5.5] most significant bit
11 of MQTT Variable Byte Integer signifies
12 there are more bytes following */
13 #define MQTT_VBI_CONTINUATION_FLAG 0x80
14 #define MQTT_VBI_DATA_MASK 0x7F
15 #define MQTT_VBI_MAXBYTES 4
16
17 /* MQTT control packet types as defined in
18 2.1.2 MQTT Control Packet type */
19 #define MQTT_CPT_CONNECT 0x1
20 #define MQTT_CPT_CONNACK 0x2
21 #define MQTT_CPT_PUBLISH 0x3
22 #define MQTT_CPT_PUBACK 0x4
23 #define MQTT_CPT_PUBREC 0x5
24 #define MQTT_CPT_PUBREL 0x6
25 #define MQTT_CPT_PUBCOMP 0x7
26 #define MQTT_CPT_SUBSCRIBE 0x8
27 #define MQTT_CPT_SUBACK 0x9
28 #define MQTT_CPT_UNSUBSCRIBE 0xA
29 #define MQTT_CPT_UNSUBACK 0xB
30 #define MQTT_CPT_PINGREQ 0xC
31 #define MQTT_CPT_PINGRESP 0xD
32 #define MQTT_CPT_DISCONNECT 0xE
33 #define MQTT_CPT_AUTH 0xF
34
35 // MQTT CONNECT FLAGS (spec:3.1.2.3)
36 #define MQTT_CONNECT_FLAG_USERNAME 0x80
37 #define MQTT_CONNECT_FLAG_PASSWORD 0x40
38 #define MQTT_CONNECT_FLAG_LWT_RETAIN 0x20
39 #define MQTT_CONNECT_FLAG_LWT 0x04
40 #define MQTT_CONNECT_FLAG_CLEAN_START 0x02
41
42 #define MQTT_CONNECT_FLAG_QOS_MASK 0x18
43 #define MQTT_CONNECT_FLAG_QOS_BITSHIFT 3
44
45 #define MQTT_MAX_CLIENT_ID 23 /* [MQTT-3.1.3-5] */
46
47 // MQTT Property identifiers [MQTT-2.2.2.2]
48 #define MQTT_PROP_PAYLOAD_FMT_INDICATOR 0x01
49 #define MQTT_PROP_PAYLOAD_FMT_INDICATOR_NAME "Payload Format Indicator"
50 #define MQTT_PROP_MSG_EXPIRY_INTERVAL 0x02
51 #define MQTT_PROP_MSG_EXPIRY_INTERVAL_NAME "Message Expiry Interval"
52 #define MQTT_PROP_CONTENT_TYPE 0x03
53 #define MQTT_PROP_CONTENT_TYPE_NAME "Content Type"
54 #define MQTT_PROP_RESPONSE_TOPIC 0x08
55 #define MQTT_PROP_RESPONSE_TOPIC_NAME "Response Topic"
56 #define MQTT_PROP_CORRELATION_DATA 0x09
57 #define MQTT_PROP_CORRELATION_DATA_NAME "Correlation Data"
58 #define MQTT_PROP_SUB_IDENTIFIER 0x0B
59 #define MQTT_PROP_SUB_IDENTIFIER_NAME "Subscription Identifier"
60 #define MQTT_PROP_SESSION_EXPIRY_INTERVAL 0x11
61 #define MQTT_PROP_SESSION_EXPIRY_INTERVAL_NAME "Session Expiry Interval"
62 #define MQTT_PROP_ASSIGNED_CLIENT_ID 0x12
63 #define MQTT_PROP_ASSIGNED_CLIENT_ID_NAME "Assigned Client Identifier"
64 #define MQTT_PROP_SERVER_KEEP_ALIVE 0x13
65 #define MQTT_PROP_SERVER_KEEP_ALIVE_NAME "Server Keep Alive"
66 #define MQTT_PROP_AUTH_METHOD 0x15
67 #define MQTT_PROP_AUTH_METHOD_NAME "Authentication Method"
68 #define MQTT_PROP_AUTH_DATA 0x16
69 #define MQTT_PROP_AUTH_DATA_NAME "Authentication Data"
70 #define MQTT_PROP_REQ_PROBLEM_INFO 0x17
71 #define MQTT_PROP_REQ_PROBLEM_INFO_NAME "Request Problem Information"
72 #define MQTT_PROP_WILL_DELAY_INTERVAL 0x18
73 #define MQTT_PROP_WIIL_DELAY_INTERVAL_NAME "Will Delay Interval"
74 #define MQTT_PROP_REQ_RESP_INFORMATION 0x19
75 #define MQTT_PROP_REQ_RESP_INFORMATION_NAME "Request Response Information"
76 #define MQTT_PROP_RESP_INFORMATION 0x1A
77 #define MQTT_PROP_RESP_INFORMATION_NAME "Response Information"
78 #define MQTT_PROP_SERVER_REF 0x1C
79 #define MQTT_PROP_SERVER_REF_NAME "Server Reference"
80 #define MQTT_PROP_REASON_STR 0x1F
81 #define MQTT_PROP_REASON_STR_NAME "Reason String"
82 #define MQTT_PROP_RECEIVE_MAX 0x21
83 #define MQTT_PROP_RECEIVE_MAX_NAME "Receive Maximum"
84 #define MQTT_PROP_TOPIC_ALIAS_MAX 0x22
85 #define MQTT_PROP_TOPIC_ALIAS_MAX_NAME "Topic Alias Maximum"
86 #define MQTT_PROP_TOPIC_ALIAS 0x23
87 #define MQTT_PROP_TOPIC_ALIAS_NAME "Topic Alias"
88 #define MQTT_PROP_MAX_QOS 0x24
89 #define MQTT_PROP_MAX_QOS_NAME "Maximum QoS"
90 #define MQTT_PROP_RETAIN_AVAIL 0x25
91 #define MQTT_PROP_RETAIN_AVAIL_NAME "Retain Available"
92 #define MQTT_PROP_USR 0x26
93 #define MQTT_PROP_USR_NAME "User Property"
94 #define MQTT_PROP_MAX_PKT_SIZE 0x27
95 #define MQTT_PROP_MAX_PKT_SIZE_NAME "Maximum Packet Size"
96 #define MQTT_PROP_WILDCARD_SUB_AVAIL 0x28
97 #define MQTT_PROP_WILDCARD_SUB_AVAIL_NAME "Wildcard Subscription Available"
98 #define MQTT_PROP_SUB_ID_AVAIL 0x29
99 #define MQTT_PROP_SUB_ID_AVAIL_NAME "Subscription Identifier Available"
100 #define MQTT_PROP_SHARED_SUB_AVAIL 0x2A
101 #define MQTT_PROP_SHARED_SUB_AVAIL_NAME "Shared Subscription Available"
102
103 #endif /* MQTT_CONSTANTS_H */