Go to the documentation of this file.
18 #define COAP_DEFAULT_RESPONSE_TIMEOUT 2
19 #define COAP_DEFAULT_MAX_RETRANSMIT 4
20 #define COAP_DEFAULT_PORT 5683
21 #define COAP_DEFAULT_MAX_AGE 60
22 #ifndef COAP_MAX_PDU_SIZE
23 #define COAP_MAX_PDU_SIZE 1400
26 #define COAP_DEFAULT_VERSION 1
27 #define COAP_DEFAULT_SCHEME "coap"
30 #define COAP_DEFAULT_URI_WELLKNOWN ".well-known/core"
32 #ifdef __COAP_DEFAULT_HASH
34 #define COAP_DEFAULT_WKC_HASHKEY "\345\130\144\245"
39 #define COAP_MESSAGE_CON 0
40 #define COAP_MESSAGE_NON 1
41 #define COAP_MESSAGE_ACK 2
42 #define COAP_MESSAGE_RST 3
46 #define COAP_REQUEST_GET 1
47 #define COAP_REQUEST_POST 2
48 #define COAP_REQUEST_PUT 3
49 #define COAP_REQUEST_DELETE 4
53 #define COAP_OPTION_IF_MATCH 1
54 #define COAP_OPTION_URI_HOST 3
55 #define COAP_OPTION_ETAG 4
56 #define COAP_OPTION_IF_NONE_MATCH 5
57 #define COAP_OPTION_URI_PORT 7
58 #define COAP_OPTION_LOCATION_PATH 8
59 #define COAP_OPTION_URI_PATH 11
60 #define COAP_OPTION_CONTENT_FORMAT 12
61 #define COAP_OPTION_CONTENT_TYPE COAP_OPTION_CONTENT_FORMAT
62 #define COAP_OPTION_MAXAGE 14
63 #define COAP_OPTION_URI_QUERY 15
64 #define COAP_OPTION_ACCEPT 17
65 #define COAP_OPTION_LOCATION_QUERY 20
66 #define COAP_OPTION_PROXY_URI 35
67 #define COAP_OPTION_PROXY_SCHEME 39
68 #define COAP_OPTION_SIZE1 60
72 #define COAP_OPTION_OBSERVE 6
73 #define COAP_OPTION_SUBSCRIPTION COAP_OPTION_OBSERVE
77 #define COAP_OPTION_BLOCK2 23
78 #define COAP_OPTION_BLOCK1 27
80 #define COAP_MAX_OPT 63
88 #define COAP_RESPONSE_CODE(N) (((N)/100 << 5) | (N)%100)
91 #define COAP_RESPONSE_CLASS(C) (((C) >> 5) & 0xFF)
93 #ifndef SHORT_ERROR_RESPONSE
106 #define COAP_ERROR_PHRASE_LENGTH 32
109 #define coap_response_phrase(x) ((char *)NULL)
111 #define COAP_ERROR_PHRASE_LENGTH 0
116 #define COAP_RESPONSE_100 40
118 #define COAP_RESPONSE_200 COAP_RESPONSE_CODE(200)
119 #define COAP_RESPONSE_201 COAP_RESPONSE_CODE(201)
120 #define COAP_RESPONSE_304 COAP_RESPONSE_CODE(203)
121 #define COAP_RESPONSE_400 COAP_RESPONSE_CODE(400)
122 #define COAP_RESPONSE_404 COAP_RESPONSE_CODE(404)
123 #define COAP_RESPONSE_405 COAP_RESPONSE_CODE(405)
124 #define COAP_RESPONSE_415 COAP_RESPONSE_CODE(415)
125 #define COAP_RESPONSE_500 COAP_RESPONSE_CODE(500)
126 #define COAP_RESPONSE_501 COAP_RESPONSE_CODE(501)
127 #define COAP_RESPONSE_503 COAP_RESPONSE_CODE(503)
128 #define COAP_RESPONSE_504 COAP_RESPONSE_CODE(504)
130 # define COAP_RESPONSE_X_240 240
131 # define COAP_RESPONSE_X_241 241
133 #define COAP_RESPONSE_X_242 COAP_RESPONSE_CODE(402)
137 #define COAP_MEDIATYPE_TEXT_PLAIN 0
138 #define COAP_MEDIATYPE_APPLICATION_LINK_FORMAT 40
139 #define COAP_MEDIATYPE_APPLICATION_XML 41
140 #define COAP_MEDIATYPE_APPLICATION_OCTET_STREAM 42
141 #define COAP_MEDIATYPE_APPLICATION_RDF_XML 43
142 #define COAP_MEDIATYPE_APPLICATION_EXI 47
143 #define COAP_MEDIATYPE_APPLICATION_JSON 50
147 #define COAP_MEDIATYPE_ANY 0xff
152 #define COAP_INVALID_TID -1
154 #ifdef WORDS_BIGENDIAN
156 unsigned int version:2;
158 unsigned int token_length:4;
161 unsigned char token[];
165 unsigned int token_length:4;
167 unsigned int version:2;
170 unsigned char token[];
174 #define COAP_MESSAGE_IS_EMPTY(MSG) ((MSG)->code == 0)
175 #define COAP_MESSAGE_IS_REQUEST(MSG) (!COAP_MESSAGE_IS_EMPTY(MSG) \
176 && ((MSG)->code < 32))
177 #define COAP_MESSAGE_IS_RESPONSE(MSG) ((MSG)->code >= 64 && (MSG)->code <= 191)
179 #define COAP_OPT_LONG 0x0F
182 #define COAP_OPT_END 0xF0
184 #define COAP_PAYLOAD_START 0xFF
196 #define COAP_OPTION_KEY(option) (option).key
197 #define COAP_OPTION_LENGTH(option) (option).length
198 #define COAP_OPTION_DATA(option) ((unsigned char *)&(option) + sizeof(coap_option))
206 unsigned short max_delta;
207 unsigned short length;
212 #define COAP_OPTION(node) ((coap_option *)(node)->options)
230 unsigned short id,
size_t size);
288 unsigned int len,
const unsigned char *data);