Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
coap.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Intel Corporation
3 * Copyright (c) 2021 Nordic Semiconductor
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
14#ifndef ZEPHYR_INCLUDE_NET_COAP_H_
15#define ZEPHYR_INCLUDE_NET_COAP_H_
16
24#include <zephyr/types.h>
25#include <stddef.h>
26#include <stdbool.h>
27#include <zephyr/net/net_ip.h>
28
29#include <zephyr/sys/slist.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
64};
65
79};
80
81#define COAP_REQUEST_MASK 0x07
82
83#define COAP_VERSION_1 1U
84
117
124#define COAP_MAKE_RESPONSE_CODE(class, det) ((class << 5) | (det))
125
189
190#define COAP_CODE_EMPTY (0)
191
192#define COAP_TOKEN_MAX_LEN 8UL
193
210
211/* block option helper */
212#define GET_BLOCK_NUM(v) ((v) >> 4)
213#define GET_BLOCK_SIZE(v) (((v) & 0x7))
214#define GET_MORE(v) (!!((v) & 0x08))
215
216struct coap_observer;
217struct coap_packet;
218struct coap_pending;
219struct coap_reply;
220struct coap_resource;
221
227typedef int (*coap_method_t)(struct coap_resource *resource,
228 struct coap_packet *request,
229 struct sockaddr *addr, socklen_t addr_len);
230
236typedef void (*coap_notify_t)(struct coap_resource *resource,
237 struct coap_observer *observer);
238
249 const char * const *path;
252 int age;
253};
254
263};
264
275#if defined(CONFIG_COAP_KEEP_USER_DATA) || defined(DOXGEN)
280 void *user_data;
281#endif
282};
283
289#if defined(CONFIG_COAP_EXTENDED_OPTIONS_LEN)
291 uint8_t value[CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE];
292#else
295#endif
296};
297
306typedef int (*coap_reply_t)(const struct coap_packet *response,
307 struct coap_reply *reply,
308 const struct sockaddr *from);
309
314 struct sockaddr addr;
321};
322
330 int age;
334};
335
344
353
364
373
382
393 uint16_t *len);
394
411int coap_packet_parse(struct coap_packet *cpkt, uint8_t *data, uint16_t len,
412 struct coap_option *options, uint8_t opt_num);
413
423int coap_packet_set_path(struct coap_packet *cpkt, const char *path);
424
440int coap_packet_init(struct coap_packet *cpkt, uint8_t *data, uint16_t max_len,
441 uint8_t ver, uint8_t type, uint8_t token_len,
442 const uint8_t *token, uint8_t code, uint16_t id);
443
459int coap_ack_init(struct coap_packet *cpkt, const struct coap_packet *req,
460 uint8_t *data, uint16_t max_len, uint8_t code);
461
469
476
490int coap_find_options(const struct coap_packet *cpkt, uint16_t code,
491 struct coap_option *options, uint16_t veclen);
492
508 const uint8_t *value, uint16_t len);
509
519
531unsigned int coap_option_value_to_int(const struct coap_option *option);
532
546 unsigned int val);
547
556
566int coap_packet_append_payload(struct coap_packet *cpkt, const uint8_t *payload,
567 uint16_t payload_len);
568
586 struct coap_resource *resources,
587 struct coap_option *options,
588 uint8_t opt_num,
589 struct sockaddr *addr, socklen_t addr_len);
590
607};
608
618 enum coap_block_size block_size)
619{
620 return (1 << (block_size + 4));
621}
622
628 size_t current;
630};
631
642 enum coap_block_size block_size,
643 size_t total_size);
644
658
671
683
694 struct coap_block_context *ctx);
695
706 struct coap_block_context *ctx);
707
718 struct coap_block_context *ctx);
719
730 struct coap_block_context *ctx);
731
741int coap_get_option_int(const struct coap_packet *cpkt, uint16_t code);
742
754int coap_get_block1_option(const struct coap_packet *cpkt, bool *has_more, uint8_t *block_number);
755
768int coap_get_block2_option(const struct coap_packet *cpkt, uint8_t *block_number);
769
779int coap_update_from_block(const struct coap_packet *cpkt,
780 struct coap_block_context *ctx);
781
795 struct coap_block_context *ctx,
796 enum coap_option_num option);
797
809size_t coap_next_block(const struct coap_packet *cpkt,
810 struct coap_block_context *ctx);
811
820void coap_observer_init(struct coap_observer *observer,
821 const struct coap_packet *request,
822 const struct sockaddr *addr);
823
834 struct coap_observer *observer);
835
844 struct coap_observer *observer);
845
857 struct coap_observer *observers, size_t len,
858 const struct sockaddr *addr);
859
870 struct coap_observer *observers, size_t len);
871
878void coap_reply_init(struct coap_reply *reply,
879 const struct coap_packet *request);
880
896int coap_pending_init(struct coap_pending *pending,
897 const struct coap_packet *request,
898 const struct sockaddr *addr,
899 uint8_t retries);
900
912 struct coap_pending *pendings, size_t len);
913
925 struct coap_reply *replies, size_t len);
926
941 const struct coap_packet *response,
942 struct coap_pending *pendings, size_t len);
943
957 const struct coap_packet *response,
958 const struct sockaddr *from,
959 struct coap_reply *replies, size_t len);
960
972 struct coap_pending *pendings, size_t len);
973
982bool coap_pending_cycle(struct coap_pending *pending);
983
990void coap_pending_clear(struct coap_pending *pending);
991
999void coap_pendings_clear(struct coap_pending *pendings, size_t len);
1000
1007void coap_reply_clear(struct coap_reply *reply);
1008
1015void coap_replies_clear(struct coap_reply *replies, size_t len);
1016
1026
1035bool coap_request_is_observe(const struct coap_packet *request);
1036
1037#ifdef __cplusplus
1038}
1039#endif
1040
1045#endif /* ZEPHYR_INCLUDE_NET_COAP_H_ */
void coap_pending_clear(struct coap_pending *pending)
Cancels the pending retransmission, so it again becomes available.
size_t coap_next_block(const struct coap_packet *cpkt, struct coap_block_context *ctx)
Updates ctx so after this is called the current entry indicates the correct offset in the body of dat...
int coap_get_block2_option(const struct coap_packet *cpkt, uint8_t *block_number)
Get values from CoAP block2 option.
coap_response_code
Set of response codes available for a response packet.
Definition: coap.h:131
int coap_get_option_int(const struct coap_packet *cpkt, uint16_t code)
Get the integer representation of a CoAP option.
int coap_packet_append_payload_marker(struct coap_packet *cpkt)
Append payload marker to CoAP packet.
struct coap_observer * coap_observer_next_unused(struct coap_observer *observers, size_t len)
Returns the next available observer representation.
int coap_packet_parse(struct coap_packet *cpkt, uint8_t *data, uint16_t len, struct coap_option *options, uint8_t opt_num)
Parses the CoAP packet in data, validating it and initializing cpkt.
const uint8_t * coap_packet_get_payload(const struct coap_packet *cpkt, uint16_t *len)
Returns the data pointer and length of the CoAP packet.
int coap_packet_append_option(struct coap_packet *cpkt, uint16_t code, const uint8_t *value, uint16_t len)
Appends an option to the packet.
bool coap_pending_cycle(struct coap_pending *pending)
After a request is sent, user may want to cycle the pending retransmission so the timeout is updated.
unsigned int coap_option_value_to_int(const struct coap_option *option)
Converts an option to its integer representation.
int coap_append_block2_option(struct coap_packet *cpkt, struct coap_block_context *ctx)
Append BLOCK2 option to the packet.
void coap_reply_clear(struct coap_reply *reply)
Cancels awaiting for this reply, so it becomes available again.
int coap_update_from_block(const struct coap_packet *cpkt, struct coap_block_context *ctx)
Retrieves BLOCK{1,2} and SIZE{1,2} from cpkt and updates ctx accordingly.
coap_msgtype
CoAP packets may be of one of these types.
Definition: coap.h:88
bool coap_register_observer(struct coap_resource *resource, struct coap_observer *observer)
After the observer is initialized, associate the observer with an resource.
void coap_observer_init(struct coap_observer *observer, const struct coap_packet *request, const struct sockaddr *addr)
Indicates that the remote device referenced by addr, with request, wants to observe a resource.
struct coap_reply * coap_response_received(const struct coap_packet *response, const struct sockaddr *from, struct coap_reply *replies, size_t len)
After a response is received, call coap_reply_t handler registered in coap_reply structure.
int coap_append_size1_option(struct coap_packet *cpkt, struct coap_block_context *ctx)
Append SIZE1 option to the packet.
struct coap_observer * coap_find_observer_by_addr(struct coap_observer *observers, size_t len, const struct sockaddr *addr)
Returns the observer that matches address addr.
bool coap_request_is_observe(const struct coap_packet *request)
Returns if this request is enabling observing a resource.
int(* coap_reply_t)(const struct coap_packet *response, struct coap_reply *reply, const struct sockaddr *from)
Helper function to be called when a response matches the a pending request.
Definition: coap.h:306
int coap_next_block_for_option(const struct coap_packet *cpkt, struct coap_block_context *ctx, enum coap_option_num option)
Updates ctx according to option set in cpkt so after this is called the current entry indicates the c...
int coap_append_block1_option(struct coap_packet *cpkt, struct coap_block_context *ctx)
Append BLOCK1 option to the packet.
int coap_block_transfer_init(struct coap_block_context *ctx, enum coap_block_size block_size, size_t total_size)
Initializes the context of a block-wise transfer.
uint16_t coap_header_get_id(const struct coap_packet *cpkt)
Returns the message id associated with the CoAP packet.
struct coap_reply * coap_reply_next_unused(struct coap_reply *replies, size_t len)
Returns the next available reply struct, so it can be used to track replies and notifications receive...
uint8_t * coap_next_token(void)
Returns a randomly generated array of 8 bytes, that can be used as a message's token.
void coap_remove_observer(struct coap_resource *resource, struct coap_observer *observer)
Remove this observer from the list of registered observers of that resource.
uint8_t coap_header_get_token(const struct coap_packet *cpkt, uint8_t *token)
Returns the token (if any) in the CoAP packet.
coap_method
Available request methods.
Definition: coap.h:71
int coap_append_option_int(struct coap_packet *cpkt, uint16_t code, unsigned int val)
Appends an integer value option to the packet.
void coap_pendings_clear(struct coap_pending *pendings, size_t len)
Cancels all pending retransmissions, so they become available again.
coap_block_size
Represents the size of each block that will be transferred using block-wise transfers [RFC7959]:
Definition: coap.h:599
int(* coap_method_t)(struct coap_resource *resource, struct coap_packet *request, struct sockaddr *addr, socklen_t addr_len)
Type of the callback being called when a resource's method is invoked by the remote entity.
Definition: coap.h:227
int coap_get_block1_option(const struct coap_packet *cpkt, bool *has_more, uint8_t *block_number)
Get the block size, more flag and block number from the CoAP block1 option.
coap_option_num
Set of CoAP packet options we are aware of.
Definition: coap.h:44
struct coap_pending * coap_pending_next_unused(struct coap_pending *pendings, size_t len)
Returns the next available pending struct, that can be used to track the retransmission status of a r...
int coap_handle_request(struct coap_packet *cpkt, struct coap_resource *resources, struct coap_option *options, uint8_t opt_num, struct sockaddr *addr, socklen_t addr_len)
When a request is received, call the appropriate methods of the matching resources.
int coap_append_descriptive_block_option(struct coap_packet *cpkt, struct coap_block_context *ctx)
Append BLOCK1 or BLOCK2 option to the packet.
int coap_packet_init(struct coap_packet *cpkt, uint8_t *data, uint16_t max_len, uint8_t ver, uint8_t type, uint8_t token_len, const uint8_t *token, uint8_t code, uint16_t id)
Creates a new CoAP Packet from input data.
int coap_remove_descriptive_block_option(struct coap_packet *cpkt)
Remove BLOCK1 or BLOCK2 option from the packet.
coap_content_format
Set of Content-Format option values for CoAP.
Definition: coap.h:199
struct coap_pending * coap_pending_received(const struct coap_packet *response, struct coap_pending *pendings, size_t len)
After a response is received, returns if there is any matching pending request exits.
struct coap_pending * coap_pending_next_to_expire(struct coap_pending *pendings, size_t len)
Returns the next pending about to expire, pending->timeout informs how many ms to next expiration.
int coap_pending_init(struct coap_pending *pending, const struct coap_packet *request, const struct sockaddr *addr, uint8_t retries)
Initialize a pending request with a request.
void(* coap_notify_t)(struct coap_resource *resource, struct coap_observer *observer)
Type of the callback being called when a resource's has observers to be informed when an update happe...
Definition: coap.h:236
bool coap_has_descriptive_block_option(struct coap_packet *cpkt)
Check if a descriptive block option is set in the packet.
int coap_packet_set_path(struct coap_packet *cpkt, const char *path)
Parses provided coap path (with/without query) or query and appends that as options to the cpkt.
#define COAP_MAKE_RESPONSE_CODE(class, det)
Utility macro to create a CoAP response code.
Definition: coap.h:124
int coap_packet_remove_option(struct coap_packet *cpkt, uint16_t code)
Remove an option from the packet.
void coap_reply_init(struct coap_reply *reply, const struct coap_packet *request)
Indicates that a reply is expected for request.
int coap_resource_notify(struct coap_resource *resource)
Indicates that this resource was updated and that the notify callback should be called for every regi...
int coap_packet_append_payload(struct coap_packet *cpkt, const uint8_t *payload, uint16_t payload_len)
Append payload to CoAP packet.
void coap_replies_clear(struct coap_reply *replies, size_t len)
Cancels all replies, so they become available again.
uint16_t coap_next_id(void)
Helper to generate message ids.
uint8_t coap_header_get_code(const struct coap_packet *cpkt)
Returns the code of the CoAP packet.
int coap_ack_init(struct coap_packet *cpkt, const struct coap_packet *req, uint8_t *data, uint16_t max_len, uint8_t code)
Create a new CoAP Acknowledgment message for given request.
uint8_t coap_header_get_type(const struct coap_packet *cpkt)
Returns the type of the CoAP packet.
int coap_find_options(const struct coap_packet *cpkt, uint16_t code, struct coap_option *options, uint16_t veclen)
Return the values associated with the option of value code.
int coap_append_size2_option(struct coap_packet *cpkt, struct coap_block_context *ctx)
Append SIZE2 option to the packet.
uint8_t coap_header_get_version(const struct coap_packet *cpkt)
Returns the version present in a CoAP packet.
static uint16_t coap_block_size_to_bytes(enum coap_block_size block_size)
Helper for converting the enumeration to the size expressed in bytes.
Definition: coap.h:617
@ COAP_RESPONSE_CODE_OK
2.00 - OK
Definition: coap.h:133
@ COAP_RESPONSE_CODE_INTERNAL_ERROR
5.00 - Internal Server Error
Definition: coap.h:176
@ COAP_RESPONSE_CODE_PRECONDITION_FAILED
4.12 - Precondition Failed
Definition: coap.h:165
@ COAP_RESPONSE_CODE_NOT_ALLOWED
4.05 - Method Not Allowed
Definition: coap.h:157
@ COAP_RESPONSE_CODE_CHANGED
2.04 - Changed
Definition: coap.h:141
@ COAP_RESPONSE_CODE_NOT_ACCEPTABLE
4.06 - Not Acceptable
Definition: coap.h:159
@ COAP_RESPONSE_CODE_UNPROCESSABLE_ENTITY
4.22 - Unprocessable Entity
Definition: coap.h:172
@ COAP_RESPONSE_CODE_PROXYING_NOT_SUPPORTED
5.05 - Proxying Not Supported
Definition: coap.h:186
@ COAP_RESPONSE_CODE_BAD_REQUEST
4.00 - Bad Request
Definition: coap.h:147
@ COAP_RESPONSE_CODE_INCOMPLETE
4.08 - Request Entity Incomplete
Definition: coap.h:161
@ COAP_RESPONSE_CODE_NOT_IMPLEMENTED
5.01 - Not Implemented
Definition: coap.h:178
@ COAP_RESPONSE_CODE_NOT_FOUND
4.04 - Not Found
Definition: coap.h:155
@ COAP_RESPONSE_CODE_BAD_GATEWAY
5.02 - Bad Gateway
Definition: coap.h:180
@ COAP_RESPONSE_CODE_BAD_OPTION
4.02 - Bad Option
Definition: coap.h:151
@ COAP_RESPONSE_CODE_REQUEST_TOO_LARGE
4.13 - Request Entity Too Large
Definition: coap.h:167
@ COAP_RESPONSE_CODE_TOO_MANY_REQUESTS
4.29 - Too Many Requests
Definition: coap.h:174
@ COAP_RESPONSE_CODE_CONFLICT
4.12 - Precondition Failed
Definition: coap.h:163
@ COAP_RESPONSE_CODE_DELETED
2.02 - Deleted
Definition: coap.h:137
@ COAP_RESPONSE_CODE_UNAUTHORIZED
4.01 - Unauthorized
Definition: coap.h:149
@ COAP_RESPONSE_CODE_CREATED
2.01 - Created
Definition: coap.h:135
@ COAP_RESPONSE_CODE_CONTENT
2.05 - Content
Definition: coap.h:143
@ COAP_RESPONSE_CODE_CONTINUE
2.31 - Continue
Definition: coap.h:145
@ COAP_RESPONSE_CODE_VALID
2.03 - Valid
Definition: coap.h:139
@ COAP_RESPONSE_CODE_UNSUPPORTED_CONTENT_FORMAT
4.15 - Unsupported Content-Format
Definition: coap.h:169
@ COAP_RESPONSE_CODE_GATEWAY_TIMEOUT
5.04 - Gateway Timeout
Definition: coap.h:184
@ COAP_RESPONSE_CODE_SERVICE_UNAVAILABLE
5.03 - Service Unavailable
Definition: coap.h:182
@ COAP_RESPONSE_CODE_FORBIDDEN
4.03 - Forbidden
Definition: coap.h:153
@ COAP_TYPE_RESET
Reset.
Definition: coap.h:115
@ COAP_TYPE_NON_CON
Non-confirmable message.
Definition: coap.h:102
@ COAP_TYPE_CON
Confirmable message.
Definition: coap.h:95
@ COAP_TYPE_ACK
Acknowledge.
Definition: coap.h:108
@ COAP_METHOD_GET
GET.
Definition: coap.h:72
@ COAP_METHOD_IPATCH
IPATCH.
Definition: coap.h:78
@ COAP_METHOD_PUT
PUT.
Definition: coap.h:74
@ COAP_METHOD_POST
POST.
Definition: coap.h:73
@ COAP_METHOD_PATCH
PATCH.
Definition: coap.h:77
@ COAP_METHOD_DELETE
DELETE.
Definition: coap.h:75
@ COAP_METHOD_FETCH
FETCH.
Definition: coap.h:76
@ COAP_BLOCK_128
128-byte block size
Definition: coap.h:603
@ COAP_BLOCK_32
32-byte block size
Definition: coap.h:601
@ COAP_BLOCK_1024
1024-byte block size
Definition: coap.h:606
@ COAP_BLOCK_64
64-byte block size
Definition: coap.h:602
@ COAP_BLOCK_16
16-byte block size
Definition: coap.h:600
@ COAP_BLOCK_256
256-byte block size
Definition: coap.h:604
@ COAP_BLOCK_512
512-byte block size
Definition: coap.h:605
@ COAP_OPTION_OBSERVE
Observe (RFC 7641)
Definition: coap.h:49
@ COAP_OPTION_IF_NONE_MATCH
If-None-Match.
Definition: coap.h:48
@ COAP_OPTION_ETAG
ETag.
Definition: coap.h:47
@ COAP_OPTION_SIZE2
Size2 (RFC 7959)
Definition: coap.h:60
@ COAP_OPTION_PROXY_SCHEME
Proxy-Scheme.
Definition: coap.h:62
@ COAP_OPTION_URI_PORT
Uri-Port.
Definition: coap.h:50
@ COAP_OPTION_URI_HOST
Uri-Host.
Definition: coap.h:46
@ COAP_OPTION_BLOCK2
Block2 (RFC 7959)
Definition: coap.h:58
@ COAP_OPTION_IF_MATCH
If-Match.
Definition: coap.h:45
@ COAP_OPTION_SIZE1
Size1.
Definition: coap.h:63
@ COAP_OPTION_BLOCK1
Block1 (RFC 7959)
Definition: coap.h:59
@ COAP_OPTION_URI_PATH
Uri-Path.
Definition: coap.h:52
@ COAP_OPTION_MAX_AGE
Max-Age.
Definition: coap.h:54
@ COAP_OPTION_CONTENT_FORMAT
Content-Format.
Definition: coap.h:53
@ COAP_OPTION_LOCATION_QUERY
Location-Query.
Definition: coap.h:57
@ COAP_OPTION_URI_QUERY
Uri-Query.
Definition: coap.h:55
@ COAP_OPTION_PROXY_URI
Proxy-Uri.
Definition: coap.h:61
@ COAP_OPTION_LOCATION_PATH
Location-Path.
Definition: coap.h:51
@ COAP_OPTION_ACCEPT
Accept.
Definition: coap.h:56
@ COAP_CONTENT_FORMAT_APP_JSON_PATCH_JSON
application/json-patch+json
Definition: coap.h:206
@ COAP_CONTENT_FORMAT_APP_LINK_FORMAT
application/link-format
Definition: coap.h:201
@ COAP_CONTENT_FORMAT_APP_MERGE_PATCH_JSON
application/merge-patch+json
Definition: coap.h:207
@ COAP_CONTENT_FORMAT_APP_EXI
application/exi
Definition: coap.h:204
@ COAP_CONTENT_FORMAT_APP_CBOR
application/cbor
Definition: coap.h:208
@ COAP_CONTENT_FORMAT_APP_OCTET_STREAM
application/octet-stream
Definition: coap.h:203
@ COAP_CONTENT_FORMAT_APP_JSON
application/json
Definition: coap.h:205
@ COAP_CONTENT_FORMAT_APP_XML
application/xml
Definition: coap.h:202
@ COAP_CONTENT_FORMAT_TEXT_PLAIN
text/plain;charset=utf-8
Definition: coap.h:200
size_t socklen_t
Length of a socket address.
Definition: net_ip.h:168
struct _slist sys_slist_t
Single-linked list structure.
Definition: slist.h:49
struct _snode sys_snode_t
Single-linked list node structure.
Definition: slist.h:39
IPv6 and IPv4 definitions.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
__INT64_TYPE__ int64_t
Definition: stdint.h:75
Represents the current state of a block-wise transaction.
Definition: coap.h:626
size_t total_size
Definition: coap.h:627
enum coap_block_size block_size
Definition: coap.h:629
size_t current
Definition: coap.h:628
Represents a remote device that is observing a local resource.
Definition: coap.h:258
sys_snode_t list
Definition: coap.h:259
uint8_t token[8]
Definition: coap.h:261
uint8_t tkl
Definition: coap.h:262
struct sockaddr addr
Definition: coap.h:260
Representation of a CoAP option.
Definition: coap.h:287
uint8_t len
Option length.
Definition: coap.h:293
uint16_t delta
Option delta.
Definition: coap.h:288
uint8_t value[12]
Option value.
Definition: coap.h:294
Representation of a CoAP Packet.
Definition: coap.h:268
uint16_t offset
CoAP lib maintains offset while adding data.
Definition: coap.h:270
uint16_t max_len
Max CoAP packet data length.
Definition: coap.h:271
uint8_t * data
User allocated buffer.
Definition: coap.h:269
uint16_t delta
Used for delta calculation in CoAP packet.
Definition: coap.h:274
uint8_t hdr_len
CoAP header length.
Definition: coap.h:272
uint16_t opt_len
Total options length (delta + len + value)
Definition: coap.h:273
Represents a request awaiting for an acknowledgment (ACK).
Definition: coap.h:313
uint8_t * data
User allocated buffer.
Definition: coap.h:318
uint16_t len
Length of the CoAP packet.
Definition: coap.h:319
uint8_t retries
Number of times the request has been sent.
Definition: coap.h:320
uint16_t id
Message id.
Definition: coap.h:317
int64_t t0
Time when the request was sent.
Definition: coap.h:315
uint32_t timeout
Timeout in ms.
Definition: coap.h:316
struct sockaddr addr
Remote address.
Definition: coap.h:314
Represents the handler for the reply of a request, it is also used when observing resources.
Definition: coap.h:327
uint8_t tkl
Definition: coap.h:333
uint8_t token[8]
Definition: coap.h:332
coap_reply_t reply
Definition: coap.h:328
uint16_t id
Definition: coap.h:331
void * user_data
Definition: coap.h:329
int age
Definition: coap.h:330
Description of CoAP resource.
Definition: coap.h:245
coap_method_t post
Definition: coap.h:247
void * user_data
Definition: coap.h:250
coap_method_t put
Definition: coap.h:247
coap_notify_t notify
Definition: coap.h:248
sys_slist_t observers
Definition: coap.h:251
coap_method_t fetch
Definition: coap.h:247
coap_method_t ipatch
Definition: coap.h:247
coap_method_t del
Definition: coap.h:247
coap_method_t patch
Definition: coap.h:247
const char *const * path
Definition: coap.h:249
int age
Definition: coap.h:252
coap_method_t get
Which function to be called for each CoAP method.
Definition: coap.h:247
Generic sockaddr struct.
Definition: net_ip.h:347