|
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