|
21 | 21 | #include <net/net_if.h>
|
22 | 22 | #include <net/net_pkt.h>
|
23 | 23 |
|
| 24 | +#if defined(CONFIG_NET_L2_OPENTHREAD) |
| 25 | +#include <net/openthread.h> |
| 26 | +#endif |
| 27 | + |
24 | 28 | #include <misc/byteorder.h>
|
25 | 29 | #include <string.h>
|
26 | 30 | #include <random/rand32.h>
|
@@ -90,7 +94,9 @@ static void nrf5_rx_thread(void *arg1, void *arg2, void *arg3)
|
90 | 94 | * The last 2 bytes contain LQI or FCS, depending if
|
91 | 95 | * automatic CRC handling is enabled or not, respectively.
|
92 | 96 | */
|
93 |
| - if (IS_ENABLED(CONFIG_IEEE802154_RAW_MODE)) { |
| 97 | + if (IS_ENABLED(CONFIG_IEEE802154_RAW_MODE) || |
| 98 | + IS_ENABLED(CONFIG_NET_L2_OPENTHREAD)) { |
| 99 | + |
94 | 100 | pkt_len = nrf5_radio->rx_psdu[0];
|
95 | 101 | } else {
|
96 | 102 | pkt_len = nrf5_radio->rx_psdu[0] - NRF5_FCS_LENGTH;
|
@@ -423,20 +429,30 @@ static struct ieee802154_radio_api nrf5_radio_api = {
|
423 | 429 | .tx = nrf5_tx,
|
424 | 430 | };
|
425 | 431 |
|
426 |
| -#if defined(CONFIG_IEEE802154_RAW_MODE) |
427 |
| -DEVICE_AND_API_INIT(nrf5_154_radio, CONFIG_IEEE802154_NRF5_DRV_NAME, |
428 |
| - nrf5_init, &nrf5_data, &nrf5_radio_cfg, |
429 |
| - POST_KERNEL, CONFIG_IEEE802154_NRF5_INIT_PRIO, |
430 |
| - &nrf5_radio_api); |
431 |
| -#else |
| 432 | +#if defined(CONFIG_NET_L2_IEEE802154) |
| 433 | +#define L2 IEEE802154_L2 |
| 434 | +#define L2_CTX_TYPE NET_L2_GET_CTX_TYPE(IEEE802154_L2) |
| 435 | +#define MTU 125 |
| 436 | +#elif defined(CONFIG_NET_L2_OPENTHREAD) |
| 437 | +#define L2 OPENTHREAD_L2 |
| 438 | +#define L2_CTX_TYPE NET_L2_GET_CTX_TYPE(OPENTHREAD_L2) |
| 439 | +#define MTU 1280 |
| 440 | +#endif |
| 441 | + |
| 442 | +#if defined(CONFIG_NET_L2_IEEE802154) || defined(CONFIG_NET_L2_OPENTHREAD) |
432 | 443 | NET_DEVICE_INIT(nrf5_154_radio, CONFIG_IEEE802154_NRF5_DRV_NAME,
|
433 | 444 | nrf5_init, &nrf5_data, &nrf5_radio_cfg,
|
434 | 445 | CONFIG_IEEE802154_NRF5_INIT_PRIO,
|
435 |
| - &nrf5_radio_api, IEEE802154_L2, |
436 |
| - NET_L2_GET_CTX_TYPE(IEEE802154_L2), 125); |
| 446 | + &nrf5_radio_api, L2, |
| 447 | + L2_CTX_TYPE, MTU); |
437 | 448 |
|
438 | 449 | NET_STACK_INFO_ADDR(RX, nrf5_154_radio,
|
439 | 450 | CONFIG_IEEE802154_NRF5_RX_STACK_SIZE,
|
440 | 451 | CONFIG_IEEE802154_NRF5_RX_STACK_SIZE,
|
441 | 452 | nrf5_data.rx_stack, 0);
|
| 453 | +#else |
| 454 | +DEVICE_AND_API_INIT(nrf5_154_radio, CONFIG_IEEE802154_NRF5_DRV_NAME, |
| 455 | + nrf5_init, &nrf5_data, &nrf5_radio_cfg, |
| 456 | + POST_KERNEL, CONFIG_IEEE802154_NRF5_INIT_PRIO, |
| 457 | + &nrf5_radio_api); |
442 | 458 | #endif
|
0 commit comments