-
Notifications
You must be signed in to change notification settings - Fork 70
/
anjay_config.h.in
669 lines (602 loc) · 21.8 KB
/
anjay_config.h.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
/*
* Copyright 2017-2024 AVSystem <[email protected]>
* AVSystem Anjay LwM2M SDK
* All rights reserved.
*
* Licensed under the AVSystem-5-clause License.
* See the attached LICENSE file for details.
*/
#ifndef ANJAY_CONFIG_H
#define ANJAY_CONFIG_H
/**
* @file anjay_config.h
*
* Anjay library configuration.
*
* The preferred way to compile Anjay is to use CMake, in which case this file
* will be generated automatically by CMake.
*
* However, to provide compatibility with various build systems used especially
* by embedded platforms, it is alternatively supported to compile Anjay by
* other means, in which case this file will need to be provided manually.
*
* <strong>NOTE: To compile this library without using CMake, you need to
* configure avs_commons and avs_coap first. Please refer to documentation in
* the <c>avs_commons_config.h</c> and <c>avs_coap_config.h</c> files (provided
* in the repositories as <c>avs_commons_config.h.in</c> and
* <c>avs_coap_config.h.in</c>, respectively) for details.</strong>
*
* <strong>Anjay requires the following avs_coap options to be enabled:</strong>
*
* - @c WITH_AVS_COAP_UDP
* - @c WITH_AVS_COAP_STREAMING_API
* - @c WITH_AVS_COAP_BLOCK is highly recommended
* - @c WITH_AVS_COAP_OBSERVE (if @c ANJAY_WITH_OBSERVE is enabled)
* - @c WITH_AVS_COAP_OSCORE (if @c ANJAY_WITH_COAP_OSCORE is enabled, available
* only as a commercial feature)
*
* <strong>Anjay requires the following avs_commons components to be
* enabled:</strong>
*
* - All components required by avs_coap, see <c>avs_coap_config.h</c>
* - @c avs_algorithm
* - @c avs_stream
* - @c avs_url
* - @c avs_persistence is highly recommended
* - @c avs_http (if @c ANJAY_WITH_HTTP_DOWNLOAD is enabled)
* - @c avs_rbtree (if @c ANJAY_WITH_OBSERVE or
* @c ANJAY_WITH_MODULE_ACCESS_CONTROL is enabled)
*
* In the repository, this file is provided as <c>anjay_config.h.in</c>,
* intended to be processed by CMake. If editing this file manually, please copy
* or rename it to <c>anjay_config.h</c> and for each of the
* <c>\#cmakedefine</c> directives, please either replace it with regular
* <c>\#define</c> to enable it, or comment it out to disable. You may also need
* to replace variables wrapped in <c>\@</c> signs with concrete values. Please
* refer to the comments above each of the specific definition for details.
*
* If you are editing a file previously generated by CMake, these
* <c>\#cmakedefine</c>s will be already replaced by either <c>\#define</c> or
* commented out <c>\#undef</c> directives.
*/
/**
* Enable logging in Anjay.
*
* If this flag is disabled, no logging is compiled into the binary at all.
*/
#cmakedefine ANJAY_WITH_LOGS
/**
* Enable TRACE-level logs in Anjay.
*
* Only meaningful if <c>ANJAY_WITH_LOGS</c> is enabled.
*/
#cmakedefine ANJAY_WITH_TRACE_LOGS
/**
* Enable core support for Access Control mechanisms.
*
* Requires separate implementation of the Access Control object itself.
* Either the implementation available as part of
* <c>ANJAY_WITH_MODULE_ACCESS_CONTROL</c>, or a custom application-provided one
* may be used.
*/
#cmakedefine ANJAY_WITH_ACCESS_CONTROL
/**
* Enable automatic attribute storage.
*
* Requires <c>AVS_COMMONS_WITH_AVS_PERSISTENCE</c> to be enabled in avs_commons
* configuration.
*/
#cmakedefine ANJAY_WITH_ATTR_STORAGE
/**
* Enable support for the <c>anjay_download()</c> API.
*/
#cmakedefine ANJAY_WITH_DOWNLOADER
/**
* Enable support for CoAP(S) downloads.
*
* Only meaningful if <c>ANJAY_WITH_DOWNLOADER</c> is enabled.
*/
#cmakedefine ANJAY_WITH_COAP_DOWNLOAD
/**
* Enable support for HTTP(S) downloads.
*
* Only meaningful if <c>ANJAY_WITH_DOWNLOADER</c> is enabled.
*/
#cmakedefine ANJAY_WITH_HTTP_DOWNLOAD
/**
* Enable support for the LwM2M Bootstrap Interface.
*/
#cmakedefine ANJAY_WITH_BOOTSTRAP
/**
* Enable support for the LwM2M Discover operation.
*
* Note that it is required for full compliance with the LwM2M protocol.
*/
#cmakedefine ANJAY_WITH_DISCOVER
/**
* Enable support for the LwM2M Information Reporting interface (Observe and
* Notify operations).
*
* Requires <c>WITH_AVS_COAP_OBSERVE</c> to be enabled in avs_coap
* configuration.
*
* Note that it is required for full compliance with the LwM2M protocol.
*/
#cmakedefine ANJAY_WITH_OBSERVE
/**
* Enable support for measuring amount of LwM2M traffic
* (<c>anjay_get_tx_bytes()</c>, <c>anjay_get_rx_bytes()</c>,
* <c>anjay_get_num_incoming_retransmissions()</c> and
* <c>anjay_get_num_outgoing_retransmissions()</c> APIs.
*/
#cmakedefine ANJAY_WITH_NET_STATS
/**
* Enable support for communication timestamp
* (<c>anjay_get_server_last_registration_time()</c>
* <c>anjay_get_server_next_update_time()</c> and
* <c>anjay_get_server_last_communication_time()</c>) APIs.
*/
#cmakedefine ANJAY_WITH_COMMUNICATION_TIMESTAMP_API
/**
* Enable support for the <c>anjay_resource_observation_status()</c> API.
*/
#cmakedefine ANJAY_WITH_OBSERVATION_STATUS
/**
* Maximum number of servers observing a given Resource listed by
* <c>anjay_resource_observation_status()</c> function.
*
* Only meaningful if <c>ANJAY_WITH_OBSERVATION_STATUS</c> is enabled.
*/
#define ANJAY_MAX_OBSERVATION_SERVERS_REPORTED_NUMBER @MAX_OBSERVATION_SERVERS_REPORTED_NUMBER@
/**
* Enable guarding of all accesses to <c>anjay_t</c> with a mutex.
*/
#cmakedefine ANJAY_WITH_THREAD_SAFETY
/**
* Enable standard implementation of an event loop.
*
* Requires C11 <c>stdatomic.h</c> header to be available, and either a platform
* that provides a BSD-compatible socket API, or a compatibility layer file (see
* <c>AVS_COMMONS_POSIX_COMPAT_HEADER</c> in <c>avs_commons_config.h</c>). This
* is designed to best work with the defalt implementation of avs_net sockets
* (see <c>AVS_COMMONS_NET_WITH_POSIX_AVS_SOCKET</c>), but alternative socket
* implementations can also be used.
*
* The event loop is most useful when thread safety features
* (@ref ANJAY_WITH_THREAD_SAFETY and <c>AVS_COMMONS_SCHED_THREAD_SAFE</c>) are
* enabled as well, but this is not a hard requirement. See the documentation
* for <c>anjay_event_loop_run()</c> for details.
*/
#cmakedefine ANJAY_WITH_EVENT_LOOP
/**
* Enable support for features new to LwM2M protocol version 1.1.
*/
#cmakedefine ANJAY_WITH_LWM2M11
/**
* Enable support for OSCORE-based security for LwM2M connections.
*
* Requires <c>ANJAY_WITH_LWM2M11</c> to be enabled, and
* <c>WITH_AVS_COAP_OSCORE</c> to be enabled in avs_coap configuration.
*
* IMPORTANT: Only available as part of the OSCORE commercial feature. Ignored
* in the open source version.
*/
#cmakedefine ANJAY_WITH_COAP_OSCORE
/**
* Enable support for the LwM2M Send operation.
*
* Requires <c>ANJAY_WITH_LWM2M11</c> and either <c>ANJAY_WITH_SENML_JSON</c> or
* <c>ANJAY_WITH_CBOR</c> to be enabled.
*/
#cmakedefine ANJAY_WITH_SEND
/**
* Enable support for the SMS binding and the SMS trigger mechanism.
*
* Requires <c>WITH_AVS_COAP_UDP</c> to be enabled in avs_coap configuration.
*
* IMPORTANT: Only available as part of the SMS commercial feature. Ignored in
* the open source version.
*/
#cmakedefine ANJAY_WITH_SMS
/**
* Enable support for sending and receiving multipart SMS messages.
*
* Requires <c>ANJAY_WITH_SMS</c> to be enabled.
*
* IMPORTANT: Only available as part of the SMS commercial feature. Ignored in
* the open source version.
*/
#cmakedefine ANJAY_WITH_SMS_MULTIPART
/**
* Enable support for Non-IP Data Delivery.
*
* Requires <c>ANJAY_WITH_LWM2M11</c> to be enabled, and
* <c>WITH_AVS_COAP_UDP</c> to be enabled in avs_coap configuration.
*
* IMPORTANT: Only available as a commercial feature. Ignored in the open
* source version.
*/
#cmakedefine ANJAY_WITH_NIDD
/**
* Enable support for core state persistence
* (<c>anjay_new_from_core_persistence()</c> and
* <c>anjay_delete_with_core_persistence()</c> APIs).
*
* Requires <c>ANJAY_WITH_OBSERVE</c> to be enabled,
* <c>AVS_COMMONS_WITH_AVS_PERSISTENCE</c> to be enabled in avs_commons, and
* <c>WITH_AVS_COAP_OBSERVE_PERSISTENCE</c> to be enabled in avs_coap
* configuration.
*
* IMPORTANT: Only available as a commercial feature. Ignored in the open
* source version.
*/
#cmakedefine ANJAY_WITH_CORE_PERSISTENCE
/**
* Disable automatic closing of server connection sockets after
* MAX_TRANSMIT_WAIT of inactivity.
*/
#cmakedefine ANJAY_WITHOUT_QUEUE_MODE_AUTOCLOSE
/**
* Enable support for CoAP Content-Format numerical values 1541-1544 that have
* been used before final LwM2M TS 1.0.
*/
#cmakedefine ANJAY_WITH_LEGACY_CONTENT_FORMAT_SUPPORT
/**
* Enable support for JSON format as specified in LwM2M TS 1.0.
*
* NOTE: Anjay is only capable of generating this format, there is no parsing
* support regardless of the state of this option.
*/
#cmakedefine ANJAY_WITH_LWM2M_JSON
/**
* Disable support for TLV format as specified in LwM2M TS 1.0.
*
* NOTE: LwM2M Client using LwM2M 1.0 MUST support this format. It may be
* disabled if LwM2M 1.1 is used and SenML JSON or SenML CBOR is enabled.
*/
#cmakedefine ANJAY_WITHOUT_TLV
/**
* Disable support for Plain Text format as specified in LwM2M TS 1.0 and 1.1.
*
* NOTE: LwM2M Client SHOULD support this format. It may be disabled to reduce
* library size if LwM2M Server is configured to not use it in requests.
*/
#cmakedefine ANJAY_WITHOUT_PLAINTEXT
/**
* Disable use of the Deregister message.
*/
#cmakedefine ANJAY_WITHOUT_DEREGISTER
/**
* Disable support for "IP stickiness", i.e. preference of the same IP address
* when reconnecting to a server using a domain name.
*/
#cmakedefine ANJAY_WITHOUT_IP_STICKINESS
/**
* Enable support for SenML JSON format, as specified in LwM2M TS 1.1.
*
* NOTE: As opposed to <c>ANJAY_WITH_LWM2M_JSON</c>, both generating and parsing
* is supported.
*
* Requires <c>ANJAY_WITH_LWM2M11</c> to be enabled.
*/
#cmakedefine ANJAY_WITH_SENML_JSON
/**
* Enable support for CBOR and SenML CBOR formats, as specified in LwM2M TS 1.1.
*
* Requires <c>ANJAY_WITH_LWM2M11</c> to be enabled.
*/
#cmakedefine ANJAY_WITH_CBOR
/**
* Enable support for Enrollment over Secure Transport.
*
* Requires <c>ANJAY_WITH_BOOTSTRAP</c> to be enabled.
*
* IMPORTANT: Only available as part of the EST commercial feature. Ignored in
* the open source version.
*/
#cmakedefine ANJAY_WITH_EST
/**
* Enable support for hardware security engine in the EST subsystem.
*
* Requires <c>ANJAY_WITH_EST</c> to be enabled in Anjay configuration and
* <c>AVS_COMMONS_WITH_AVS_CRYPTO_PKI_ENGINE</c> to be enabled in avs_commons
* configuration.
*
* IMPORTANT: Only available in commercial versions that include both the EST
* and HSM features. Ignored in versions distributed without these features.
*/
#cmakedefine ANJAY_WITH_EST_ENGINE_SUPPORT
/**
* Enable support for the Confirmable Notification attribute, as specified in
* LwM2M TS 1.2.
*
* Before TS 1.2, this has been supported in Anjay as a custom extension, and
* thus it is available independently from TS 1.2 support itself, including in
* the open source version.
*
* Requires <c>ANJAY_WITH_OBSERVE</c> to be enabled.
*/
#cmakedefine ANJAY_WITH_CON_ATTR
/**
* Enable support for handling security credentials in the data model using
* structured <c>avs_crypto</c> types.
*
* If the <c>security</c> module is also enabled (see @ref
* ANJAY_WITH_MODULE_SECURITY), it also enables support for passing these
* credentials through such structured types when adding Security object
* instances via the @ref anjay_security_instance_t structure.
*/
#cmakedefine ANJAY_WITH_SECURITY_STRUCTURED
/**
* Maximum size in bytes supported for the "Public Key or Identity" resource in
* the LwM2M Security object.
*
* If editing this file manually, <c>@MAX_PK_OR_IDENTITY_SIZE@</c> shall be
* replaced with a positive integer literal.
*
* The default value defined in CMake build scripts is 2048.
* Minimal suggested setting for low-resource builds is 256.
*/
#define ANJAY_MAX_PK_OR_IDENTITY_SIZE @MAX_PK_OR_IDENTITY_SIZE@
/**
* Maximum size in bytes supported for the "Secret Key" resource in the LwM2M
* Security Object.
*
* If editing this file manually, <c>@MAX_SECRET_KEY_SIZE@</c> shall be replaced
* with a positive integer literal.
*
* The default value defined in CMake build scripts is 256.
* Minimal suggested setting for low-resource builds is 128.
*/
#define ANJAY_MAX_SECRET_KEY_SIZE @MAX_SECRET_KEY_SIZE@
/**
* Maximum length supported for stringified floating-point values.
*
* Used when parsing plaintext and SenML JSON content formats - when parsing a
* floating-point value, any string of length equal or greater than this setting
* will automatically be considered invalid, even if it could in theory be
* parsed as a valid number.
*
* If editing this file manually, <c>@MAX_DOUBLE_STRING_SIZE@</c> shall be
* replaced with a positive integer literal.
*
* The default value defined in CMake build scripts is 512.
* Minimal suggested setting for low-resource builds is 64.
*/
#define ANJAY_MAX_DOUBLE_STRING_SIZE @MAX_DOUBLE_STRING_SIZE@
/**
* Maximum length supported for a single Uri-Path or Location-Path segment.
*
* When handling incoming CoAP messages, any Uri-Path or Location-Path option of
* length equal or greater than this setting will be considered invalid.
*
* If editing this file manually, <c>@MAX_URI_SEGMENT_SIZE@</c> shall be
* replaced with a positive integer literal.
*
* The default value defined in CMake build scripts is 256.
* Minimal suggested setting for low-resource builds is 64.
*/
#define ANJAY_MAX_URI_SEGMENT_SIZE @MAX_URI_SEGMENT_SIZE@
/**
* Maximum length supported for a single Uri-Query segment.
*
* When handling incoming CoAP messages, any Uri-Query option of length equal or
* greater than this setting will be considered invalid.
*
* If editing this file manually, <c>@MAX_URI_QUERY_SEGMENT_SIZE@</c> shall be
* replaced with a positive integer literal.
*
* The default value defined in CMake build scripts is 256.
* Minimal suggested setting for low-resource builds is 64.
*/
#define ANJAY_MAX_URI_QUERY_SEGMENT_SIZE @MAX_URI_QUERY_SEGMENT_SIZE@
/**
* Size of buffer allocated for storing DTLS session state when connection is
* not in use (e.g. during queue mode operation).
*
* If editing this file manually, <c>@DTLS_SESSION_BUFFER_SIZE@</c> shall be
* replaced with a positive integer literal. The default value defined in CMake
* build scripts is 1024.
*/
#define ANJAY_DTLS_SESSION_BUFFER_SIZE @DTLS_SESSION_BUFFER_SIZE@
/**
* Value of Content-Format used in Send messages. Only a few specific values are
* supported:
*
* - @c AVS_COAP_FORMAT_NONE means no default value is used and Anjay will
* decide the format based on the what is available.
* - @c AVS_COAP_FORMAT_OMA_LWM2M_CBOR Anjay will generate a Send message in
* LwM2M CBOR format.
* - @c AVS_COAP_FORMAT_SENML_CBOR Anjay will generate a Send message in SenML
* CBOR format.
* - @c AVS_COAP_FORMAT_SENML_JSON Anjay will generate a Send message in SenML
* JSON format.
*
* Note that to use a specific format it must be available during compilation.
*
* The default value defined in CMake build scripts is
* <c>AVS_COAP_FORMAT_NONE</c>.
*/
#define ANJAY_DEFAULT_SEND_FORMAT @ANJAY_DEFAULT_SEND_FORMAT@
/**
* Optional Anjay modules.
*/
/**@{*/
/**
* Enable access_control module (implementation of the Access Control object).
*
* Requires <c>ANJAY_WITH_ACCESS_CONTROL</c> to be enabled.
*/
#cmakedefine ANJAY_WITH_MODULE_ACCESS_CONTROL
/**
* Enable security module (implementation of the LwM2M Security object).
*/
#cmakedefine ANJAY_WITH_MODULE_SECURITY
/**
* Enable support for hardware security engine in the security module.
*
* This feature allows security credentials provisioned into the LwM2M Security
* object to be automatically moved into a hardware security module.
*
* Requires <c>ANJAY_WITH_MODULE_SECURITY</c> to be enabled in Anjay
* configuration, and at least one of
* <c>AVS_COMMONS_WITH_AVS_CRYPTO_PKI_ENGINE</c> or
* <c>AVS_COMMONS_WITH_AVS_CRYPTO_PSK_ENGINE</c> to be enabled in avs_commons
* configuration.
*
* IMPORTANT: Only available as part of the HSM support commercial feature.
* Ignored in versions distributed without this feature.
*/
#cmakedefine ANJAY_WITH_MODULE_SECURITY_ENGINE_SUPPORT
/**
* Enable server module (implementation of the LwM2M Server object).
*/
#cmakedefine ANJAY_WITH_MODULE_SERVER
/**
* Enable fw_update module (implementation of the Firmware Update object).
*/
#cmakedefine ANJAY_WITH_MODULE_FW_UPDATE
/**
* Enable advanced_fw_update module (implementation of the 33629 custom
* Advanced Firmware Update object).
*/
#cmakedefine ANJAY_WITH_MODULE_ADVANCED_FW_UPDATE
/**
* Disable support for PUSH mode Firmware Update.
*
* Only meaningful if <c>ANJAY_WITH_MODULE_FW_UPDATE</c> is enabled. Requires
* <c>ANJAY_WITH_DOWNLOADER</c> to be enabled.
*/
#cmakedefine ANJAY_WITHOUT_MODULE_FW_UPDATE_PUSH_MODE
/**
* Enable sw_mgmt module (implementation of the Software Management object).
*/
#cmakedefine ANJAY_WITH_MODULE_SW_MGMT
/**
* Enables ipso_objects module (generic implementation of basic sensor, three
* axis sensor and Push Button IPSO objects).
*/
#cmakedefine ANJAY_WITH_MODULE_IPSO_OBJECTS
/**
* Enables experimental ipso_objects_v2 module (generic implementation of basic
* sensor and three axis sensor IPSO objects).
*/
#cmakedefine ANJAY_WITH_MODULE_IPSO_OBJECTS_V2
/**
* Enable at_sms module (implementation of an SMS driver for AT modem devices).
*
* Requires <c>ANJAY_WITH_SMS</c> to be enabled and the operating system to
* support the POSIX <c>poll()</c> function.
*
* IMPORTANT: Only available as part of the SMS commercial feature. Ignored in
* the open source version.
*/
#cmakedefine ANJAY_WITH_MODULE_AT_SMS
/**
* Enable bg96_nidd module (implementation of NB-IoT-based NIDD driver for
* Quectel BG96).
*
* Requires <c>ANJAY_WITH_NIDD</c> to be enabled.
*
* IMPORTANT: Only available as part of the NIDD commercial feature. Ignored
* in the open source version.
*/
#cmakedefine ANJAY_WITH_MODULE_BG96_NIDD
/**
* Enable bootstrapper module (loader for bootstrap information formatted as per
* the "Storage of LwM2M Bootstrap Information on the Smartcard" appendix to the
* LwM2M TS).
*
* Requires <c>ANJAY_WITH_BOOTSTRAP</c> to be enabled and
* <c>AVS_COMMONS_WITH_AVS_PERSISTENCE</c> to be enabled in avs_commons
* configuration.
*
* IMPORTANT: Only available with the bootstrapper feature. Ignored in the open
* source version.
*/
#cmakedefine ANJAY_WITH_MODULE_BOOTSTRAPPER
/**
* Enable the SIM bootstrap module, which enables reading the SIM bootstrap
* information from a smartcard, which can then be passed through to the
* bootstrapper module.
*
* Requires <c>ANJAY_WITH_MODULE_BOOTSTRAPPER</c> to be enabled.
*
* IMPORTANT: Only available with the bootstrapper feature. Ignored in the open
* source version.
*/
#cmakedefine ANJAY_WITH_MODULE_SIM_BOOTSTRAP
/**
* Forced ID of the file to read the SIM bootstrap information from.
*
* If not defined (default), the bootstrap information file will be discovered
* through the ODF file, as mandated by the specification.
*
* Requires <c>ANJAY_WITH_MODULE_BOOTSTRAPPER</c> to be enabled. At most one of
* <c>ANJAY_MODULE_SIM_BOOTSTRAP_HARDCODED_FILE_ID</c> and
* <c>ANJAY_MODULE_SIM_BOOTSTRAP_DATA_OID_OVERRIDE_HEX</c> may be defined at the
* same time.
*
* IMPORTANT: Only available with the bootstrapper feature. Ignored in the open
* source version.
*/
#cmakedefine ANJAY_MODULE_SIM_BOOTSTRAP_HARDCODED_FILE_ID @ANJAY_MODULE_SIM_BOOTSTRAP_HARDCODED_FILE_ID@
/**
* Overridden OID of the SIM bootstrap information to look for in the DODF file,
* expressed as a hexlified DER representation (without the header).
*
* This is the hexlified expected value of the 'id' field within the 'OidDO'
* sequence in the DODF file (please refer to the PKCS #15 document for more
* information).
*
* If not defined, the default value of <c>"672b0901"</c>, which corresponds to
* OID 2.23.43.9.1 {joint-iso-itu-t(2) international-organizations(23) wap(43)
* oma-lwm2m(9) lwm2m-bootstrap(1)}, will be used.
*
* No other values than the default are valid according to the specification,
* but some SIM cards are known to use other non-standard values, e.g.
* <c>"0604672b0901"</c> - including a superfluous nested BER-TLV header, as
* erroneously illustrated in the EF(DODF-bootstrap) file coding example in
* LwM2M TS 1.2 and earlier (fixed in LwM2M TS 1.2.1) - which is interpreted as
* OID 0.6.4.103.43.9.1 (note that it is invalid as the 0.6 tree does not exist
* in the repository as of writing this note).
*
* Requires <c>ANJAY_WITH_MODULE_BOOTSTRAPPER</c> to be enabled. At most one of
* <c>ANJAY_MODULE_SIM_BOOTSTRAP_HARDCODED_FILE_ID</c> and
* <c>ANJAY_MODULE_SIM_BOOTSTRAP_DATA_OID_OVERRIDE_HEX</c> may be defined at the
* same time.
*
* IMPORTANT: Only available with the bootstrapper feature. Ignored in the open
* source version.
*/
#cmakedefine ANJAY_MODULE_SIM_BOOTSTRAP_DATA_OID_OVERRIDE_HEX "@ANJAY_MODULE_SIM_BOOTSTRAP_DATA_OID_OVERRIDE_HEX@"
/**
* Enable factory provisioning module. Data provided during provisioning uses
* SenML CBOR format.
*/
#cmakedefine ANJAY_WITH_MODULE_FACTORY_PROVISIONING
/**
* Enable oscore module (implementation of the OSCORE object).
*
* IMPORTANT: Only available as part of the OSCORE commercial feature. Ignored
* in the open source version.
*/
#cmakedefine ANJAY_WITH_MODULE_OSCORE
/**
* If enable Anjay doesn't handle composite operation (read, observe and write).
* Its use makes sense for LWM2M v1.1 upwards.
*
* This flag can be used to reduce the size of the resulting code.
*
* If active, anjay will respond with message code 5.01 Not Implemented to any
* composite type request.
*/
#cmakedefine ANJAY_WITHOUT_COMPOSITE_OPERATIONS
/**
* Enable support for the experimental
* <c>anjay_get_server_connection_status()</c> API and related
* <c>anjay_server_connection_status_cb_t</c> callback.
*/
#cmakedefine ANJAY_WITH_CONN_STATUS_API
/**@}*/
#endif // ANJAY_CONFIG_H