18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __CFG802154_RDEV_OPS 38c2ecf20Sopenharmony_ci#define __CFG802154_RDEV_OPS 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <net/cfg802154.h> 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include "core.h" 88c2ecf20Sopenharmony_ci#include "trace.h" 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cistatic inline struct net_device * 118c2ecf20Sopenharmony_cirdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, 128c2ecf20Sopenharmony_ci const char *name, 138c2ecf20Sopenharmony_ci unsigned char name_assign_type, 148c2ecf20Sopenharmony_ci int type) 158c2ecf20Sopenharmony_ci{ 168c2ecf20Sopenharmony_ci return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name, 178c2ecf20Sopenharmony_ci name_assign_type, type); 188c2ecf20Sopenharmony_ci} 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistatic inline void 218c2ecf20Sopenharmony_cirdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, 228c2ecf20Sopenharmony_ci struct net_device *dev) 238c2ecf20Sopenharmony_ci{ 248c2ecf20Sopenharmony_ci rdev->ops->del_virtual_intf_deprecated(&rdev->wpan_phy, dev); 258c2ecf20Sopenharmony_ci} 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_cistatic inline int 288c2ecf20Sopenharmony_cirdev_suspend(struct cfg802154_registered_device *rdev) 298c2ecf20Sopenharmony_ci{ 308c2ecf20Sopenharmony_ci int ret; 318c2ecf20Sopenharmony_ci trace_802154_rdev_suspend(&rdev->wpan_phy); 328c2ecf20Sopenharmony_ci ret = rdev->ops->suspend(&rdev->wpan_phy); 338c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 348c2ecf20Sopenharmony_ci return ret; 358c2ecf20Sopenharmony_ci} 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_cistatic inline int 388c2ecf20Sopenharmony_cirdev_resume(struct cfg802154_registered_device *rdev) 398c2ecf20Sopenharmony_ci{ 408c2ecf20Sopenharmony_ci int ret; 418c2ecf20Sopenharmony_ci trace_802154_rdev_resume(&rdev->wpan_phy); 428c2ecf20Sopenharmony_ci ret = rdev->ops->resume(&rdev->wpan_phy); 438c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 448c2ecf20Sopenharmony_ci return ret; 458c2ecf20Sopenharmony_ci} 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_cistatic inline int 488c2ecf20Sopenharmony_cirdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name, 498c2ecf20Sopenharmony_ci unsigned char name_assign_type, 508c2ecf20Sopenharmony_ci enum nl802154_iftype type, __le64 extended_addr) 518c2ecf20Sopenharmony_ci{ 528c2ecf20Sopenharmony_ci int ret; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type, 558c2ecf20Sopenharmony_ci extended_addr); 568c2ecf20Sopenharmony_ci ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, 578c2ecf20Sopenharmony_ci name_assign_type, type, 588c2ecf20Sopenharmony_ci extended_addr); 598c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 608c2ecf20Sopenharmony_ci return ret; 618c2ecf20Sopenharmony_ci} 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_cistatic inline int 648c2ecf20Sopenharmony_cirdev_del_virtual_intf(struct cfg802154_registered_device *rdev, 658c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev) 668c2ecf20Sopenharmony_ci{ 678c2ecf20Sopenharmony_ci int ret; 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev); 708c2ecf20Sopenharmony_ci ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev); 718c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 728c2ecf20Sopenharmony_ci return ret; 738c2ecf20Sopenharmony_ci} 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_cistatic inline int 768c2ecf20Sopenharmony_cirdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel) 778c2ecf20Sopenharmony_ci{ 788c2ecf20Sopenharmony_ci int ret; 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel); 818c2ecf20Sopenharmony_ci ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel); 828c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 838c2ecf20Sopenharmony_ci return ret; 848c2ecf20Sopenharmony_ci} 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_cistatic inline int 878c2ecf20Sopenharmony_cirdev_set_cca_mode(struct cfg802154_registered_device *rdev, 888c2ecf20Sopenharmony_ci const struct wpan_phy_cca *cca) 898c2ecf20Sopenharmony_ci{ 908c2ecf20Sopenharmony_ci int ret; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca); 938c2ecf20Sopenharmony_ci ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca); 948c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 958c2ecf20Sopenharmony_ci return ret; 968c2ecf20Sopenharmony_ci} 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_cistatic inline int 998c2ecf20Sopenharmony_cirdev_set_cca_ed_level(struct cfg802154_registered_device *rdev, s32 ed_level) 1008c2ecf20Sopenharmony_ci{ 1018c2ecf20Sopenharmony_ci int ret; 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ci trace_802154_rdev_set_cca_ed_level(&rdev->wpan_phy, ed_level); 1048c2ecf20Sopenharmony_ci ret = rdev->ops->set_cca_ed_level(&rdev->wpan_phy, ed_level); 1058c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1068c2ecf20Sopenharmony_ci return ret; 1078c2ecf20Sopenharmony_ci} 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_cistatic inline int 1108c2ecf20Sopenharmony_cirdev_set_tx_power(struct cfg802154_registered_device *rdev, 1118c2ecf20Sopenharmony_ci s32 power) 1128c2ecf20Sopenharmony_ci{ 1138c2ecf20Sopenharmony_ci int ret; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci trace_802154_rdev_set_tx_power(&rdev->wpan_phy, power); 1168c2ecf20Sopenharmony_ci ret = rdev->ops->set_tx_power(&rdev->wpan_phy, power); 1178c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1188c2ecf20Sopenharmony_ci return ret; 1198c2ecf20Sopenharmony_ci} 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_cistatic inline int 1228c2ecf20Sopenharmony_cirdev_set_pan_id(struct cfg802154_registered_device *rdev, 1238c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, __le16 pan_id) 1248c2ecf20Sopenharmony_ci{ 1258c2ecf20Sopenharmony_ci int ret; 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); 1288c2ecf20Sopenharmony_ci ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id); 1298c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1308c2ecf20Sopenharmony_ci return ret; 1318c2ecf20Sopenharmony_ci} 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_cistatic inline int 1348c2ecf20Sopenharmony_cirdev_set_short_addr(struct cfg802154_registered_device *rdev, 1358c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, __le16 short_addr) 1368c2ecf20Sopenharmony_ci{ 1378c2ecf20Sopenharmony_ci int ret; 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); 1408c2ecf20Sopenharmony_ci ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr); 1418c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1428c2ecf20Sopenharmony_ci return ret; 1438c2ecf20Sopenharmony_ci} 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_cistatic inline int 1468c2ecf20Sopenharmony_cirdev_set_backoff_exponent(struct cfg802154_registered_device *rdev, 1478c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, u8 min_be, u8 max_be) 1488c2ecf20Sopenharmony_ci{ 1498c2ecf20Sopenharmony_ci int ret; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev, 1528c2ecf20Sopenharmony_ci min_be, max_be); 1538c2ecf20Sopenharmony_ci ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev, 1548c2ecf20Sopenharmony_ci min_be, max_be); 1558c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1568c2ecf20Sopenharmony_ci return ret; 1578c2ecf20Sopenharmony_ci} 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_cistatic inline int 1608c2ecf20Sopenharmony_cirdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev, 1618c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, u8 max_csma_backoffs) 1628c2ecf20Sopenharmony_ci{ 1638c2ecf20Sopenharmony_ci int ret; 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev, 1668c2ecf20Sopenharmony_ci max_csma_backoffs); 1678c2ecf20Sopenharmony_ci ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev, 1688c2ecf20Sopenharmony_ci max_csma_backoffs); 1698c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1708c2ecf20Sopenharmony_ci return ret; 1718c2ecf20Sopenharmony_ci} 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_cistatic inline int 1748c2ecf20Sopenharmony_cirdev_set_max_frame_retries(struct cfg802154_registered_device *rdev, 1758c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, s8 max_frame_retries) 1768c2ecf20Sopenharmony_ci{ 1778c2ecf20Sopenharmony_ci int ret; 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_ci trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev, 1808c2ecf20Sopenharmony_ci max_frame_retries); 1818c2ecf20Sopenharmony_ci ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev, 1828c2ecf20Sopenharmony_ci max_frame_retries); 1838c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1848c2ecf20Sopenharmony_ci return ret; 1858c2ecf20Sopenharmony_ci} 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_cistatic inline int 1888c2ecf20Sopenharmony_cirdev_set_lbt_mode(struct cfg802154_registered_device *rdev, 1898c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, bool mode) 1908c2ecf20Sopenharmony_ci{ 1918c2ecf20Sopenharmony_ci int ret; 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); 1948c2ecf20Sopenharmony_ci ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode); 1958c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 1968c2ecf20Sopenharmony_ci return ret; 1978c2ecf20Sopenharmony_ci} 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_cistatic inline int 2008c2ecf20Sopenharmony_cirdev_set_ackreq_default(struct cfg802154_registered_device *rdev, 2018c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, bool ackreq) 2028c2ecf20Sopenharmony_ci{ 2038c2ecf20Sopenharmony_ci int ret; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci trace_802154_rdev_set_ackreq_default(&rdev->wpan_phy, wpan_dev, 2068c2ecf20Sopenharmony_ci ackreq); 2078c2ecf20Sopenharmony_ci ret = rdev->ops->set_ackreq_default(&rdev->wpan_phy, wpan_dev, ackreq); 2088c2ecf20Sopenharmony_ci trace_802154_rdev_return_int(&rdev->wpan_phy, ret); 2098c2ecf20Sopenharmony_ci return ret; 2108c2ecf20Sopenharmony_ci} 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci#ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL 2138c2ecf20Sopenharmony_ci/* TODO this is already a nl802154, so move into ieee802154 */ 2148c2ecf20Sopenharmony_cistatic inline void 2158c2ecf20Sopenharmony_cirdev_get_llsec_table(struct cfg802154_registered_device *rdev, 2168c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2178c2ecf20Sopenharmony_ci struct ieee802154_llsec_table **table) 2188c2ecf20Sopenharmony_ci{ 2198c2ecf20Sopenharmony_ci rdev->ops->get_llsec_table(&rdev->wpan_phy, wpan_dev, table); 2208c2ecf20Sopenharmony_ci} 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_cistatic inline void 2238c2ecf20Sopenharmony_cirdev_lock_llsec_table(struct cfg802154_registered_device *rdev, 2248c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev) 2258c2ecf20Sopenharmony_ci{ 2268c2ecf20Sopenharmony_ci rdev->ops->lock_llsec_table(&rdev->wpan_phy, wpan_dev); 2278c2ecf20Sopenharmony_ci} 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_cistatic inline void 2308c2ecf20Sopenharmony_cirdev_unlock_llsec_table(struct cfg802154_registered_device *rdev, 2318c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev) 2328c2ecf20Sopenharmony_ci{ 2338c2ecf20Sopenharmony_ci rdev->ops->unlock_llsec_table(&rdev->wpan_phy, wpan_dev); 2348c2ecf20Sopenharmony_ci} 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_cistatic inline int 2378c2ecf20Sopenharmony_cirdev_get_llsec_params(struct cfg802154_registered_device *rdev, 2388c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2398c2ecf20Sopenharmony_ci struct ieee802154_llsec_params *params) 2408c2ecf20Sopenharmony_ci{ 2418c2ecf20Sopenharmony_ci return rdev->ops->get_llsec_params(&rdev->wpan_phy, wpan_dev, params); 2428c2ecf20Sopenharmony_ci} 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_cistatic inline int 2458c2ecf20Sopenharmony_cirdev_set_llsec_params(struct cfg802154_registered_device *rdev, 2468c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2478c2ecf20Sopenharmony_ci const struct ieee802154_llsec_params *params, 2488c2ecf20Sopenharmony_ci u32 changed) 2498c2ecf20Sopenharmony_ci{ 2508c2ecf20Sopenharmony_ci return rdev->ops->set_llsec_params(&rdev->wpan_phy, wpan_dev, params, 2518c2ecf20Sopenharmony_ci changed); 2528c2ecf20Sopenharmony_ci} 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_cistatic inline int 2558c2ecf20Sopenharmony_cirdev_add_llsec_key(struct cfg802154_registered_device *rdev, 2568c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2578c2ecf20Sopenharmony_ci const struct ieee802154_llsec_key_id *id, 2588c2ecf20Sopenharmony_ci const struct ieee802154_llsec_key *key) 2598c2ecf20Sopenharmony_ci{ 2608c2ecf20Sopenharmony_ci return rdev->ops->add_llsec_key(&rdev->wpan_phy, wpan_dev, id, key); 2618c2ecf20Sopenharmony_ci} 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_cistatic inline int 2648c2ecf20Sopenharmony_cirdev_del_llsec_key(struct cfg802154_registered_device *rdev, 2658c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2668c2ecf20Sopenharmony_ci const struct ieee802154_llsec_key_id *id) 2678c2ecf20Sopenharmony_ci{ 2688c2ecf20Sopenharmony_ci return rdev->ops->del_llsec_key(&rdev->wpan_phy, wpan_dev, id); 2698c2ecf20Sopenharmony_ci} 2708c2ecf20Sopenharmony_ci 2718c2ecf20Sopenharmony_cistatic inline int 2728c2ecf20Sopenharmony_cirdev_add_seclevel(struct cfg802154_registered_device *rdev, 2738c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2748c2ecf20Sopenharmony_ci const struct ieee802154_llsec_seclevel *sl) 2758c2ecf20Sopenharmony_ci{ 2768c2ecf20Sopenharmony_ci return rdev->ops->add_seclevel(&rdev->wpan_phy, wpan_dev, sl); 2778c2ecf20Sopenharmony_ci} 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_cistatic inline int 2808c2ecf20Sopenharmony_cirdev_del_seclevel(struct cfg802154_registered_device *rdev, 2818c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2828c2ecf20Sopenharmony_ci const struct ieee802154_llsec_seclevel *sl) 2838c2ecf20Sopenharmony_ci{ 2848c2ecf20Sopenharmony_ci return rdev->ops->del_seclevel(&rdev->wpan_phy, wpan_dev, sl); 2858c2ecf20Sopenharmony_ci} 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_cistatic inline int 2888c2ecf20Sopenharmony_cirdev_add_device(struct cfg802154_registered_device *rdev, 2898c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, 2908c2ecf20Sopenharmony_ci const struct ieee802154_llsec_device *dev_desc) 2918c2ecf20Sopenharmony_ci{ 2928c2ecf20Sopenharmony_ci return rdev->ops->add_device(&rdev->wpan_phy, wpan_dev, dev_desc); 2938c2ecf20Sopenharmony_ci} 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_cistatic inline int 2968c2ecf20Sopenharmony_cirdev_del_device(struct cfg802154_registered_device *rdev, 2978c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, __le64 extended_addr) 2988c2ecf20Sopenharmony_ci{ 2998c2ecf20Sopenharmony_ci return rdev->ops->del_device(&rdev->wpan_phy, wpan_dev, extended_addr); 3008c2ecf20Sopenharmony_ci} 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_cistatic inline int 3038c2ecf20Sopenharmony_cirdev_add_devkey(struct cfg802154_registered_device *rdev, 3048c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, __le64 extended_addr, 3058c2ecf20Sopenharmony_ci const struct ieee802154_llsec_device_key *devkey) 3068c2ecf20Sopenharmony_ci{ 3078c2ecf20Sopenharmony_ci return rdev->ops->add_devkey(&rdev->wpan_phy, wpan_dev, extended_addr, 3088c2ecf20Sopenharmony_ci devkey); 3098c2ecf20Sopenharmony_ci} 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_cistatic inline int 3128c2ecf20Sopenharmony_cirdev_del_devkey(struct cfg802154_registered_device *rdev, 3138c2ecf20Sopenharmony_ci struct wpan_dev *wpan_dev, __le64 extended_addr, 3148c2ecf20Sopenharmony_ci const struct ieee802154_llsec_device_key *devkey) 3158c2ecf20Sopenharmony_ci{ 3168c2ecf20Sopenharmony_ci return rdev->ops->del_devkey(&rdev->wpan_phy, wpan_dev, extended_addr, 3178c2ecf20Sopenharmony_ci devkey); 3188c2ecf20Sopenharmony_ci} 3198c2ecf20Sopenharmony_ci#endif /* CONFIG_IEEE802154_NL802154_EXPERIMENTAL */ 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ci#endif /* __CFG802154_RDEV_OPS */ 322