Zephyr Project API  3.1.0
A Scalable Open Source RTOS
lwm2m.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017 Linaro Limited
3 * Copyright (c) 2017-2019 Foundries.io
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
23#ifndef ZEPHYR_INCLUDE_NET_LWM2M_H_
24#define ZEPHYR_INCLUDE_NET_LWM2M_H_
25
26#include <zephyr/kernel.h>
27#include <zephyr/sys/mutex.h>
28#include <zephyr/net/coap.h>
30
38/* clang-format off */
39#define LWM2M_OBJECT_SECURITY_ID 0
40#define LWM2M_OBJECT_SERVER_ID 1
41#define LWM2M_OBJECT_ACCESS_CONTROL_ID 2
42#define LWM2M_OBJECT_DEVICE_ID 3
43#define LWM2M_OBJECT_CONNECTIVITY_MONITORING_ID 4
44#define LWM2M_OBJECT_FIRMWARE_ID 5
45#define LWM2M_OBJECT_LOCATION_ID 6
46#define LWM2M_OBJECT_CONNECTIVITY_STATISTICS_ID 7
47#define LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID 9
48#define LWM2M_OBJECT_PORTFOLIO_ID 16
49#define LWM2M_OBJECT_GATEWAY_ID 25
50/* clang-format on */
51
59/* clang-format off */
60#define IPSO_OBJECT_GENERIC_SENSOR_ID 3300
61#define IPSO_OBJECT_TEMP_SENSOR_ID 3303
62#define IPSO_OBJECT_HUMIDITY_SENSOR_ID 3304
63#define IPSO_OBJECT_LIGHT_CONTROL_ID 3311
64#define IPSO_OBJECT_ACCELEROMETER_ID 3313
65#define IPSO_OBJECT_CURRENT_SENSOR_ID 3317
66#define IPSO_OBJECT_PRESSURE_ID 3323
67#define IPSO_OBJECT_BUZZER_ID 3338
68#define IPSO_OBJECT_TIMER_ID 3340
69#define IPSO_OBJECT_ONOFF_SWITCH_ID 3342
70#define IPSO_OBJECT_PUSH_BUTTON_ID 3347
71#define UCIFI_OBJECT_BATTERY_ID 3411
72#define IPSO_OBJECT_FILLING_LEVEL_SENSOR_ID 3435
73/* clang-format on */
74
75typedef void (*lwm2m_socket_fault_cb_t)(int error);
76
82 uint8_t level; /* 0/1/2/3/4 (4 = resource instance) */
83};
84
93};
94
105typedef void (*lwm2m_observe_cb_t)(enum lwm2m_observe_event event, struct lwm2m_obj_path *path,
106 void *user_data);
107
112struct lwm2m_ctx {
115
117 struct coap_pending pendings[CONFIG_LWM2M_ENGINE_MAX_PENDING];
118 struct coap_reply replies[CONFIG_LWM2M_ENGINE_MAX_REPLIES];
120#if defined(CONFIG_LWM2M_QUEUE_MODE_ENABLED)
121 sys_slist_t queued_messages;
122#endif
124
131
132#if defined(CONFIG_LWM2M_DTLS_SUPPORT)
136 int tls_tag;
137
141 char *desthostname;
142 uint16_t desthostnamelen;
143 bool hostname_verify;
144
148 int (*load_credentials)(struct lwm2m_ctx *client_ctx);
149#endif
156
157#if defined(CONFIG_LWM2M_QUEUE_MODE_ENABLED)
162 bool connection_suspended;
163
168 bool buffer_client_messages;
169#endif
172
175
181
184
189
194
199 uint8_t validate_buf[CONFIG_LWM2M_ENGINE_VALIDATION_BUFFER_SIZE];
200};
201
202
222typedef void *(*lwm2m_engine_get_data_cb_t)(uint16_t obj_inst_id,
223 uint16_t res_id,
224 uint16_t res_inst_id,
225 size_t *data_len);
226
253typedef int (*lwm2m_engine_set_data_cb_t)(uint16_t obj_inst_id,
254 uint16_t res_id, uint16_t res_inst_id,
255 uint8_t *data, uint16_t data_len,
256 bool last_block, size_t total_size);
257
274typedef int (*lwm2m_engine_user_cb_t)(uint16_t obj_inst_id);
275
292typedef int (*lwm2m_engine_execute_cb_t)(uint16_t obj_inst_id,
293 uint8_t *args, uint16_t args_len);
294
299#define LWM2M_DEVICE_PWR_SRC_TYPE_DC_POWER 0
300#define LWM2M_DEVICE_PWR_SRC_TYPE_BAT_INT 1
301#define LWM2M_DEVICE_PWR_SRC_TYPE_BAT_EXT 2
302#define LWM2M_DEVICE_PWR_SRC_TYPE_UNUSED 3
303#define LWM2M_DEVICE_PWR_SRC_TYPE_PWR_OVER_ETH 4
304#define LWM2M_DEVICE_PWR_SRC_TYPE_USB 5
305#define LWM2M_DEVICE_PWR_SRC_TYPE_AC_POWER 6
306#define LWM2M_DEVICE_PWR_SRC_TYPE_SOLAR 7
307#define LWM2M_DEVICE_PWR_SRC_TYPE_MAX 8
308
314#define LWM2M_DEVICE_ERROR_NONE 0
315#define LWM2M_DEVICE_ERROR_LOW_POWER 1
316#define LWM2M_DEVICE_ERROR_EXT_POWER_SUPPLY_OFF 2
317#define LWM2M_DEVICE_ERROR_GPS_FAILURE 3
318#define LWM2M_DEVICE_ERROR_LOW_SIGNAL_STRENGTH 4
319#define LWM2M_DEVICE_ERROR_OUT_OF_MEMORY 5
320#define LWM2M_DEVICE_ERROR_SMS_FAILURE 6
321#define LWM2M_DEVICE_ERROR_NETWORK_FAILURE 7
322#define LWM2M_DEVICE_ERROR_PERIPHERAL_FAILURE 8
323
330#define LWM2M_DEVICE_BATTERY_STATUS_NORMAL 0
331#define LWM2M_DEVICE_BATTERY_STATUS_CHARGING 1
332#define LWM2M_DEVICE_BATTERY_STATUS_CHARGE_COMP 2
333#define LWM2M_DEVICE_BATTERY_STATUS_DAMAGED 3
334#define LWM2M_DEVICE_BATTERY_STATUS_LOW 4
335#define LWM2M_DEVICE_BATTERY_STATUS_NOT_INST 5
336#define LWM2M_DEVICE_BATTERY_STATUS_UNKNOWN 6
337
346
347
354#define STATE_IDLE 0
355#define STATE_DOWNLOADING 1
356#define STATE_DOWNLOADED 2
357#define STATE_UPDATING 3
358
365#define RESULT_DEFAULT 0
366#define RESULT_SUCCESS 1
367#define RESULT_NO_STORAGE 2
368#define RESULT_OUT_OF_MEM 3
369#define RESULT_CONNECTION_LOST 4
370#define RESULT_INTEGRITY_FAILED 5
371#define RESULT_UNSUP_FW 6
372#define RESULT_INVALID_URI 7
373#define RESULT_UPDATE_FAILED 8
374#define RESULT_UNSUP_PROTO 9
375
376#if defined(CONFIG_LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT)
385void lwm2m_firmware_set_write_cb(lwm2m_engine_set_data_cb_t cb);
386
392lwm2m_engine_set_data_cb_t lwm2m_firmware_get_write_cb(void);
393
403void lwm2m_firmware_set_write_cb_inst(uint16_t obj_inst_id, lwm2m_engine_set_data_cb_t cb);
404
411lwm2m_engine_set_data_cb_t lwm2m_firmware_get_write_cb_inst(uint16_t obj_inst_id);
412
413#if defined(CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT)
422void lwm2m_firmware_set_update_cb(lwm2m_engine_execute_cb_t cb);
423
429lwm2m_engine_execute_cb_t lwm2m_firmware_get_update_cb(void);
430
440void lwm2m_firmware_set_update_cb_inst(uint16_t obj_inst_id, lwm2m_engine_execute_cb_t cb);
441
448lwm2m_engine_execute_cb_t lwm2m_firmware_get_update_cb_inst(uint16_t obj_inst_id);
449#endif
450#endif
451
452
453#if defined(CONFIG_LWM2M_SWMGMT_OBJ_SUPPORT)
454
466int lwm2m_swmgmt_set_activate_cb(uint16_t obj_inst_id, lwm2m_engine_execute_cb_t cb);
467
479int lwm2m_swmgmt_set_deactivate_cb(uint16_t obj_inst_id, lwm2m_engine_execute_cb_t cb);
480
492int lwm2m_swmgmt_set_install_package_cb(uint16_t obj_inst_id, lwm2m_engine_execute_cb_t cb);
493
505int lwm2m_swmgmt_set_delete_package_cb(uint16_t obj_inst_id, lwm2m_engine_execute_cb_t cb);
506
518int lwm2m_swmgmt_set_read_package_version_cb(uint16_t obj_inst_id, lwm2m_engine_get_data_cb_t cb);
519
531int lwm2m_swmgmt_set_write_package_cb(uint16_t obj_inst_id, lwm2m_engine_set_data_cb_t cb);
532
543int lwm2m_swmgmt_install_completed(uint16_t obj_inst_id, int error_code);
544
545#endif
546
550#define LWM2M_OBJLNK_MAX_ID USHRT_MAX
551
558};
559
574int lwm2m_engine_update_observer_min_period(struct lwm2m_ctx *client_ctx, const char *pathstr,
575 uint32_t period_s);
576
591int lwm2m_engine_update_observer_max_period(struct lwm2m_ctx *client_ctx, const char *pathstr,
592 uint32_t period_s);
593
605int lwm2m_engine_create_obj_inst(const char *pathstr);
606
616int lwm2m_engine_delete_obj_inst(const char *pathstr);
617
627int lwm2m_engine_set_opaque(const char *pathstr, char *data_ptr, uint16_t data_len);
628
637int lwm2m_engine_set_string(const char *pathstr, char *data_ptr);
638
647int lwm2m_engine_set_u8(const char *pathstr, uint8_t value);
648
657int lwm2m_engine_set_u16(const char *pathstr, uint16_t value);
658
667int lwm2m_engine_set_u32(const char *pathstr, uint32_t value);
668
677int lwm2m_engine_set_u64(const char *pathstr, uint64_t value);
678
687int lwm2m_engine_set_s8(const char *pathstr, int8_t value);
688
697int lwm2m_engine_set_s16(const char *pathstr, int16_t value);
698
707int lwm2m_engine_set_s32(const char *pathstr, int32_t value);
708
717int lwm2m_engine_set_s64(const char *pathstr, int64_t value);
718
727int lwm2m_engine_set_bool(const char *pathstr, bool value);
728
737int lwm2m_engine_set_float(const char *pathstr, double *value);
738
747int lwm2m_engine_set_objlnk(const char *pathstr, struct lwm2m_objlnk *value);
748
758int lwm2m_engine_get_opaque(const char *pathstr, void *buf, uint16_t buflen);
759
769int lwm2m_engine_get_string(const char *pathstr, void *str, uint16_t strlen);
770
779int lwm2m_engine_get_u8(const char *pathstr, uint8_t *value);
780
789int lwm2m_engine_get_u16(const char *pathstr, uint16_t *value);
790
799int lwm2m_engine_get_u32(const char *pathstr, uint32_t *value);
800
809int lwm2m_engine_get_u64(const char *pathstr, uint64_t *value);
810
819int lwm2m_engine_get_s8(const char *pathstr, int8_t *value);
820
829int lwm2m_engine_get_s16(const char *pathstr, int16_t *value);
830
839int lwm2m_engine_get_s32(const char *pathstr, int32_t *value);
840
849int lwm2m_engine_get_s64(const char *pathstr, int64_t *value);
850
859int lwm2m_engine_get_bool(const char *pathstr, bool *value);
860
869int lwm2m_engine_get_float(const char *pathstr, double *buf);
870
879int lwm2m_engine_get_objlnk(const char *pathstr, struct lwm2m_objlnk *buf);
880
881
894
909
932
949
962
975
988
992#define LWM2M_RES_DATA_READ_ONLY 0
993
997#define LWM2M_RES_DATA_FLAG_RO BIT(LWM2M_RES_DATA_READ_ONLY)
998
1002#define LWM2M_HAS_RES_FLAG(res, f) ((res->data_flags & f) == f)
1003
1017int lwm2m_engine_set_res_data(const char *pathstr, void *data_ptr, uint16_t data_len,
1018 uint8_t data_flags);
1019
1033int lwm2m_engine_get_res_data(const char *pathstr, void **data_ptr,
1034 uint16_t *data_len, uint8_t *data_flags);
1035
1047int lwm2m_engine_create_res_inst(const char *pathstr);
1048
1058int lwm2m_engine_delete_res_inst(const char *pathstr);
1059
1074
1086
1098bool lwm2m_engine_path_is_observed(const char *pathstr);
1099
1111int lwm2m_engine_start(struct lwm2m_ctx *client_ctx);
1112
1124void lwm2m_acknowledge(struct lwm2m_ctx *client_ctx);
1125
1145};
1146
1147/*
1148 * LwM2M RD client flags, used to configure LwM2M session.
1149 */
1150
1154#define LWM2M_RD_CLIENT_FLAG_BOOTSTRAP BIT(0)
1155
1162typedef void (*lwm2m_ctx_event_cb_t)(struct lwm2m_ctx *ctx,
1163 enum lwm2m_rd_client_event event);
1164
1186int lwm2m_rd_client_start(struct lwm2m_ctx *client_ctx, const char *ep_name,
1189
1205int lwm2m_rd_client_stop(struct lwm2m_ctx *client_ctx,
1206 lwm2m_ctx_event_cb_t event_cb, bool deregister);
1207
1212
1216#define LWM2M_MAX_PATH_STR_LEN sizeof("65535/65535/65535/65535")
1217
1226char *lwm2m_path_log_strdup(char *buf, struct lwm2m_obj_path *path);
1227
1239int lwm2m_engine_send(struct lwm2m_ctx *ctx, char const *path_list[], uint8_t path_list_size,
1240 bool confirmation_request);
1241
1249
1250#endif /* ZEPHYR_INCLUDE_NET_LWM2M_H_ */
CoAP implementation for Zephyr.
int lwm2m_engine_set_u8(const char *pathstr, uint8_t value)
Set resource (instance) value (u8)
int(* lwm2m_engine_set_data_cb_t)(uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, uint8_t *data, uint16_t data_len, bool last_block, size_t total_size)
Asynchronous callback when data has been set to a resource buffer.
Definition: lwm2m.h:253
bool lwm2m_engine_path_is_observed(const char *pathstr)
Check whether a path is observed.
int lwm2m_engine_get_float(const char *pathstr, double *buf)
Get resource (instance) value (double)
int lwm2m_engine_set_s64(const char *pathstr, int64_t value)
Set resource (instance) value (s64)
int lwm2m_engine_register_pre_write_callback(const char *pathstr, lwm2m_engine_get_data_cb_t cb)
Set resource (instance) pre-write callback.
int lwm2m_engine_update_service_period(k_work_handler_t service, uint32_t period_ms)
Update the period of a given service.
int lwm2m_engine_set_s16(const char *pathstr, int16_t value)
Set resource (instance) value (s16)
int lwm2m_engine_register_read_callback(const char *pathstr, lwm2m_engine_get_data_cb_t cb)
Set resource (instance) read callback.
char * lwm2m_path_log_strdup(char *buf, struct lwm2m_obj_path *path)
Helper function to print path objects' contents to log.
int lwm2m_engine_set_opaque(const char *pathstr, char *data_ptr, uint16_t data_len)
Set resource (instance) value (opaque buffer)
int lwm2m_engine_set_u32(const char *pathstr, uint32_t value)
Set resource (instance) value (u32)
int lwm2m_engine_create_obj_inst(const char *pathstr)
Create an LwM2M object instance.
int lwm2m_engine_get_opaque(const char *pathstr, void *buf, uint16_t buflen)
Get resource (instance) value (opaque buffer)
int lwm2m_engine_delete_obj_inst(const char *pathstr)
Delete an LwM2M object instance.
void(* lwm2m_ctx_event_cb_t)(struct lwm2m_ctx *ctx, enum lwm2m_rd_client_event event)
Asynchronous RD client event callback.
Definition: lwm2m.h:1162
int lwm2m_engine_get_s32(const char *pathstr, int32_t *value)
Get resource (instance) value (s32)
int lwm2m_engine_update_observer_min_period(struct lwm2m_ctx *client_ctx, const char *pathstr, uint32_t period_s)
Change an observer's pmin value.
int lwm2m_engine_set_s32(const char *pathstr, int32_t value)
Set resource (instance) value (s32)
int lwm2m_engine_set_u16(const char *pathstr, uint16_t value)
Set resource (instance) value (u16)
int lwm2m_engine_get_u8(const char *pathstr, uint8_t *value)
Get resource (instance) value (u8)
int lwm2m_engine_send(struct lwm2m_ctx *ctx, char const *path_list[], uint8_t path_list_size, bool confirmation_request)
 LwM2M SEND operation to given path list
int lwm2m_engine_register_post_write_callback(const char *pathstr, lwm2m_engine_set_data_cb_t cb)
Set resource (instance) post-write callback.
void *(* lwm2m_engine_get_data_cb_t)(uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, size_t *data_len)
Asynchronous callback to get a resource buffer and length.
Definition: lwm2m.h:222
int lwm2m_engine_get_bool(const char *pathstr, bool *value)
Get resource (instance) value (bool)
int lwm2m_engine_get_res_data(const char *pathstr, void **data_ptr, uint16_t *data_len, uint8_t *data_flags)
Get data buffer for a resource.
int lwm2m_engine_create_res_inst(const char *pathstr)
Create a resource instance.
int lwm2m_engine_get_u16(const char *pathstr, uint16_t *value)
Get resource (instance) value (u16)
int lwm2m_engine_register_delete_callback(uint16_t obj_id, lwm2m_engine_user_cb_t cb)
Set object instance delete event callback.
int lwm2m_engine_get_s8(const char *pathstr, int8_t *value)
Get resource (instance) value (s8)
int lwm2m_engine_get_s64(const char *pathstr, int64_t *value)
Get resource (instance) value (s64)
int lwm2m_engine_set_u64(const char *pathstr, uint64_t value)
Set resource (instance) value (u64)
struct lwm2m_ctx * lwm2m_rd_client_ctx(void)
&#160;Returns LwM2M&#160;client context
int lwm2m_engine_set_bool(const char *pathstr, bool value)
Set resource (instance) value (bool)
int lwm2m_engine_get_u64(const char *pathstr, uint64_t *value)
Get resource (instance) value (u64)
void lwm2m_acknowledge(struct lwm2m_ctx *client_ctx)
Acknowledge the currently processed request with an empty ACK.
int lwm2m_engine_get_s16(const char *pathstr, int16_t *value)
Get resource (instance) value (s16)
int lwm2m_engine_set_objlnk(const char *pathstr, struct lwm2m_objlnk *value)
Set resource (instance) value (ObjLnk)
int lwm2m_rd_client_start(struct lwm2m_ctx *client_ctx, const char *ep_name, uint32_t flags, lwm2m_ctx_event_cb_t event_cb, lwm2m_observe_cb_t observe_cb)
Start the LwM2M RD (Registration / Discovery) Client.
int lwm2m_engine_start(struct lwm2m_ctx *client_ctx)
Start the LwM2M engine.
int lwm2m_engine_register_create_callback(uint16_t obj_id, lwm2m_engine_user_cb_t cb)
Set object instance create event callback.
int lwm2m_engine_set_float(const char *pathstr, double *value)
Set resource (instance) value (double)
int lwm2m_update_device_service_period(uint32_t period_ms)
Update the period of the device service.
void lwm2m_rd_client_update(void)
Trigger a Registration Update of the LwM2M RD Client.
int(* lwm2m_engine_user_cb_t)(uint16_t obj_inst_id)
Asynchronous event notification callback.
Definition: lwm2m.h:274
int lwm2m_engine_set_res_data(const char *pathstr, void *data_ptr, uint16_t data_len, uint8_t data_flags)
Set data buffer for a resource.
int lwm2m_device_add_err(uint8_t error_code)
Register a new error code with LwM2M Device object.
int lwm2m_engine_delete_res_inst(const char *pathstr)
Delete a resource instance.
int lwm2m_engine_register_validate_callback(const char *pathstr, lwm2m_engine_set_data_cb_t cb)
Set resource (instance) validation callback.
lwm2m_observe_event
Observe callback events.
Definition: lwm2m.h:88
lwm2m_rd_client_event
LwM2M RD client events.
Definition: lwm2m.h:1132
int lwm2m_engine_update_observer_max_period(struct lwm2m_ctx *client_ctx, const char *pathstr, uint32_t period_s)
Change an observer's pmax value.
int lwm2m_engine_set_string(const char *pathstr, char *data_ptr)
Set resource (instance) value (string)
int lwm2m_engine_get_string(const char *pathstr, void *str, uint16_t strlen)
Get resource (instance) value (string)
int lwm2m_engine_register_exec_callback(const char *pathstr, lwm2m_engine_execute_cb_t cb)
Set resource execute event callback.
void(* lwm2m_observe_cb_t)(enum lwm2m_observe_event event, struct lwm2m_obj_path *path, void *user_data)
Observe callback indicating observer adds and deletes, and notification ACKs and timeouts.
Definition: lwm2m.h:105
int lwm2m_engine_set_s8(const char *pathstr, int8_t value)
Set resource (instance) value (s8)
void(* lwm2m_socket_fault_cb_t)(int error)
Definition: lwm2m.h:75
int(* lwm2m_engine_execute_cb_t)(uint16_t obj_inst_id, uint8_t *args, uint16_t args_len)
Asynchronous execute notification callback.
Definition: lwm2m.h:292
int lwm2m_engine_get_objlnk(const char *pathstr, struct lwm2m_objlnk *buf)
Get resource (instance) value (ObjLnk)
int lwm2m_rd_client_stop(struct lwm2m_ctx *client_ctx, lwm2m_ctx_event_cb_t event_cb, bool deregister)
Stop the LwM2M RD (De-register) Client.
int lwm2m_engine_get_u32(const char *pathstr, uint32_t *value)
Get resource (instance) value (u32)
@ LWM2M_OBSERVE_EVENT_OBSERVER_ADDED
Definition: lwm2m.h:89
@ LWM2M_OBSERVE_EVENT_NOTIFY_TIMEOUT
Definition: lwm2m.h:92
@ LWM2M_OBSERVE_EVENT_NOTIFY_ACK
Definition: lwm2m.h:91
@ LWM2M_OBSERVE_EVENT_OBSERVER_REMOVED
Definition: lwm2m.h:90
@ LWM2M_RD_CLIENT_EVENT_REG_UPDATE_FAILURE
Definition: lwm2m.h:1139
@ LWM2M_RD_CLIENT_EVENT_DEREGISTER_FAILURE
Definition: lwm2m.h:1141
@ LWM2M_RD_CLIENT_EVENT_QUEUE_MODE_RX_OFF
Definition: lwm2m.h:1143
@ LWM2M_RD_CLIENT_EVENT_BOOTSTRAP_TRANSFER_COMPLETE
Definition: lwm2m.h:1136
@ LWM2M_RD_CLIENT_EVENT_REGISTRATION_COMPLETE
Definition: lwm2m.h:1138
@ LWM2M_RD_CLIENT_EVENT_REG_UPDATE_COMPLETE
Definition: lwm2m.h:1140
@ LWM2M_RD_CLIENT_EVENT_BOOTSTRAP_REG_FAILURE
Definition: lwm2m.h:1134
@ LWM2M_RD_CLIENT_EVENT_BOOTSTRAP_REG_COMPLETE
Definition: lwm2m.h:1135
@ LWM2M_RD_CLIENT_EVENT_DISCONNECT
Definition: lwm2m.h:1142
@ LWM2M_RD_CLIENT_EVENT_NONE
Definition: lwm2m.h:1133
@ LWM2M_RD_CLIENT_EVENT_REGISTRATION_FAILURE
Definition: lwm2m.h:1137
@ LWM2M_RD_CLIENT_EVENT_NETWORK_ERROR
Definition: lwm2m.h:1144
void(* k_work_handler_t)(struct k_work *work)
The signature for a work item handler function.
Definition: kernel.h:3050
flags
Definition: http_parser.h:131
Public kernel APIs.
struct _slist sys_slist_t
Definition: slist.h:40
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__INT32_TYPE__ int32_t
Definition: stdint.h:74
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
__INT64_TYPE__ int64_t
Definition: stdint.h:75
__INT8_TYPE__ int8_t
Definition: stdint.h:72
__INT16_TYPE__ int16_t
Definition: stdint.h:73
size_t strlen(const char *s)
Represents a request awaiting for an acknowledgment (ACK).
Definition: coap.h:273
Represents the handler for the reply of a request, it is also used when observing resources.
Definition: coap.h:287
LwM2M context structure to maintain information for a single LwM2M connection.
Definition: lwm2m.h:112
struct coap_reply replies[CONFIG_LWM2M_ENGINE_MAX_REPLIES]
Definition: lwm2m.h:118
lwm2m_socket_fault_cb_t fault_cb
Definition: lwm2m.h:188
sys_slist_t observer
Definition: lwm2m.h:123
lwm2m_observe_cb_t observe_cb
Definition: lwm2m.h:193
struct sockaddr remote_addr
Definition: lwm2m.h:114
uint8_t validate_buf[CONFIG_LWM2M_ENGINE_VALIDATION_BUFFER_SIZE]
Definition: lwm2m.h:199
struct coap_pending pendings[CONFIG_LWM2M_ENGINE_MAX_PENDING]
Definition: lwm2m.h:117
int srv_obj_inst
Definition: lwm2m.h:174
void * processed_req
Definition: lwm2m.h:130
bool bootstrap_mode
Definition: lwm2m.h:180
int sec_obj_inst
Definition: lwm2m.h:171
bool use_dtls
Definition: lwm2m.h:155
sys_slist_t pending_sends
Definition: lwm2m.h:119
int sock_fd
Definition: lwm2m.h:183
Definition: lwm2m.h:77
uint16_t obj_inst_id
Definition: lwm2m.h:79
uint16_t res_inst_id
Definition: lwm2m.h:81
uint8_t level
Definition: lwm2m.h:82
uint16_t res_id
Definition: lwm2m.h:80
uint16_t obj_id
Definition: lwm2m.h:78
LWM2M ObjLnk resource type structure.
Definition: lwm2m.h:555
uint16_t obj_id
Definition: lwm2m.h:556
uint16_t obj_inst
Definition: lwm2m.h:557
Definition: net_ip.h:341
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
static const intptr_t user_data[5]
Definition: main.c:590