1 /*
2  * Copyright (c) 2020, Nordic Semiconductor ASA
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice, this
11  *    list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
18  *    contributors may be used to endorse or promote products derived from this
19  *    software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31  * POSSIBILITY OF SUCH DAMAGE.
32  *
33  */
34 
35 /**
36  * @defgroup nrf_802154_spinel_serialization
37  * 802.15.4 radio driver spinel serialization
38  * @{
39  *
40  */
41 
42 #ifndef NRF_802154_SPINEL_DATATYPES_H_
43 #define NRF_802154_SPINEL_DATATYPES_H_
44 
45 #include "../spinel_base/spinel.h"
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 /**
52  * @brief Enum containing spinel custom vendor properties for nrf_802154 serialization.
53  */
54 typedef enum
55 {
56     /**
57      * Vendor property group for Nordic begin.
58      */
59     SPINEL_PROP_VENDOR_NORDIC__BEGIN = SPINEL_PROP_VENDOR__BEGIN,
60 
61     /**
62      * Vendor property group for Nordic nrf_802154 begin.
63      */
64     SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN = SPINEL_PROP_VENDOR_NORDIC__BEGIN,
65 
66     /**
67      * Vendor property for nrf_802154_init serialization.
68      */
69     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_INIT =
70         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 0,
71 
72     /**
73      * Vendor property for nrf_802154_sleep serialization.
74      */
75     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SLEEP =
76         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 1,
77 
78     /**
79      * Vendor property for nrf_802154_receive serialization.
80      */
81     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RECEIVE =
82         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 2,
83 
84     /**
85      * Vendor property for nrf_802154_channel_get serialization.
86      */
87     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CHANNEL_GET =
88         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 3,
89 
90     /**
91      * Vendor property for nrf_802154_channel_set serialization.
92      */
93     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CHANNEL_SET =
94         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 4,
95 
96     /**
97      * Vendor property for nrf_802154_tx_power_get serialization.
98      */
99     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TX_POWER_GET =
100         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 5,
101 
102     /**
103      * Vendor property for nrf_802154_tx_power_set serialization.
104      */
105     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TX_POWER_SET =
106         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 6,
107 
108     /**
109      * Vendor property for nrf_802154_auto_pending_bit_set serialization.
110      */
111     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_AUTO_PENDING_BIT_SET =
112         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 7,
113 
114     /**
115      * Vendor property for nrf_802154_pending_bit_for_addr_set serialization.
116      */
117     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PENDING_BIT_FOR_ADDR_SET =
118         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 8,
119 
120     /**
121      * Vendor property for nrf_802154_pending_bit_for_addr_clear serialization.
122      */
123     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PENDING_BIT_FOR_ADDR_CLEAR =
124         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 9,
125 
126     /**
127      * Vendor property for nrf_802154_pending_bit_for_addr_reset serialization.
128      */
129     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PENDING_BIT_FOR_ADDR_RESET =
130         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 10,
131 
132     /**
133      * Vendor property for nrf_802154_src_addr_matching_method_set serialization.
134      */
135     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SRC_ADDR_MATCHING_METHOD_SET =
136         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 11,
137 
138     /**
139      * Vendor property for nrf_802154_pan_id_set serialization.
140      */
141     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PAN_ID_SET =
142         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 12,
143 
144     /**
145      * Vendor property for nrf_802154_short_address_set serialization.
146      */
147     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SHORT_ADDRESS_SET =
148         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 13,
149 
150     /**
151      * Vendor property for nrf_802154_extended_address_set serialization.
152      */
153     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_EXTENDED_ADDRESS_SET =
154         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 14,
155 
156     /**
157      * Vendor property for nrf_802154_pan_coord_set serialization.
158      */
159     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PAN_COORD_SET =
160         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 15,
161 
162     /**
163      * Vendor property for nrf_802154_promiscuous_set serialization.
164      */
165     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PROMISCUOUS_SET =
166         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 16,
167 
168     /**
169      * Vendor property for nrf_802154_cca serialization.
170      */
171     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CCA =
172         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 17,
173 
174     /**
175      * Vendor property for nrf_802154_cca_done serialization.
176      */
177     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CCA_DONE =
178         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 18,
179 
180     /**
181      * Vendor property for nrf_802154_cca_failed serialization.
182      */
183     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CCA_FAILED =
184         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 19,
185 
186     /**
187      * Vendor property for nrf_802154_energy_detection serialization.
188      */
189     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ENERGY_DETECTION =
190         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 20,
191 
192     /**
193      * Vendor property for nrf_802154_energy_detected serialization.
194      */
195     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ENERGY_DETECTED =
196         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 21,
197 
198     /**
199      * Vendor property for nrf_802154_energy_detection_failed serialization.
200      */
201     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ENERGY_DETECTION_FAILED =
202         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 22,
203 
204     /**
205      * Vendor property for nrf_802154_received_timestamp_raw serialization.
206      */
207     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RECEIVED_TIMESTAMP_RAW =
208         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 23,
209 
210     /**
211      * Vendor property for nrf_802154_receive_failed serialization.
212      */
213     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RECEIVE_FAILED =
214         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 24,
215 
216     /**
217      * Vendor property for nrf_802154_tx_ack_started serialization.
218      */
219     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TX_ACK_STARTED =
220         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 25,
221 
222     /**
223      * Vendor property for nrf_802154_buffer_free_raw serialization.
224      */
225     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_BUFFER_FREE_RAW =
226         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 26,
227 
228     /**
229      * Vendor property for nrf_802154_transmit_raw serialization.
230      */
231     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TRANSMIT_RAW =
232         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 27,
233 
234     /**
235      * Vendor property for nrf_802154_transmit_csma_ca_raw serialization.
236      */
237     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TRANSMIT_CSMA_CA_RAW =
238         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 28,
239 
240     /**
241      * Vendor property for nrf_802154_transmitted_raw serialization.
242      */
243     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TRANSMITTED_RAW =
244         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 29,
245 
246     /**
247      * Vendor property for nrf_802154_transmit_failed serialization.
248      */
249     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TRANSMIT_FAILED =
250         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 30,
251 
252     /**
253      * Vendor property for nrf_802154_capabilities_get serialization.
254      */
255     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CAPABILITIES_GET =
256         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 31,
257 
258     /**
259      * Vendor property for nrf_802154_ack_data_set serialization.
260      */
261     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_SET =
262         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 32,
263 
264     /**
265      * Vendor property for nrf_802154_ack_data_clear serialization.
266      */
267     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_CLEAR =
268         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 33,
269 
270     /**
271      * Vendor property for nrf_802154_time_get serialization.
272      */
273     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TIME_GET =
274         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 34,
275 
276     /**
277      * Vendor property for nrf_802154_cca_cfg_get serialization.
278      */
279     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CCA_CFG_GET =
280         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 35,
281 
282     /**
283      * Vendor property for nrf_802154_cca_cfg_set serialization.
284      */
285     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CCA_CFG_SET =
286         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 36,
287 
288     /**
289      * Vendor property for nrf_802154_transmit_raw_at serialization.
290      */
291     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TRANSMIT_RAW_AT =
292         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 37,
293 
294     /**
295      * Vendor property for nrf_802154_transmit_at_cancel serialization.
296      */
297     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TRANSMIT_AT_CANCEL =
298         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 38,
299 
300     /**
301      * Vendor property for nrf_802154_receive_at serialization.
302      */
303     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RECEIVE_AT =
304         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 39,
305 
306     /**
307      * Vendor property for nrf_802154_receive_at_cancel serialization.
308      */
309     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RECEIVE_AT_CANCEL =
310         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 40,
311 
312     /**
313      * Vendor property for nrf_802154_security_global_frame_counter_set serialization.
314      */
315     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SECURITY_GLOBAL_FRAME_COUNTER_SET =
316         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 41,
317 
318     /**
319      * Vendor property for nrf_802154_security_key_store serialization.
320      */
321     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SECURITY_KEY_STORE =
322         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 42,
323 
324     /**
325      * Vendor property for nrf_802154_security_key_remove serialization.
326      */
327     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SECURITY_KEY_REMOVE =
328         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 43,
329 
330     /**
331      * Vendor property for nrf_802154_csl_writer_period_set serialization.
332      */
333     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSL_WRITER_PERIOD_SET =
334         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 44,
335 
336     /**
337      * Vendor property for nrf_802154_csma_ca_min_be_set serialization.
338      */
339     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSMA_CA_MIN_BE_SET =
340         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 45,
341 
342     /**
343      * Vendor property for nrf_802154_csma_ca_min_be_get serialization.
344      */
345     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSMA_CA_MIN_BE_GET =
346         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 46,
347 
348     /**
349      * Vendor property for nrf_802154_csma_ca_max_be_set serialization.
350      */
351     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSMA_CA_MAX_BE_SET =
352         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 47,
353 
354     /**
355      * Vendor property for nrf_802154_csma_ca_max_be_get serialization.
356      */
357     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSMA_CA_MAX_BE_GET =
358         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 48,
359 
360     /**
361      * Vendor property for nrf_802154_csma_ca_max_backoffs_set serialization.
362      */
363     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSMA_CA_MAX_BACKOFFS_SET =
364         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 49,
365 
366     /**
367      * Vendor property for nrf_802154_csma_ca_max_backoffs_get serialization.
368      */
369     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSMA_CA_MAX_BACKOFFS_GET =
370         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 50,
371 
372     /**
373      * Vendor property for nrf_802154_stat_timestamps_get serialization.
374      */
375     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_STAT_TIMESTAMPS_GET =
376         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 51,
377 
378     /**
379      * Vendor property for nrf_802154_continuous_carrier serialization.
380      */
381     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CONTINUOUS_CARRIER =
382         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 52,
383 
384     /**
385      * Vendor property for nrf_802154_modulated_carrier serialization.
386      */
387     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_MODULATED_CARRIER =
388         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 53,
389 
390     /**
391      * Vendor property for nrf_802154_sleep_if_idle serialization.
392      */
393     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SLEEP_IF_IDLE =
394         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 54,
395 
396     /**
397      * Vendor property for nrf_802154_test_mode_csmaca_backoff_set serialization.
398      */
399     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TEST_MODE_CSMACA_BACKOFF_SET =
400         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 55,
401 
402     /**
403      * Vendor property for nrf_802154_test_mode_csmaca_backoff_get serialization.
404      */
405     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_TEST_MODE_CSMACA_BACKOFF_GET =
406         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 56,
407 
408     /**
409      * Vendor property for nrf_802154_ifs_mode_set serialization.
410      */
411     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_IFS_MODE_SET =
412         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 57,
413 
414     /**
415      * Vendor property for nrf_802154_ifs_mode_get serialization.
416      */
417     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_IFS_MODE_GET =
418         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 58,
419 
420     /**
421      * Vendor property for nrf_802154_ifs_min_sifs_period_set serialization.
422      */
423     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_IFS_MIN_SIFS_PERIOD_SET =
424         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 59,
425 
426     /**
427      * Vendor property for nrf_802154_ifs_min_sifs_period_get serialization.
428      */
429     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_IFS_MIN_SIFS_PERIOD_GET =
430         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 60,
431 
432     /**
433      * Vendor property for nrf_802154_ifs_min_lifs_period_set serialization.
434      */
435     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_IFS_MIN_LIFS_PERIOD_SET =
436         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 61,
437 
438     /**
439      * Vendor property for nrf_802154_ifs_min_lifs_period_get serialization.
440      */
441     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_IFS_MIN_LIFS_PERIOD_GET =
442         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 62,
443 
444     /**
445      * Vendor property for nrf_802154_csl_writer_anchor_time_set serialization.
446      */
447     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_CSL_WRITER_ANCHOR_TIME_SET =
448         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 63,
449 
450     /**
451      * Vendor property for nrf_802154_security_global_frame_counter_set_if_larger serialization.
452      */
453     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SECURITY_GLOBAL_FRAME_COUNTER_SET_IF_LARGER =
454         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 64,
455 
456     /**
457      * Vendor property for nrf_802154_pan_coord_get serialization.
458      */
459     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_PAN_COORD_GET =
460         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 65,
461 
462     /**
463      * Vendor property for nrf_802154_security_key_remove_all serialization.
464      */
465     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SECURITY_KEY_REMOVE_ALL =
466         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 66,
467 
468     /**
469      * Vendor property for nrf_802154_rx_on_when_idle_set serialization.
470      */
471     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RX_ON_WHEN_IDLE_SET =
472         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 67,
473 
474     /**
475      * Vendor property for nrf_802154_ack_data_remove_all serialization.
476      */
477     SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_REMOVE_ALL =
478         SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 68,
479 
480 } spinel_prop_vendor_key_t;
481 
482 /**
483  * @brief Spinel data type description for nrf_802154_channel_get
484  */
485 #define SPINEL_DATATYPE_NRF_802154_CHANNEL_GET     SPINEL_DATATYPE_NULL_S
486 
487 /**
488  * @brief Spinel data type description for returning channel value.
489  */
490 #define SPINEL_DATATYPE_NRF_802154_CHANNEL_GET_RET SPINEL_DATATYPE_UINT8_S
491 
492 /**
493  * @brief Spinel data type description for nrf_802154_channel_set
494  */
495 #define SPINEL_DATATYPE_NRF_802154_CHANNEL_SET     SPINEL_DATATYPE_UINT8_S
496 
497 /**
498  * @brief Length of @ref SPINEL_DATATYPE_NRF_802154_HDATA_S data type.
499  */
500 #define NRF_802154_HDATA_LENGTH(data_len)          ((data_len) + sizeof(uint32_t))
501 
502 /**
503  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_HDATA_S data type.
504  */
505 #define NRF_802154_HDATA_ENCODE(handle, data, length) \
506     handle, data, NRF_802154_HDATA_LENGTH(length)
507 
508 /**
509  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_HDATA_S data type.
510  */
511 #define NRF_802154_HDATA_DECODE(handle, data, length) \
512     (&handle), &data, &length
513 
514 /**
515  * @brief Calculates length of data stored by @ref SPINEL_DATATYPE_NRF_802154_HDATA_S data type.
516  */
517 #define NRF_802154_DATA_LEN_FROM_HDATA_LEN(hdata_len) ((hdata_len) - sizeof(uint32_t))
518 
519 /**
520  * @brief Spinel data type description for a generic data with a handle.
521  *
522  * This type is used when data buffers are passed through serialization but
523  * still need to be referenced e.g. in response processing to match response
524  * data to a request. To serve this data handle field is used.
525  */
526 #define SPINEL_DATATYPE_NRF_802154_HDATA_S          \
527     SPINEL_DATATYPE_STRUCT_S(                       \
528         SPINEL_DATATYPE_UINT32_S /* Data handle */  \
529         SPINEL_DATATYPE_DATA_S   /* Data content */ \
530                             )
531 
532 /**
533  * @brief Spinel data type description for nrf_802154_transmitted_frame_props_t.
534  */
535 #define SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S \
536     SPINEL_DATATYPE_BOOL_S /* is_secured */                  \
537     SPINEL_DATATYPE_BOOL_S /* dynamic_data_is_set */
538 
539 /**
540  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S data type.
541  */
542 #define NRF_802154_TRANSMITTED_FRAME_PROPS_ENCODE(frame_props) \
543     ((frame_props).is_secured), ((frame_props).dynamic_data_is_set)
544 
545 /**
546  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S data type.
547  */
548 #define NRF_802154_TRANSMITTED_FRAME_PROPS_DECODE(frame_props) \
549     (&(frame_props).is_secured), (&(frame_props).dynamic_data_is_set)
550 
551 /**
552  * @brief Spinel data type description for nrf_802154_tx_power_metadata_t.
553  */
554 #define SPINEL_DATATYPE_NRF_802154_TX_POWER_METADATA_S \
555     SPINEL_DATATYPE_BOOL_S /* use_metadata_value */    \
556     SPINEL_DATATYPE_INT8_S /* power */
557 
558 /**
559  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TX_POWER_METADATA_S data type.
560  */
561 #define NRF_802154_TX_POWER_METADATA_ENCODE(tx_power_metadata) \
562     ((tx_power_metadata).use_metadata_value), ((tx_power_metadata).power)
563 
564 /**
565  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TX_POWER_METADATA_S data type.
566  */
567 #define NRF_802154_TX_POWER_METADATA_DECODE(tx_power_metadata) \
568     (&(tx_power_metadata).use_metadata_value), (&(tx_power_metadata).power)
569 
570 /**
571  * @brief Spinel data type description for nrf_802154_tx_channel_metadata_t.
572  */
573 #define SPINEL_DATATYPE_NRF_802154_TX_CHANNEL_METADATA_S \
574     SPINEL_DATATYPE_BOOL_S  /* use_metadata_value */     \
575     SPINEL_DATATYPE_UINT8_S /* channel */
576 
577 /**
578  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TX_CHANNEL_METADATA_S data type.
579  */
580 #define NRF_802154_TX_CHANNEL_METADATA_ENCODE(tx_channel_metadata) \
581     ((tx_channel_metadata).use_metadata_value), ((tx_channel_metadata).channel)
582 
583 /**
584  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TX_CHANNEL_METADATA_S data type.
585  */
586 #define NRF_802154_TX_CHANNEL_METADATA_DECODE(tx_channel_metadata) \
587     (&(tx_channel_metadata).use_metadata_value), (&(tx_channel_metadata).channel)
588 
589 /**
590  * @brief Spinel data type description for nrf_802154_transmit_metadata_t.
591  */
592 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_METADATA_S                     \
593     SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S /* frame_props */ \
594     SPINEL_DATATYPE_BOOL_S                               /* cca */         \
595     SPINEL_DATATYPE_NRF_802154_TX_POWER_METADATA_S       /* tx_power */    \
596     SPINEL_DATATYPE_NRF_802154_TX_CHANNEL_METADATA_S     /* tx_channel */
597 
598 /**
599  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_METADATA_S data type.
600  */
601 #define NRF_802154_TRANSMIT_METADATA_ENCODE(tx_metadata)                  \
602     NRF_802154_TRANSMITTED_FRAME_PROPS_ENCODE((tx_metadata).frame_props), \
603     ((tx_metadata).cca),                                                  \
604     NRF_802154_TX_POWER_METADATA_ENCODE((tx_metadata).tx_power),          \
605     NRF_802154_TX_CHANNEL_METADATA_ENCODE((tx_metadata).tx_channel)
606 
607 /**
608  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_METADATA_S data type.
609  */
610 #define NRF_802154_TRANSMIT_METADATA_DECODE(tx_metadata)                  \
611     NRF_802154_TRANSMITTED_FRAME_PROPS_DECODE((tx_metadata).frame_props), \
612     (&(tx_metadata).cca),                                                 \
613     NRF_802154_TX_POWER_METADATA_DECODE((tx_metadata).tx_power),          \
614     NRF_802154_TX_CHANNEL_METADATA_DECODE((tx_metadata).tx_channel)
615 
616 /**
617  * @brief Spinel data type description for nrf_802154_transmit_csma_ca_metadata_t.
618  */
619 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_CSMA_CA_METADATA_S             \
620     SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S /* frame_props */ \
621     SPINEL_DATATYPE_NRF_802154_TX_POWER_METADATA_S       /* tx_power */    \
622     SPINEL_DATATYPE_NRF_802154_TX_CHANNEL_METADATA_S     /* tx_channel */
623 
624 /**
625  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_CSMA_CA_METADATA_S data type.
626  */
627 #define NRF_802154_TRANSMIT_CSMA_CA_METADATA_ENCODE(tx_metadata)          \
628     NRF_802154_TRANSMITTED_FRAME_PROPS_ENCODE((tx_metadata).frame_props), \
629     NRF_802154_TX_POWER_METADATA_ENCODE((tx_metadata).tx_power),          \
630     NRF_802154_TX_CHANNEL_METADATA_ENCODE((tx_metadata).tx_channel)
631 
632 /**
633  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_CSMA_CA_METADATA_S data type.
634  */
635 #define NRF_802154_TRANSMIT_CSMA_CA_METADATA_DECODE(tx_metadata)          \
636     NRF_802154_TRANSMITTED_FRAME_PROPS_DECODE((tx_metadata).frame_props), \
637     NRF_802154_TX_POWER_METADATA_DECODE((tx_metadata).tx_power),          \
638     NRF_802154_TX_CHANNEL_METADATA_DECODE((tx_metadata).tx_channel)
639 
640 /**
641  * @brief Spinel data type description for nrf_802154_csma_ca_min_be_set.
642  */
643 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MIN_BE_SET               SPINEL_DATATYPE_UINT8_S
644 
645 /**
646  * @brief Spinel data type description for nrf_802154_csma_ca_min_be_set result.
647  */
648 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MIN_BE_SET_RET           SPINEL_DATATYPE_BOOL_S
649 
650 /**
651  * @brief Spinel data type description for nrf_802154_csma_ca_min_be_get.
652  */
653 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MIN_BE_GET               SPINEL_DATATYPE_NULL_S
654 
655 /**
656  * @brief Spinel data type description for nrf_802154_csma_ca_min_be_get result.
657  */
658 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MIN_BE_GET_RET           SPINEL_DATATYPE_UINT8_S
659 
660 /**
661  * @brief Spinel data type description for nrf_802154_csma_ca_max_be_set.
662  */
663 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BE_SET               SPINEL_DATATYPE_UINT8_S
664 
665 /**
666  * @brief Spinel data type description for nrf_802154_csma_ca_max_be_set result.
667  */
668 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BE_SET_RET           SPINEL_DATATYPE_BOOL_S
669 
670 /**
671  * @brief Spinel data type description for nrf_802154_csma_ca_max_be_get.
672  */
673 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BE_GET               SPINEL_DATATYPE_NULL_S
674 
675 /**
676  * @brief Spinel data type description for nrf_802154_csma_ca_max_be_get result.
677  */
678 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BE_GET_RET           SPINEL_DATATYPE_UINT8_S
679 
680 /**
681  * @brief Spinel data type description for nrf_802154_csma_ca_max_backoffs_set.
682  */
683 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BACKOFFS_SET         SPINEL_DATATYPE_UINT8_S
684 
685 /**
686  * @brief Spinel data type description for nrf_802154_csma_ca_max_backoffs_get.
687  */
688 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BACKOFFS_GET         SPINEL_DATATYPE_NULL_S
689 
690 /**
691  * @brief Spinel data type description for nrf_802154_csma_ca_max_backoffs_get result.
692  */
693 #define SPINEL_DATATYPE_NRF_802154_CSMA_CA_MAX_BACKOFFS_GET_RET     SPINEL_DATATYPE_UINT8_S
694 
695 /**
696  * @brief Spinel data type description for nrf_802154_test_mode_csmaca_backoff_set.
697  */
698 #define SPINEL_DATATYPE_NRF_802154_TEST_MODE_CSMACA_BACKOFF_SET     SPINEL_DATATYPE_UINT8_S
699 
700 /**
701  * @brief Spinel data type description for nrf_802154_test_mode_csmaca_backoff_get.
702  */
703 #define SPINEL_DATATYPE_NRF_802154_TEST_MODE_CSMACA_BACKOFF_GET     SPINEL_DATATYPE_NULL_S
704 
705 /**
706  * @brief Spinel data type description for nrf_802154_test_mode_csmaca_backoff_get result.
707  */
708 #define SPINEL_DATATYPE_NRF_802154_TEST_MODE_CSMACA_BACKOFF_GET_RET SPINEL_DATATYPE_UINT8_S
709 
710 /**
711  * @brief Spinel data type description for nrf_802154_transmit_at_metadata_t.
712  */
713 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_METADATA_S                  \
714     SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S /* frame_props */ \
715     SPINEL_DATATYPE_BOOL_S                               /* cca */         \
716     SPINEL_DATATYPE_UINT8_S                              /* channel */     \
717     SPINEL_DATATYPE_NRF_802154_TX_POWER_METADATA_S       /* tx_power */    \
718     SPINEL_DATATYPE_UINT8_S                              /* extra_cca_attempts */
719 
720 /**
721  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_METADATA_S data type.
722  */
723 #define NRF_802154_TRANSMIT_AT_METADATA_ENCODE(tx_at_metadata)               \
724     NRF_802154_TRANSMITTED_FRAME_PROPS_ENCODE((tx_at_metadata).frame_props), \
725     ((tx_at_metadata).cca),                                                  \
726     ((tx_at_metadata).channel),                                              \
727     NRF_802154_TX_POWER_METADATA_ENCODE((tx_at_metadata).tx_power),          \
728     ((tx_at_metadata).extra_cca_attempts)
729 
730 /**
731  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_METADATA_S data type.
732  */
733 #define NRF_802154_TRANSMIT_AT_METADATA_DECODE(tx_at_metadata)               \
734     NRF_802154_TRANSMITTED_FRAME_PROPS_DECODE((tx_at_metadata).frame_props), \
735     (&(tx_at_metadata).cca),                                                 \
736     (&(tx_at_metadata).channel),                                             \
737     NRF_802154_TX_POWER_METADATA_DECODE((tx_at_metadata).tx_power),          \
738     (&(tx_at_metadata).extra_cca_attempts)
739 
740 /**
741  * @brief Spinel data type description for nrf_802154_cca_cfg_t.
742  */
743 #define SPINEL_DATATYPE_NRF_802154_CCA_CFG_S     \
744     SPINEL_DATATYPE_UINT8_S /* mode */           \
745     SPINEL_DATATYPE_UINT8_S /* ed_threshold */   \
746     SPINEL_DATATYPE_UINT8_S /* corr_threshold */ \
747     SPINEL_DATATYPE_UINT8_S /* corr_limit */
748 
749 /**
750  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_CCA_CFG_S data type.
751  */
752 #define NRF_802154_CCA_CFG_ENCODE(cca_cfg) \
753     ((cca_cfg).mode), ((cca_cfg).ed_threshold), ((cca_cfg).corr_threshold), ((cca_cfg).corr_limit)
754 
755 /**
756  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_CCA_CFG_S data type.
757  */
758 #define NRF_802154_CCA_CFG_DECODE(cca_cfg) \
759     (&(cca_cfg).mode),                     \
760     (&(cca_cfg).ed_threshold),             \
761     (&(cca_cfg).corr_threshold),           \
762     (&(cca_cfg).corr_limit)
763 
764 /**
765  * @brief Spinel data type description for nrf_802154_stat_timestamps_t
766  */
767 #define SPINEL_DATATYPE_NRF_802154_STAT_TIMESTAMPS_S \
768     SPINEL_DATATYPE_UINT64_S                         \
769     SPINEL_DATATYPE_UINT64_S                         \
770     SPINEL_DATATYPE_UINT64_S                         \
771     SPINEL_DATATYPE_UINT64_S                         \
772     SPINEL_DATATYPE_UINT64_S                         \
773     SPINEL_DATATYPE_UINT64_S
774 
775 /**
776  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_STAT_TIMESTAMPS_S data type.
777  */
778 #define NRF_802154_STAT_TIMESTAMPS_ENCODE(stat_timestamps) \
779     ((stat_timestamps).last_csmaca_start_timestamp),       \
780     ((stat_timestamps).last_cca_start_timestamp),          \
781     ((stat_timestamps).last_cca_idle_timestamp),           \
782     ((stat_timestamps).last_tx_end_timestamp),             \
783     ((stat_timestamps).last_ack_end_timestamp),            \
784     ((stat_timestamps).last_rx_end_timestamp)
785 
786 /**
787  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_STAT_TIMESTAMPS_S data type.
788  */
789 #define NRF_802154_STAT_TIMESTAMPS_DECODE(stat_timestamps) \
790     (&(stat_timestamps).last_csmaca_start_timestamp),      \
791     (&(stat_timestamps).last_cca_start_timestamp),         \
792     (&(stat_timestamps).last_cca_idle_timestamp),          \
793     (&(stat_timestamps).last_tx_end_timestamp),            \
794     (&(stat_timestamps).last_ack_end_timestamp),           \
795     (&(stat_timestamps).last_rx_end_timestamp)
796 
797 /**
798  * @brief Spinel data type description for SPINEL_PROP_LAST_STATUS.
799  */
800 #define SPINEL_DATATYPE_SPINEL_PROP_LAST_STATUS      SPINEL_DATATYPE_UINT_PACKED_S
801 
802 /**
803  * @brief Spinel data type description for nrf_802154_sleep.
804  */
805 #define SPINEL_DATATYPE_NRF_802154_SLEEP             SPINEL_DATATYPE_NULL_S
806 
807 /**
808  * @brief Spinel data type description for nrf_802154_sleep result.
809  */
810 #define SPINEL_DATATYPE_NRF_802154_SLEEP_RET         SPINEL_DATATYPE_BOOL_S
811 
812 /**
813  * @brief Spinel data type description for nrf_802154_sleep_if_idle.
814  */
815 #define SPINEL_DATATYPE_NRF_802154_SLEEP_IF_IDLE     SPINEL_DATATYPE_NULL_S
816 
817 /**
818  * @brief Spinel data type description for nrf_802154_sleep_if_idle result.
819  */
820 #define SPINEL_DATATYPE_NRF_802154_SLEEP_IF_IDLE_RET SPINEL_DATATYPE_UINT8_S
821 
822 /**
823  * @brief Spinel data type description for nrf_802154_receive.
824  */
825 #define SPINEL_DATATYPE_NRF_802154_RECEIVE           SPINEL_DATATYPE_NULL_S
826 
827 /**
828  * @brief Spinel data type description for nrf_802154_receive result.
829  */
830 #define SPINEL_DATATYPE_NRF_802154_RECEIVE_RET       SPINEL_DATATYPE_BOOL_S
831 
832 /**
833  * @brief Spinel data type description for nrf_802154_receive_at.
834  */
835 #define SPINEL_DATATYPE_NRF_802154_RECEIVE_AT \
836     SPINEL_DATATYPE_UINT64_S /* rx_time */    \
837     SPINEL_DATATYPE_UINT32_S /* timeout */    \
838     SPINEL_DATATYPE_UINT8_S  /* channel */    \
839     SPINEL_DATATYPE_UINT32_S /* window id */  \
840 
841 /**
842  * @brief Spinel data type description for nrf_802154_receive_at result.
843  */
844 #define SPINEL_DATATYPE_NRF_802154_RECEIVE_AT_RET          SPINEL_DATATYPE_BOOL_S
845 
846 /**
847  * @brief Spinel data type description for nrf_802154_receive_at_cancel.
848  */
849 #define SPINEL_DATATYPE_NRF_802154_RECEIVE_AT_CANCEL       SPINEL_DATATYPE_UINT32_S
850 
851 /**
852  * @brief Spinel data type description for nrf_802154_receive_at_cancel result.
853  */
854 #define SPINEL_DATATYPE_NRF_802154_RECEIVE_AT_CANCEL_RET   SPINEL_DATATYPE_BOOL_S
855 
856 /**
857  * @brief Spinel data type description for nrf_802154_pan_id_set.
858  */
859 #define SPINEL_DATATYPE_NRF_802154_PAN_ID_SET              SPINEL_DATATYPE_DATA_S
860 
861 /**
862  * @brief Spinel data type description for nrf_802154_short_address_set.
863  */
864 #define SPINEL_DATATYPE_NRF_802154_SHORT_ADDRESS_SET       SPINEL_DATATYPE_DATA_S
865 
866 /**
867  * @brief Spinel data type description for nrf_802154_extended_address_set.
868  */
869 #define SPINEL_DATATYPE_NRF_802154_EXTENDED_ADDRESS_SET    SPINEL_DATATYPE_DATA_S
870 
871 /**
872  * @brief Spinel data type description for nrf_802154_pan_coord_set.
873  */
874 #define SPINEL_DATATYPE_NRF_802154_PAN_COORD_SET           SPINEL_DATATYPE_BOOL_S
875 
876 /**
877  * @brief Spinel data type description for nrf_802154_pan_coord_get result.
878  */
879 #define SPINEL_DATATYPE_NRF_802154_PAN_COORD_GET_RET       SPINEL_DATATYPE_BOOL_S
880 
881 /**
882  * @brief Spinel data type description for nrf_802154_pan_coord_get.
883  */
884 #define SPINEL_DATATYPE_NRF_802154_PAN_COORD_GET           SPINEL_DATATYPE_NULL_S
885 
886 /**
887  * @brief Spinel data type description for nrf_802154_promiscuous_set.
888  */
889 #define SPINEL_DATATYPE_NRF_802154_PROMISCUOUS_SET         SPINEL_DATATYPE_BOOL_S
890 
891 /**
892  * @brief Spinel data type description for nrf_802154_rx_on_when_idle_set.
893  */
894 #define SPINEL_DATATYPE_NRF_802154_RX_ON_WHEN_IDLE_SET     SPINEL_DATATYPE_BOOL_S
895 
896 /**
897  * @brief Spinel data type description for nrf_802154_cca.
898  */
899 #define SPINEL_DATATYPE_NRF_802154_CCA                     SPINEL_DATATYPE_NULL_S
900 
901 /**
902  * @brief Spinel data type description for nrf_802154_cca result.
903  */
904 #define SPINEL_DATATYPE_NRF_802154_CCA_RET                 SPINEL_DATATYPE_BOOL_S
905 
906 /**
907  * @brief Spinel data type description for nrf_802154_cca_done.
908  */
909 #define SPINEL_DATATYPE_NRF_802154_CCA_DONE                SPINEL_DATATYPE_BOOL_S
910 
911 /**
912  * @brief Spinel data type description for nrf_802154_cca_failed.
913  */
914 #define SPINEL_DATATYPE_NRF_802154_CCA_FAILED              SPINEL_DATATYPE_UINT8_S
915 
916 /**
917  * @brief Spinel data type description for nrf_802154_energy_detection.
918  */
919 #define SPINEL_DATATYPE_NRF_802154_ENERGY_DETECTION        SPINEL_DATATYPE_UINT32_S
920 
921 /**
922  * @brief Spinel data type description for nrf_802154_energy_detection result.
923  */
924 #define SPINEL_DATATYPE_NRF_802154_ENERGY_DETECTION_RET    SPINEL_DATATYPE_BOOL_S
925 
926 /**
927  * @brief Spinel data type description for nrf_802154_energy_detected.
928  */
929 #define SPINEL_DATATYPE_NRF_802154_ENERGY_DETECTED         SPINEL_DATATYPE_INT8_S
930 
931 /**
932  * @brief Spinel data type description for nrf_802154_energy_detection_failed.
933  */
934 #define SPINEL_DATATYPE_NRF_802154_ENERGY_DETECTION_FAILED SPINEL_DATATYPE_UINT8_S
935 
936 /**
937  * @brief Spinel data type description for nrf_802154_continuous_carrier.
938  */
939 #define SPINEL_DATATYPE_NRF_802154_CONTINUOUS_CARRIER      SPINEL_DATATYPE_NULL_S
940 
941 /**
942  * @brief Spinel data type description for nrf_802154_nrf_802154_continuous_carrier result.
943  */
944 #define SPINEL_DATATYPE_NRF_802154_CONTINUOUS_CARRIER_RET  SPINEL_DATATYPE_BOOL_S
945 
946 /**
947  * @brief Spinel data type description for nrf_802154_modulated_carrier.
948  */
949 #define SPINEL_DATATYPE_NRF_802154_MODULATED_CARRIER       SPINEL_DATATYPE_DATA_S
950 
951 /**
952  * @brief Spinel data type description for nrf_802154_nrf_802154_modulated_carrier result.
953  */
954 #define SPINEL_DATATYPE_NRF_802154_MODULATED_CARRIER_RET   SPINEL_DATATYPE_BOOL_S
955 
956 /**
957  * @brief Spinel data type description for nrf_802154_tx_power_get.
958  */
959 #define SPINEL_DATATYPE_NRF_802154_TX_POWER_GET            SPINEL_DATATYPE_NULL_S
960 
961 /**
962  * @brief Spinel data type description for nrf_802154_tx_power_get result.
963  */
964 #define SPINEL_DATATYPE_NRF_802154_TX_POWER_GET_RET        SPINEL_DATATYPE_INT8_S
965 
966 /**
967  * @brief Spinel data type description for nrf_802154_tx_power_set.
968  */
969 #define SPINEL_DATATYPE_NRF_802154_TX_POWER_SET            SPINEL_DATATYPE_INT8_S
970 
971 /**
972  * @brief Spinel data type description for nrf_802154_received_timestamp_raw
973  */
974 #define SPINEL_DATATYPE_NRF_802154_RECEIVED_TIMESTAMP_RAW   \
975     SPINEL_DATATYPE_NRF_802154_HDATA_S /* Received frame */ \
976     SPINEL_DATATYPE_INT8_S             /* Power */          \
977     SPINEL_DATATYPE_UINT8_S            /* lqi */            \
978     SPINEL_DATATYPE_UINT64_S           /* timestamp */
979 
980 /**
981  * @brief Spinel data type description for nrf_802154_receive_failed
982  */
983 #define SPINEL_DATATYPE_NRF_802154_RECEIVE_FAILED \
984     SPINEL_DATATYPE_UINT8_S  /* error */          \
985     SPINEL_DATATYPE_UINT32_S /* id */
986 
987 /**
988  * @brief Spinel data type description for nrf_802154_tx_ack_started
989  */
990 #define SPINEL_DATATYPE_NRF_802154_TX_ACK_STARTED \
991     SPINEL_DATATYPE_DATA_S /* Transmitted ACK */
992 
993 /**
994  * @brief Spinel data type description for nrf_802154_buffer_free_raw
995  */
996 #define SPINEL_DATATYPE_NRF_802154_BUFFER_FREE_RAW \
997     SPINEL_DATATYPE_UINT32_S /* Handle to buffer to free */
998 
999 /**
1000  * @brief Spinel data type description for nrf_802154_transmit_raw
1001  */
1002 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_RAW    \
1003     SPINEL_DATATYPE_NRF_802154_TRANSMIT_METADATA_S \
1004     SPINEL_DATATYPE_NRF_802154_HDATA_S /* Frame to transmit with its handle */
1005 
1006 /**
1007  * @brief Spinel data type description for return value of nrf_802154_transmit_raw
1008  */
1009 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_RAW_RET               SPINEL_DATATYPE_BOOL_S
1010 
1011 /**
1012  * @brief Spinel data type description for return value of nrf_802154_transmit_csma_ca_raw
1013  */
1014 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_CSMA_CA_RAW_RET       SPINEL_DATATYPE_BOOL_S
1015 
1016 /**
1017  * @brief Spinel data type description for return value of nrf_802154_transmit_raw_at
1018  */
1019 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_RAW_AT_RET            SPINEL_DATATYPE_BOOL_S
1020 
1021 /**
1022  * @brief Spinel data type description for return value of nrf_802154_transmit_at_cancel
1023  */
1024 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_CANCEL_RET         SPINEL_DATATYPE_BOOL_S
1025 
1026 /**
1027  * @brief Spinel data type description for nrf_802154_auto_pending_bit_set.
1028  */
1029 #define SPINEL_DATATYPE_NRF_802154_AUTO_PENDING_BIT_SET           SPINEL_DATATYPE_BOOL_S
1030 
1031 /**
1032  * @brief Spinel data type description for nrf_802154_pending_bit_for_addr_set.
1033  *
1034  * SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
1035  */
1036 #define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_SET       SPINEL_DATATYPE_DATA_S
1037 
1038 /**
1039  * @brief Spinel data type description for nrf_802154_pending_bit_for_addr_set return value.
1040  */
1041 #define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_SET_RET   SPINEL_DATATYPE_BOOL_S
1042 
1043 /**
1044  * @brief Spinel data type description for nrf_802154_pending_bit_for_addr_clear.
1045  *
1046  * SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
1047  */
1048 #define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_CLEAR     SPINEL_DATATYPE_DATA_S
1049 
1050 /**
1051  * @brief Spinel data type description for nrf_802154_pending_bit_for_addr_set return value.
1052  */
1053 #define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_CLEAR_RET SPINEL_DATATYPE_BOOL_S
1054 
1055 /**
1056  * @brief Spinel data type description for nrf_802154_pending_bit_for_addr_reset.
1057  */
1058 #define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_RESET     SPINEL_DATATYPE_BOOL_S
1059 
1060 /**
1061  * @brief Spinel data type description for nrf_802154_src_addr_matching_method_set.
1062  */
1063 #define SPINEL_DATATYPE_NRF_802154_SRC_ADDR_MATCHING_METHOD_SET   SPINEL_DATATYPE_UINT8_S
1064 
1065 /**
1066  * @brief Spinel data type description for nrf_802154_ack_data_set.
1067  *
1068  * SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
1069  */
1070 #define SPINEL_DATATYPE_NRF_802154_ACK_DATA_SET        \
1071     SPINEL_DATATYPE_DATA_WLEN_S /* Address */          \
1072     SPINEL_DATATYPE_DATA_WLEN_S /* Data to be set */   \
1073     SPINEL_DATATYPE_UINT8_S     /* Type of the data */ \
1074 
1075 /**
1076  * @brief Spinel data type description for nrf_802154_ack_data_set return value.
1077  */
1078 #define SPINEL_DATATYPE_NRF_802154_ACK_DATA_SET_RET SPINEL_DATATYPE_BOOL_S
1079 
1080 /**
1081  * @brief Spinel data type description for nrf_802154_ack_data_clear.
1082  *
1083  * SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
1084  */
1085 #define SPINEL_DATATYPE_NRF_802154_ACK_DATA_CLEAR \
1086     SPINEL_DATATYPE_DATA_WLEN_S /* Address */     \
1087     SPINEL_DATATYPE_UINT8_S     /* Type of the data */
1088 
1089 /**
1090  * @brief Spinel data type description for nrf_802154_ack_data_clear return value.
1091  */
1092 #define SPINEL_DATATYPE_NRF_802154_ACK_DATA_CLEAR_RET SPINEL_DATATYPE_BOOL_S
1093 
1094 /**
1095  * @brief Spinel data type description for nrf_802154_ack_data_remove_all.
1096  */
1097 #define SPINEL_DATATYPE_NRF_802154_ACK_DATA_REMOVE_ALL   \
1098     SPINEL_DATATYPE_BOOL_S  /* Extended/short address */ \
1099     SPINEL_DATATYPE_UINT8_S /* Type of the data */
1100 
1101 /**
1102  * @brief Spinel data type description for nrf_802154_transmit_csma_ca_raw.
1103  */
1104 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_CSMA_CA_RAW    \
1105     SPINEL_DATATYPE_NRF_802154_TRANSMIT_CSMA_CA_METADATA_S \
1106     SPINEL_DATATYPE_NRF_802154_HDATA_S /* Frame to transmit with its handle */
1107 
1108 /**
1109  * @brief Spinel data type description for nrf_802154_transmit_raw_at
1110  */
1111 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_RAW_AT    \
1112     SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_METADATA_S \
1113     SPINEL_DATATYPE_UINT64_S           /* tx_time */  \
1114     SPINEL_DATATYPE_NRF_802154_HDATA_S /* Frame to transmit with its handle */
1115 
1116 /**
1117  * @brief Spinel data type description for nrf_802154_sleep.
1118  */
1119 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_CANCEL SPINEL_DATATYPE_NULL_S
1120 
1121 /**
1122  * @brief Spinel data type description for nrf_802154_transmit_done_metadata.
1123  */
1124 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_DONE_METADATA_S                \
1125     SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S /* Frame props */ \
1126     SPINEL_DATATYPE_UINT8_S                              /* Length */      \
1127     SPINEL_DATATYPE_INT8_S                               /* Power */       \
1128     SPINEL_DATATYPE_UINT8_S                              /* LQI */         \
1129     SPINEL_DATATYPE_UINT64_S                             /* Timestamp */   \
1130     SPINEL_DATATYPE_NRF_802154_HDATA_S                   /* Ack frame with its handle */
1131 
1132 /**
1133  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_DONE_METADATA_S data type.
1134  *
1135  * @param[in]  metadata    Transmit done metadata structure to be decoded.
1136  * @param[in]  ack_handle  Variable containing handle to remote ack frame.
1137  */
1138 #define NRF_802154_TRANSMIT_DONE_METADATA_ENCODE(metadata, ack_handle) \
1139     NRF_802154_TRANSMITTED_FRAME_PROPS_ENCODE((metadata).frame_props), \
1140     (metadata).data.transmitted.length,                                \
1141     (metadata).data.transmitted.power,                                 \
1142     (metadata).data.transmitted.lqi,                                   \
1143     (metadata).data.transmitted.time,                                  \
1144     NRF_802154_HDATA_ENCODE(ack_handle,                                \
1145                             (metadata).data.transmitted.p_ack,         \
1146                             ((metadata).data.transmitted.p_ack) ?      \
1147                             ((metadata).data.transmitted.p_ack)[0] + 1 : 0)
1148 
1149 /**
1150  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_DONE_METADATA_S data type.
1151  *
1152  * @param[out]  metadata    Transmit done metadata structure to which store decoded data.
1153  * @param[out]  ack_handle  Pointer variable to which store handle of received ACK frame.
1154  * @param[out]  ack_length  Variable to which store length of the decoded ACK with a handle.
1155  */
1156 #define NRF_802154_TRANSMIT_DONE_METADATA_DECODE(metadata, ack_handle, ack_length) \
1157     NRF_802154_TRANSMITTED_FRAME_PROPS_DECODE((metadata).frame_props),             \
1158     &(metadata).data.transmitted.length,                                           \
1159     &(metadata).data.transmitted.power,                                            \
1160     &(metadata).data.transmitted.lqi,                                              \
1161     &(metadata).data.transmitted.time,                                             \
1162     NRF_802154_HDATA_DECODE(ack_handle, (metadata).data.transmitted.p_ack, ack_length)
1163 
1164 /**
1165  * @brief Spinel data type description for nrf_802154_transmit_failed_metadata.
1166  */
1167 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED_METADATA_S \
1168     SPINEL_DATATYPE_NRF_802154_TRANSMITTED_FRAME_PROPS_S /* Frame props */
1169 
1170 /**
1171  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED_METADATA_S data type.
1172  *
1173  * @param[in]  metadata    Transmit failed metadata structure to be encoded.
1174  */
1175 #define NRF_802154_TRANSMIT_FAILED_METADATA_ENCODE(metadata) \
1176     NRF_802154_TRANSMITTED_FRAME_PROPS_ENCODE((metadata).frame_props)
1177 
1178 /**
1179  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED_METADATA_S data type.
1180  *
1181  * @param[out]  metadata    Transmit failed metadata structure to which store decoded data.
1182  */
1183 #define NRF_802154_TRANSMIT_FAILED_METADATA_DECODE(metadata) \
1184     NRF_802154_TRANSMITTED_FRAME_PROPS_DECODE((metadata).frame_props)
1185 
1186 /**
1187  * @brief Spinel data type description for nrf_802154_transmitted_raw.
1188  */
1189 #define SPINEL_DATATYPE_NRF_802154_TRANSMITTED_RAW                                            \
1190     SPINEL_DATATYPE_NRF_802154_HDATA_S                  /* Transmitted frame and its handle*/ \
1191     SPINEL_DATATYPE_NRF_802154_TRANSMIT_DONE_METADATA_S /* Transmit done metadata */
1192 
1193 /**
1194  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMITTED_RAW data type.
1195  *
1196  * @param[in]  frame_handle Variable containing remote frame handle.
1197  * @param[in]  frame_data   Pointer to contents of frame.
1198  * @param[in]  metadata     Transmit done metadata structure to be encoded.
1199  * @param[in]  ack_handle   Variable containing handle to received Ack.
1200  */
1201 #define NRF_802154_TRANSMITTED_RAW_ENCODE(frame_handle, frame_data, metadata, ack_handle) \
1202     NRF_802154_HDATA_ENCODE(frame_handle, frame_data, frame_data[0] + 1),                 \
1203     NRF_802154_TRANSMIT_DONE_METADATA_ENCODE(metadata, ack_handle)
1204 
1205 /**
1206  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMITTED_RAW data type.
1207  *
1208  * @param[out]  frame_handle  Pointer variable to which store handle of transmitted frame.
1209  * @param[out]  frame_data    Pointer to memory to which store contents of transmitted frame.
1210  * @param[out]  frame_length  Variable to which store length of the decoded frame.
1211  * @param[out]  metadata      Transmit done metadata structure to which store decoded data.
1212  * @param[out]  ack_handle    Pointer variable to which store handle of ACK frame.
1213  * @param[out]  ack_length    Variable to which store length of the decoded ACK frame.
1214  */
1215 #define NRF_802154_TRANSMITTED_RAW_DECODE(frame_handle,              \
1216                                           frame_data,                \
1217                                           frame_length,              \
1218                                           metadata,                  \
1219                                           ack_handle,                \
1220                                           ack_length)                \
1221     NRF_802154_HDATA_DECODE(frame_handle, frame_data, frame_length), \
1222     NRF_802154_TRANSMIT_DONE_METADATA_DECODE(metadata, ack_handle, ack_length)
1223 
1224 /**
1225  * @brief Spinel data type description for nrf_802154_transmit_failed.
1226  */
1227 #define SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED                                                                        \
1228     SPINEL_DATATYPE_NRF_802154_HDATA_S                    /* Frame that was attempted to be transmitted and its handle */ \
1229     SPINEL_DATATYPE_UINT8_S                               /* Error code */                                                \
1230     SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED_METADATA_S /* Transmit failed metadata */
1231 
1232 /**
1233  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED data type.
1234  *
1235  * @param[in]  frame_handle Variable containing remote frame handle.
1236  * @param[in]  frame_data   Pointer to contents of frame.
1237  * @param[in]  error_code   Error code to be encoded.
1238  * @param[in]  metadata     Transmit failed metadata structure to be encoded.
1239  */
1240 #define NRF_802154_TRANSMIT_FAILED_ENCODE(frame_handle, frame_data, error_code, metadata) \
1241     NRF_802154_HDATA_ENCODE(frame_handle, frame_data, frame_data[0] + 1),                 \
1242     error_code,                                                                           \
1243     NRF_802154_TRANSMIT_FAILED_METADATA_ENCODE(metadata)
1244 
1245 /**
1246  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_TRANSMIT_FAILED data type.
1247  *
1248  * @param[out]  frame_handle    Pointer variable to which store handle of frame failed to transmit.
1249  * @param[out]  frame_data      Pointer to memory to which store contents of frame failed to transmit.
1250  * @param[out]  frame_length    Variable to which store length of the decoded frame.
1251  * @param[in]   error_code      Variable to which store decode error code.
1252  * @param[out]  metadata        Transmit failed metadata structure to which store decoded data.
1253  */
1254 #define NRF_802154_TRANSMIT_FAILED_DECODE(frame_handle,              \
1255                                           frame_data,                \
1256                                           frame_length,              \
1257                                           error_code,                \
1258                                           metadata)                  \
1259     NRF_802154_HDATA_DECODE(frame_handle, frame_data, frame_length), \
1260     &error_code,                                                     \
1261     NRF_802154_TRANSMIT_FAILED_METADATA_DECODE(metadata)
1262 
1263 /**
1264  * @brief Spinel data type description for nrf_802154_capabilities_get.
1265  */
1266 #define SPINEL_DATATYPE_NRF_802154_CAPABILITIES_GET     SPINEL_DATATYPE_NULL_S
1267 
1268 /**
1269  * @brief Spinel data type description for nrf_802154_capabilities_get_ret.
1270  */
1271 #define SPINEL_DATATYPE_NRF_802154_CAPABILITIES_GET_RET SPINEL_DATATYPE_UINT32_S
1272 
1273 /**
1274  * @brief Spinel data type description for nrf_802154_time_get.
1275  */
1276 #define SPINEL_DATATYPE_NRF_802154_TIME_GET             SPINEL_DATATYPE_NULL_S
1277 
1278 /**
1279  * @brief Spinel data type description for nrf_802154_time_get_ret.
1280  */
1281 #define SPINEL_DATATYPE_NRF_802154_TIME_GET_RET         SPINEL_DATATYPE_UINT64_S
1282 
1283 /**
1284  * @brief Spinel data type description for nrf_802154_cca_cfg_get.
1285  */
1286 #define SPINEL_DATATYPE_NRF_802154_CCA_CFG_GET          SPINEL_DATATYPE_NULL_S
1287 
1288 /**
1289  * @brief Spinel data type description for nrf_802154_cca_cfg_get_ret.
1290  */
1291 #define SPINEL_DATATYPE_NRF_802154_CCA_CFG_GET_RET \
1292     SPINEL_DATATYPE_NRF_802154_CCA_CFG_S
1293 
1294 /**
1295  * @brief Spinel data type description for nrf_802154_cca_cfg_get.
1296  */
1297 #define SPINEL_DATATYPE_NRF_802154_CCA_CFG_SET \
1298     SPINEL_DATATYPE_NRF_802154_CCA_CFG_S
1299 
1300 /**
1301  * @brief Spinel data type description for nrf_802154_security_global_frame_counter_set.
1302  */
1303 #define SPINEL_DATATYPE_NRF_802154_SECURITY_GLOBAL_FRAME_COUNTER_SET SPINEL_DATATYPE_UINT32_S
1304 
1305 /**
1306  * @brief Spinel data type description for nrf_802154_security_key_store.
1307  */
1308 #define SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_STORE \
1309     SPINEL_DATATYPE_STRUCT_S(                         \
1310         SPINEL_DATATYPE_DATA_S  /* Key value */       \
1311                             )                         \
1312     SPINEL_DATATYPE_STRUCT_S(                         \
1313         SPINEL_DATATYPE_UINT8_S /* Key mode */        \
1314         SPINEL_DATATYPE_DATA_S  /* Key ID */          \
1315                             )                         \
1316     SPINEL_DATATYPE_UINT32_S    /* Key type */        \
1317     SPINEL_DATATYPE_UINT32_S    /* Frame counter */   \
1318     SPINEL_DATATYPE_BOOL_S      /* Whether to use global frame counter */
1319 
1320 /**
1321  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_STORE data type.
1322  *
1323  * @param[in]  key          Key structure (of @ref nrf_802154_key_t type) to be encoded.
1324  * @param[in]  key_size     Size of the key data, i.e. cleartext size.
1325  * @param[in]  key_id_size  Size of the key id in @p key structure.
1326  */
1327 #define NRF_802154_SECURITY_KEY_STORE_ENCODE(key, key_size, key_id_size) \
1328     (key).value.p_cleartext_key,                                         \
1329     (key_size),                                                          \
1330     (key).id.mode,                                                       \
1331     (key).id.p_key_id,                                                   \
1332     (key_id_size),                                                       \
1333     (key).type,                                                          \
1334     (key).frame_counter,                                                 \
1335     (key).use_global_frame_counter
1336 
1337 /**
1338  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_STORE data type.
1339  *
1340  * @param[out]  key          Key structure (of @ref nrf_802154_key_t type) to which store decoded data.
1341  * @param[out]  key_size     Variable to which store size of the decoded key, i.e. cleartext size.
1342  * @param[out]  key_id_size  Variable to which store size of the decoded key ID.
1343  */
1344 #define NRF_802154_SECURITY_KEY_STORE_DECODE(key, key_size, key_id_size) \
1345     & (key).value.p_cleartext_key,                                       \
1346     &(key_size),                                                         \
1347     &(key).id.mode,                                                      \
1348     &(key).id.p_key_id,                                                  \
1349     &(key_id_size),                                                      \
1350     &(key).type,                                                         \
1351     &(key).frame_counter,                                                \
1352     &(key).use_global_frame_counter
1353 
1354 /**
1355  * @brief Spinel data type description for nrf_802154_security_key_remove.
1356  */
1357 #define SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_REMOVE \
1358     SPINEL_DATATYPE_STRUCT_S(                          \
1359         SPINEL_DATATYPE_UINT8_S /* Key mode */         \
1360         SPINEL_DATATYPE_DATA_S  /* Key ID */           \
1361                             )
1362 
1363 /**
1364  * @brief Encodes an instance of @ref SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_REMOVE data type.
1365  *
1366  * @param[in]  key_id       Key ID structure (of @ref nrf_802154_key_id_t type) to be encoded.
1367  * @param[in]  key_id_size  Size of the key id in @p key_id structure.
1368  */
1369 #define NRF_802154_SECURITY_KEY_REMOVE_ENCODE(key_id, key_id_size) \
1370     (key_id).mode,                                                 \
1371     (key_id).p_key_id,                                             \
1372     (key_id_size)
1373 
1374 /**
1375  * @brief Decodes an instance of @ref SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_STORE data type.
1376  *
1377  * @param[out]  key_id       Key ID structure (of @ref nrf_802154_key_id_t type) to which store decoded data.
1378  * @param[out]  key_id_size  Variable to which store size of the decoded key ID.
1379  */
1380 #define NRF_802154_SECURITY_KEY_REMOVE_DECODE(key_id, key_id_size) \
1381     & (key_id).mode,                                               \
1382     &(key_id).p_key_id,                                            \
1383     &(key_id_size)
1384 
1385 /**
1386  * @brief Spinel data type description for nrf_802154_security_key_remove_all.
1387  */
1388 #define SPINEL_DATATYPE_NRF_802154_SECURITY_KEY_REMOVE_ALL    SPINEL_DATATYPE_NULL_S
1389 
1390 /**
1391  * @brief Spinel data type description for return type for security commands.
1392  */
1393 #define SPINEL_DATATYPE_NRF_802154_SECURITY_ERROR_RET         SPINEL_DATATYPE_UINT8_S
1394 
1395 /**
1396  * @brief Spinel data type description for nrf_802154_csl_writer_period_set.
1397  */
1398 #define SPINEL_DATATYPE_NRF_802154_CSL_WRITER_PERIOD_SET      SPINEL_DATATYPE_UINT16_S
1399 
1400 /**
1401  * @brief Spinel data type description for nrf_802154_csl_writer_anchor_time_set.
1402  */
1403 #define SPINEL_DATATYPE_NRF_802154_CSL_WRITER_ANCHOR_TIME_SET SPINEL_DATATYPE_UINT64_S
1404 
1405 /**
1406  * @brief Spinel data type description for nrf_802154_stat_timestamps_get
1407  */
1408 #define SPINEL_DATATYPE_NRF_802154_STAT_TIMESTAMPS_GET        SPINEL_DATATYPE_NULL_S
1409 
1410 /**
1411  * @brief Spinel data type description for nrf_802154_stat_timestamps_get_ret.
1412  */
1413 #define SPINEL_DATATYPE_NRF_802154_STAT_TIMESTAMPS_GET_RET \
1414     SPINEL_DATATYPE_NRF_802154_STAT_TIMESTAMPS_S
1415 
1416 /**
1417  * @brief Spinel data type description for nrf_802154_ifs_mode_get
1418  */
1419 #define SPINEL_DATATYPE_NRF_802154_IFS_MODE_GET                SPINEL_DATATYPE_NULL_S
1420 
1421 /**
1422  * @brief Spinel data type description for returning ifs_mode value.
1423  */
1424 #define SPINEL_DATATYPE_NRF_802154_IFS_MODE_GET_RET            SPINEL_DATATYPE_UINT8_S
1425 
1426 /**
1427  * @brief Spinel data type description for nrf_802154_ifs_mode_set
1428  */
1429 #define SPINEL_DATATYPE_NRF_802154_IFS_MODE_SET                SPINEL_DATATYPE_UINT8_S
1430 
1431 /**
1432  * @brief Spinel data type description for nrf_802154_ifs_mode_set result.
1433  */
1434 #define SPINEL_DATATYPE_NRF_802154_IFS_MODE_SET_RET            SPINEL_DATATYPE_BOOL_S
1435 
1436 /**
1437  * @brief Spinel data type description for nrf_802154_ifs_min_sifs_period_get
1438  */
1439 #define SPINEL_DATATYPE_NRF_802154_IFS_MIN_SIFS_PERIOD_GET     SPINEL_DATATYPE_NULL_S
1440 
1441 /**
1442  * @brief Spinel data type description for returning min_sifs_period value.
1443  */
1444 #define SPINEL_DATATYPE_NRF_802154_IFS_MIN_SIFS_PERIOD_GET_RET SPINEL_DATATYPE_UINT16_S
1445 
1446 /**
1447  * @brief Spinel data type description for nrf_802154_ifs_min_sifs_period_set
1448  */
1449 #define SPINEL_DATATYPE_NRF_802154_IFS_MIN_SIFS_PERIOD_SET     SPINEL_DATATYPE_UINT16_S
1450 
1451 /**
1452  * @brief Spinel data type description for nrf_802154_ifs_min_lifs_period_get
1453  */
1454 #define SPINEL_DATATYPE_NRF_802154_IFS_MIN_LIFS_PERIOD_GET     SPINEL_DATATYPE_NULL_S
1455 
1456 /**
1457  * @brief Spinel data type description for returning min_lifs_period value.
1458  */
1459 #define SPINEL_DATATYPE_NRF_802154_IFS_MIN_LIFS_PERIOD_GET_RET SPINEL_DATATYPE_UINT16_S
1460 
1461 /**
1462  * @brief Spinel data type description for nrf_802154_ifs_min_lifs_period_set
1463  */
1464 #define SPINEL_DATATYPE_NRF_802154_IFS_MIN_LIFS_PERIOD_SET     SPINEL_DATATYPE_UINT16_S
1465 
1466 #ifdef __cplusplus
1467 }
1468 #endif
1469 
1470 #endif /* NRF_802154_SPINEL_DATATYPES_H_ */
1471 
1472 /** @} */
1473