anjay
core.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017-2024 AVSystem <avsystem@avsystem.com>
3  * AVSystem Anjay LwM2M SDK
4  * All rights reserved.
5  *
6  * Licensed under the AVSystem-5-clause License.
7  * See the attached LICENSE file for details.
8  */
9 
10 #ifndef ANJAY_INCLUDE_ANJAY_CORE_H
11 #define ANJAY_INCLUDE_ANJAY_CORE_H
12 
13 #include <stdint.h>
14 
15 #include <avsystem/coap/udp.h>
16 
17 #include <avsystem/commons/avs_list.h>
18 #include <avsystem/commons/avs_net.h>
19 #include <avsystem/commons/avs_prng.h>
20 #include <avsystem/commons/avs_sched.h>
21 #include <avsystem/commons/avs_stream.h>
22 #include <avsystem/commons/avs_time.h>
23 
24 #include <anjay/anjay_config.h>
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
31 typedef uint16_t anjay_ssid_t;
32 
36 #define ANJAY_SSID_ANY 0
37 
42 #define ANJAY_SSID_BOOTSTRAP UINT16_MAX
43 
45 typedef struct anjay_struct anjay_t;
46 
47 #ifdef ANJAY_WITH_SMS
49 typedef struct anjay_smsdrv_struct anjay_smsdrv_t;
50 #endif // ANJAY_WITH_SMS
51 
52 #ifdef ANJAY_WITH_NIDD
55 #endif // ANJAY_WITH_NIDD
56 
60 // clang-format off
61 #define ANJAY_COAP_DEFAULT_UDP_TX_PARAMS \
62  { \
63  /* .ack_timeout = */ { 2, 0 }, \
64  /* .ack_random_factor = */ 1.5, \
65  /* .max_retransmit = */ 4, \
66  /* .nstart = */ 1 \
67  }
68 // clang-format on
69 
75 // clang-format off
76 #define ANJAY_DTLS_DEFAULT_UDP_HS_TX_PARAMS \
77  { \
78  /* .min = */ { 1, 0 }, \
79  /* .max = */ { 60, 0 } \
80  }
81 // clang-format on
82 
83 #ifdef ANJAY_WITH_SMS
90 // clang-format off
91 #define ANJAY_COAP_DEFAULT_SMS_TX_PARAMS \
92  { \
93  /* .ack_timeout = */ { 62, 0 }, \
94  /* .ack_random_factor = */ 1.5, \
95  /* .max_retransmit = */ 0, \
96  /* .nstart = */ 1 \
97  }
98 // clang-format on
99 #endif // ANJAY_WITH_SMS
100 
101 #ifdef ANJAY_WITH_NIDD
111 // clang-format off
112 #define ANJAY_COAP_DEFAULT_NIDD_TX_PARAMS \
113  { \
114  /* .ack_timeout = */ { 60, 0 }, \
115  /* .ack_random_factor = */ 1.5, \
116  /* .max_retransmit = */ 0, \
117  /* .nstart = */ 1 \
118  }
119 // clang-format on
120 #endif // ANJAY_WITH_NIDD
121 
122 #ifdef ANJAY_WITH_LWM2M11
123 typedef enum {
137 
138 typedef struct {
143 
150 #endif // ANJAY_WITH_LWM2M11
151 
152 #ifdef ANJAY_WITH_EST
153 typedef struct {
158  bool enable;
159 
188 
215  avs_time_duration_t max_margin;
217 
218 # ifdef ANJAY_WITH_LWM2M11
219 typedef enum {
227 
237 
244 
251 
257 # endif // ANJAY_WITH_LWM2M11
258 
259 # ifdef ANJAY_WITH_EST_ENGINE_SUPPORT
290  void *arg, const void *x509_der_data, size_t x509_der_data_size);
291 # endif // ANJAY_WITH_EST_ENGINE_SUPPORT
292 #endif // ANJAY_WITH_EST
293 
294 typedef struct anjay_configuration {
302  const char *endpoint_name;
303 
309  uint16_t udp_listen_port;
310 
314  avs_net_ssl_version_t dtls_version;
315 
322 
331 
341 
349  avs_net_socket_configuration_t socket_config;
350 
361  const avs_coap_udp_tx_params_t *udp_tx_params;
362 
397  const avs_net_dtls_handshake_timeouts_t *udp_dtls_hs_tx_params;
398 
404 
421 
437 
448 
454 
469 
478 
489  avs_net_socket_tls_ciphersuites_t default_tls_ciphersuites;
490 
501  avs_crypto_prng_ctx_t *prng_ctx;
502 
508  avs_ssl_additional_configuration_clb_t *additional_tls_config_clb;
509 
510 #if defined(WITH_AVS_COAP_TCP) \
511  && (defined(ANJAY_WITH_LWM2M11) || defined(ANJAY_WITH_COAP_DOWNLOAD))
519 
527  avs_time_duration_t coap_tcp_request_timeout;
528 #endif // defined(WITH_AVS_COAP_TCP) && (defined(ANJAY_WITH_LWM2M11) ||
529  // defined(ANJAY_WITH_COAP_DOWNLOAD))
530 
531 #ifdef ANJAY_WITH_SMS
542  const avs_coap_udp_tx_params_t *sms_tx_params;
543 #endif // ANJAY_WITH_SMS
544 
545 #ifdef ANJAY_WITH_NIDD
556  const avs_coap_udp_tx_params_t *nidd_tx_params;
557 #endif // ANJAY_WITH_NIDD
558 
559 #ifdef ANJAY_WITH_SMS
565 #endif // ANJAY_WITH_SMS
566 
567 #ifdef ANJAY_WITH_NIDD
573 #endif // ANJAY_WITH_NIDD
574 
575 #ifdef ANJAY_WITH_SMS
589  const char *local_msisdn;
590 
601 #endif // ANJAY_WITH_SMS
602 
603 #ifdef ANJAY_WITH_LWM2M11
623 
643 
658  avs_crypto_certificate_chain_info_t trust_store_certs;
659 
674  avs_crypto_cert_revocation_list_info_t trust_store_crls;
675 
688 #endif // ANJAY_WITH_LWM2M11
689 
690 #ifdef ANJAY_WITH_EST
703 
704 # ifdef ANJAY_WITH_LWM2M11
710 # endif // ANJAY_WITH_LWM2M11
711 
712 # ifdef ANJAY_WITH_EST_ENGINE_SUPPORT
720 
728 
737 
746 # endif // ANJAY_WITH_EST_ENGINE_SUPPORT
747 #endif // ANJAY_WITH_EST
749 
753 const char *anjay_get_version(void);
754 
764 
779 void anjay_delete(anjay_t *anjay);
780 
781 #ifdef ANJAY_WITH_CORE_PERSISTENCE
825  avs_stream_t *in_stream);
826 
854  avs_stream_t *out_stream);
855 
856 #endif // ANJAY_WITH_CORE_PERSISTENCE
857 
904 AVS_LIST(avs_net_socket_t *const) anjay_get_sockets(anjay_t *anjay);
905 
906 typedef enum {
913 
918 typedef struct {
924  avs_net_socket_t *socket;
925 
933 
945 
960 
988 
1008 int anjay_serve(anjay_t *anjay, avs_net_socket_t *ready_socket);
1009 
1011 typedef uint16_t anjay_oid_t;
1012 
1014 typedef uint16_t anjay_iid_t;
1015 
1017 typedef uint16_t anjay_rid_t;
1018 
1020 typedef uint16_t anjay_riid_t;
1021 
1026 #define ANJAY_ID_INVALID UINT16_MAX
1027 
1030 #define ANJAY_COAP_STATUS(Maj, Min) ((uint8_t) ((Maj << 5) | (Min & 0x1F)))
1031 
1037 #define ANJAY_ERR_BAD_REQUEST (-(int) ANJAY_COAP_STATUS(4, 0))
1042 #define ANJAY_ERR_UNAUTHORIZED (-(int) ANJAY_COAP_STATUS(4, 1))
1047 #define ANJAY_ERR_BAD_OPTION (-(int) ANJAY_COAP_STATUS(4, 2))
1048 #define ANJAY_ERR_FORBIDDEN (-(int) ANJAY_COAP_STATUS(4, 3))
1050 #define ANJAY_ERR_NOT_FOUND (-(int) ANJAY_COAP_STATUS(4, 4))
1055 #define ANJAY_ERR_METHOD_NOT_ALLOWED (-(int) ANJAY_COAP_STATUS(4, 5))
1060 #define ANJAY_ERR_NOT_ACCEPTABLE (-(int) ANJAY_COAP_STATUS(4, 6))
1065 #define ANJAY_ERR_REQUEST_ENTITY_INCOMPLETE (-(int) ANJAY_COAP_STATUS(4, 8))
1070 #define ANJAY_ERR_UNSUPPORTED_CONTENT_FORMAT (-(int) ANJAY_COAP_STATUS(4, 15))
1072 #define ANJAY_ERR_INTERNAL (-(int) ANJAY_COAP_STATUS(5, 0))
1074 #define ANJAY_ERR_NOT_IMPLEMENTED (-(int) ANJAY_COAP_STATUS(5, 1))
1079 #define ANJAY_ERR_SERVICE_UNAVAILABLE (-(int) ANJAY_COAP_STATUS(5, 3))
1097 avs_sched_t *anjay_get_scheduler(anjay_t *anjay);
1098 
1110 int anjay_sched_time_to_next(anjay_t *anjay, avs_time_duration_t *out_delay);
1111 
1125 int anjay_sched_time_to_next_ms(anjay_t *anjay, int *out_delay_ms);
1126 
1143 
1151 
1152 #ifdef ANJAY_WITH_EVENT_LOOP
1214 int anjay_event_loop_run(anjay_t *anjay, avs_time_duration_t max_wait_time);
1215 
1237  avs_time_duration_t max_wait_time);
1238 
1274 
1304 int anjay_serve_any(anjay_t *anjay, avs_time_duration_t max_wait_time);
1305 #endif // ANJAY_WITH_EVENT_LOOP
1306 
1339 
1359 
1360 #ifdef ANJAY_WITH_LWM2M11
1374 #endif // ANJAY_WITH_LWM2M11
1375 
1408 
1443  anjay_ssid_t ssid,
1444  avs_time_duration_t timeout);
1445 
1457 
1478 
1485 typedef struct {
1486  bool udp : 1;
1487  bool tcp : 1;
1488 #ifdef ANJAY_WITH_SMS
1489  bool sms : 1;
1490 #endif // ANJAY_WITH_SMS
1491 #ifdef ANJAY_WITH_NIDD
1492  bool nidd : 1;
1493 #endif // ANJAY_WITH_NIDD
1495 
1500 
1509 
1515 
1521 
1522 #ifdef ANJAY_WITH_SMS
1528 #endif // ANJAY_WITH_SMS
1529 
1530 #ifdef ANJAY_WITH_NIDD
1536 #endif // ANJAY_WITH_NIDD
1537 
1548  anjay_transport_set_t transport_set);
1549 
1577  anjay_transport_set_t transport_set);
1578 
1598  anjay_transport_set_t transport_set);
1599 
1615  anjay_transport_set_t transport_set);
1616 
1639  anjay_transport_set_t transport_set);
1640 
1657 
1658 #ifdef ANJAY_WITH_LWM2M11
1659 typedef enum {
1669 
1676 
1685 
1696 
1732  anjay_queue_mode_preference_t preference);
1733 #endif // ANJAY_WITH_LWM2M11
1734 
1735 typedef struct {
1739  avs_net_security_info_t security_info;
1740 
1745  const avs_net_socket_dane_tlsa_record_t *dane_tlsa_record;
1746 
1754  avs_net_socket_tls_ciphersuites_t tls_ciphersuites;
1755 
1756  /*
1757  * Server Name Indicator to use for authenticating with the peer during
1758  * secure TLS connection. The value is passed to the underlying TLS library
1759  * that need to take this variable into account for it make any effect. This
1760  * field is optional and can be left zero-initialized. If not set the
1761  * integration layer should use the Server URI instead.
1762  */
1765 
1806  anjay_security_config_t *out_config,
1807  const char *uri);
1808 
1834 
1835 #if defined(ANJAY_WITH_EST) && defined(AVS_COMMONS_WITH_AVS_PERSISTENCE)
1848 avs_error_t anjay_est_state_persist(anjay_t *anjay, avs_stream_t *out_stream);
1849 
1868 avs_error_t anjay_est_state_restore(anjay_t *anjay, avs_stream_t *out_stream);
1869 
1878 #endif // defined(ANJAY_WITH_EST) && defined(AVS_COMMONS_WITH_AVS_PERSISTENCE)
1879 
1886 
1887 typedef enum {
1905 
1934  anjay_t *anjay,
1935  anjay_ssid_t ssid,
1937 
1965 static inline avs_time_real_t
1967  return anjay_registration_expiration_time_with_status(anjay, ssid, NULL);
1968 }
1969 
2008  anjay_ssid_t ssid);
2009 
2044  anjay_t *anjay, anjay_transport_set_t transport_set);
2045 
2087  anjay_ssid_t ssid);
2088 
2119  anjay_ssid_t ssid);
2120 
2146  anjay_t *anjay, anjay_transport_set_t transport_set);
2147 
2173  anjay_t *anjay, anjay_transport_set_t transport_set);
2174 
2198 
2224  anjay_t *anjay, anjay_transport_set_t transport_set);
2225 
2239 avs_error_t
2241  anjay_transport_set_t transport_set,
2242  const avs_coap_udp_tx_params_t *tx_params);
2243 
2257 avs_error_t
2259  anjay_transport_set_t transport_set,
2260  avs_time_duration_t exchange_timeout);
2261 
2272  anjay_t *anjay,
2273  avs_net_dtls_handshake_timeouts_t dtls_handshake_timeouts);
2274 
2275 #ifdef ANJAY_WITH_COMMUNICATION_TIMESTAMP_API
2297  anjay_ssid_t ssid,
2298  avs_time_real_t *out_time);
2299 
2330  anjay_ssid_t ssid,
2331  avs_time_real_t *out_time);
2353  anjay_ssid_t ssid,
2354  avs_time_real_t *out_time);
2355 #endif // ANJAY_WITH_COMMUNICATION_TIMESTAMP_API
2356 
2357 #ifdef ANJAY_WITH_SMS
2358 # ifdef ANJAY_WITH_LWM2M11
2373  anjay_ssid_t ssid,
2374  bool *out_sms_trigger);
2375 # endif // ANJAY_WITH_LWM2M11
2376 
2390  const char *server_msisdn,
2391  anjay_ssid_t *out_ssid);
2392 #endif // ANJAY_WITH_SMS
2393 
2394 #ifdef __cplusplus
2395 } /* extern "C" */
2396 #endif
2397 
2398 #endif /*ANJAY_INCLUDE_ANJAY_CORE_H*/
anjay_registration_expiration_status_t
Definition: core.h:1887
@ ANJAY_REGISTRATION_EXPIRATION_STATUS_VALID
Definition: core.h:1893
@ ANJAY_REGISTRATION_EXPIRATION_STATUS_INFINITE_LIFETIME
Definition: core.h:1903
@ ANJAY_REGISTRATION_EXPIRATION_STATUS_EXPIRED
Definition: core.h:1898
static avs_time_real_t anjay_registration_expiration_time(anjay_t *anjay, anjay_ssid_t ssid)
Definition: core.h:1966
bool anjay_est_state_is_ready_for_persistence(anjay_t *anjay)
const anjay_transport_set_t ANJAY_TRANSPORT_SET_NIDD
int anjay_set_queue_mode_preference(anjay_t *anjay, anjay_queue_mode_preference_t preference)
avs_error_t anjay_update_coap_exchange_timeout(anjay_t *anjay, anjay_transport_set_t transport_set, avs_time_duration_t exchange_timeout)
const anjay_transport_set_t ANJAY_TRANSPORT_SET_SMS
anjay_est_cacerts_policy_t
Definition: core.h:219
@ ANJAY_EST_CACERTS_FOR_EST_SECURITY_AND_BOOTSTRAP
Definition: core.h:226
@ ANJAY_EST_CACERTS_IF_EST_CONFIGURED
Definition: core.h:243
@ ANJAY_EST_CACERTS_DISABLED
Definition: core.h:255
@ ANJAY_EST_CACERTS_ALWAYS
Definition: core.h:250
@ ANJAY_EST_CACERTS_FOR_EST_SECURITY
Definition: core.h:236
avs_time_real_t anjay_transport_next_planned_pmax_notify_trigger(anjay_t *anjay, anjay_transport_set_t transport_set)
int anjay_delete_with_core_persistence(anjay_t *anjay, avs_stream_t *out_stream)
avs_time_real_t anjay_next_planned_lifecycle_operation(anjay_t *anjay, anjay_ssid_t ssid)
void anjay_delete(anjay_t *anjay)
avs_time_real_t anjay_next_planned_pmax_notify_trigger(anjay_t *anjay, anjay_ssid_t ssid)
int anjay_get_sms_trigger(anjay_t *anjay, anjay_ssid_t ssid, bool *out_sms_trigger)
anjay_socket_transport_t
Definition: core.h:906
@ ANJAY_SOCKET_TRANSPORT_NIDD
Definition: core.h:911
@ ANJAY_SOCKET_TRANSPORT_INVALID
Definition: core.h:907
@ ANJAY_SOCKET_TRANSPORT_UDP
Definition: core.h:908
@ ANJAY_SOCKET_TRANSPORT_TCP
Definition: core.h:909
@ ANJAY_SOCKET_TRANSPORT_SMS
Definition: core.h:910
int anjay_sched_time_to_next_ms(anjay_t *anjay, int *out_delay_ms)
const anjay_transport_set_t ANJAY_TRANSPORT_SET_TCP
uint16_t anjay_oid_t
Definition: core.h:1011
uint16_t anjay_rid_t
Definition: core.h:1017
int anjay_event_loop_interrupt(anjay_t *anjay)
bool anjay_all_connections_failed(anjay_t *anjay)
uint16_t anjay_iid_t
Definition: core.h:1014
bool anjay_ongoing_registration_exists(anjay_t *anjay)
bool anjay_transport_has_unsent_notifications(anjay_t *anjay, anjay_transport_set_t transport_set)
int anjay_transport_enter_offline(anjay_t *anjay, anjay_transport_set_t transport_set)
anjay_security_config_t anjay_security_config_pkix(anjay_t *anjay)
avs_error_t anjay_update_dtls_handshake_timeouts(anjay_t *anjay, avs_net_dtls_handshake_timeouts_t dtls_handshake_timeouts)
bool anjay_has_unsent_notifications(anjay_t *anjay, anjay_ssid_t ssid)
int anjay_transport_set_online(anjay_t *anjay, anjay_transport_set_t transport_set)
int anjay_server_schedule_reconnect(anjay_t *anjay, anjay_ssid_t ssid)
struct anjay_struct anjay_t
Definition: core.h:45
anjay_queue_mode_preference_t
Definition: core.h:1659
@ ANJAY_FORCE_ONLINE_MODE
Definition: core.h:1694
@ ANJAY_PREFER_QUEUE_MODE
Definition: core.h:1675
@ ANJAY_FORCE_QUEUE_MODE
Definition: core.h:1668
@ ANJAY_PREFER_ONLINE_MODE
Definition: core.h:1684
int anjay_transport_exit_offline(anjay_t *anjay, anjay_transport_set_t transport_set)
avs_time_real_t anjay_transport_next_planned_notify_trigger(anjay_t *anjay, anjay_transport_set_t transport_set)
uint16_t anjay_ssid_t
Definition: core.h:31
avs_time_real_t anjay_next_planned_notify_trigger(anjay_t *anjay, anjay_ssid_t ssid)
anjay_t * anjay_new_from_core_persistence(const anjay_configuration_t *config, avs_stream_t *in_stream)
int anjay_event_loop_run(anjay_t *anjay, avs_time_duration_t max_wait_time)
avs_error_t anjay_update_transport_tx_params(anjay_t *anjay, anjay_transport_set_t transport_set, const avs_coap_udp_tx_params_t *tx_params)
const anjay_transport_set_t ANJAY_TRANSPORT_SET_UDP
const anjay_transport_set_t ANJAY_TRANSPORT_SET_IP
avs_error_t anjay_get_server_last_registration_time(anjay_t *anjay, anjay_ssid_t ssid, avs_time_real_t *out_time)
avs_error_t anjay_get_server_last_communication_time(anjay_t *anjay, anjay_ssid_t ssid, avs_time_real_t *out_time)
int anjay_disable_server(anjay_t *anjay, anjay_ssid_t ssid)
anjay_t * anjay_new(const anjay_configuration_t *config)
avs_time_real_t anjay_transport_next_planned_lifecycle_operation(anjay_t *anjay, anjay_transport_set_t transport_set)
int anjay_schedule_registration_update(anjay_t *anjay, anjay_ssid_t ssid)
int anjay_serve(anjay_t *anjay, avs_net_socket_t *ready_socket)
void anjay_sched_run(anjay_t *anjay)
int anjay_schedule_register(anjay_t *anjay, anjay_ssid_t ssid)
bool anjay_transport_is_offline(anjay_t *anjay, anjay_transport_set_t transport_set)
int anjay_get_server_ssid_by_msisdn(anjay_t *anjay, const char *server_msisdn, anjay_ssid_t *out_ssid)
int anjay_schedule_bootstrap_request(anjay_t *anjay)
avs_sched_t * anjay_get_scheduler(anjay_t *anjay)
int anjay_enable_server(anjay_t *anjay, anjay_ssid_t ssid)
avs_error_t anjay_get_server_next_update_time(anjay_t *anjay, anjay_ssid_t ssid, avs_time_real_t *out_time)
int anjay_serve_any(anjay_t *anjay, avs_time_duration_t max_wait_time)
int anjay_security_config_from_dm(anjay_t *anjay, anjay_security_config_t *out_config, const char *uri)
AVS_LIST[const anjay_socket_entry_t] anjay_get_socket_entries(anjay_t *anjay)
const char * anjay_get_version(void)
int anjay_disable_server_with_timeout(anjay_t *anjay, anjay_ssid_t ssid, avs_time_duration_t timeout)
int anjay_event_loop_run_with_error_handling(anjay_t *anjay_locked, avs_time_duration_t max_wait_time)
avs_time_real_t anjay_registration_expiration_time_with_status(anjay_t *anjay, anjay_ssid_t ssid, anjay_registration_expiration_status_t *out_status)
int anjay_sched_time_to_next(anjay_t *anjay, avs_time_duration_t *out_delay)
int anjay_transport_schedule_reconnect(anjay_t *anjay, anjay_transport_set_t transport_set)
anjay_lwm2m_version_t
Definition: core.h:123
@ ANJAY_LWM2M_VERSION_1_1
Definition: core.h:135
@ ANJAY_LWM2M_VERSION_1_0
Definition: core.h:128
struct anjay_configuration anjay_configuration_t
avs_error_t anjay_est_state_restore(anjay_t *anjay, avs_stream_t *out_stream)
const char * anjay_est_engine_cacert_address_gen_t(void *arg, const void *x509_der_data, size_t x509_der_data_size)
Definition: core.h:289
int anjay_sched_calculate_wait_time_ms(anjay_t *anjay, int limit_ms)
avs_error_t anjay_est_state_persist(anjay_t *anjay, avs_stream_t *out_stream)
const anjay_transport_set_t ANJAY_TRANSPORT_SET_ALL
uint16_t anjay_riid_t
Definition: core.h:1020
AVS_LIST[avs_net_socket_t *const] anjay_get_sockets(anjay_t *anjay)
Definition: core.h:294
bool use_connection_id
Definition: core.h:453
bool enable_self_notify
Definition: core.h:477
size_t in_buffer_size
Definition: core.h:321
avs_net_socket_configuration_t socket_config
Definition: core.h:349
bool prefer_multipart_sms
Definition: core.h:600
size_t msg_cache_size
Definition: core.h:340
avs_time_duration_t coap_tcp_request_timeout
Definition: core.h:527
size_t out_buffer_size
Definition: core.h:330
const anjay_lwm2m_version_config_t * lwm2m_version_config
Definition: core.h:622
void * est_engine_cacerts_address_gen_cb_arg
Definition: core.h:745
anjay_nidd_driver_t * nidd_driver
Definition: core.h:572
avs_crypto_certificate_chain_info_t trust_store_certs
Definition: core.h:658
bool use_system_trust_store
Definition: core.h:642
bool confirmable_notifications
Definition: core.h:403
avs_crypto_prng_ctx_t * prng_ctx
Definition: core.h:501
const avs_coap_udp_tx_params_t * udp_tx_params
Definition: core.h:361
bool prefer_hierarchical_formats
Definition: core.h:447
avs_crypto_cert_revocation_list_info_t trust_store_crls
Definition: core.h:674
bool update_immediately_on_dm_change
Definition: core.h:468
bool disable_legacy_server_initiated_bootstrap
Definition: core.h:420
anjay_est_cacerts_policy_t est_cacerts_policy
Definition: core.h:709
size_t coap_tcp_max_options_size
Definition: core.h:518
const char * endpoint_name
Definition: core.h:302
avs_net_ssl_version_t dtls_version
Definition: core.h:314
avs_net_socket_tls_ciphersuites_t default_tls_ciphersuites
Definition: core.h:489
const avs_coap_udp_tx_params_t * sms_tx_params
Definition: core.h:542
const char * local_msisdn
Definition: core.h:589
const avs_net_dtls_handshake_timeouts_t * udp_dtls_hs_tx_params
Definition: core.h:397
const char * est_engine_key_address
Definition: core.h:719
anjay_est_engine_cacert_address_gen_t * est_engine_cacerts_address_gen_cb
Definition: core.h:736
bool rebuild_client_cert_chain
Definition: core.h:687
uint16_t udp_listen_port
Definition: core.h:309
const char * est_engine_cert_address
Definition: core.h:727
const avs_coap_udp_tx_params_t * nidd_tx_params
Definition: core.h:556
const anjay_est_reenroll_config_t * est_reenroll_config
Definition: core.h:702
avs_ssl_additional_configuration_clb_t * additional_tls_config_clb
Definition: core.h:508
size_t stored_notification_limit
Definition: core.h:436
anjay_smsdrv_t * sms_driver
Definition: core.h:564
Definition: core.h:153
double nominal_usage
Definition: core.h:187
avs_time_duration_t max_margin
Definition: core.h:215
bool enable
Definition: core.h:158
Definition: core.h:138
anjay_lwm2m_version_t minimum_version
Definition: core.h:142
anjay_lwm2m_version_t maximum_version
Definition: core.h:148
Definition: nidd.h:169
Definition: core.h:1735
avs_net_security_info_t security_info
Definition: core.h:1739
const char * server_name_indication
Definition: core.h:1763
avs_net_socket_tls_ciphersuites_t tls_ciphersuites
Definition: core.h:1754
const avs_net_socket_dane_tlsa_record_t * dane_tlsa_record
Definition: core.h:1745
Definition: sms.h:134
Definition: core.h:918
bool queue_mode
Definition: core.h:958
anjay_ssid_t ssid
Definition: core.h:944
anjay_socket_transport_t transport
Definition: core.h:932
avs_net_socket_t * socket
Definition: core.h:924
Definition: core.h:1485
bool sms
Definition: core.h:1489
bool tcp
Definition: core.h:1487
bool udp
Definition: core.h:1486
bool nidd
Definition: core.h:1492