Lines Matching refs:wpan_dev

38 static struct wpan_dev *
42 struct wpan_dev *result = NULL; in __cfg802154_wpan_dev_from_attrs()
62 struct wpan_dev *wpan_dev; in __cfg802154_wpan_dev_from_attrs() local
70 list_for_each_entry(wpan_dev, &rdev->wpan_dev_list, list) { in __cfg802154_wpan_dev_from_attrs()
71 if (have_ifidx && wpan_dev->netdev && in __cfg802154_wpan_dev_from_attrs()
72 wpan_dev->netdev->ifindex == ifidx) { in __cfg802154_wpan_dev_from_attrs()
73 result = wpan_dev; in __cfg802154_wpan_dev_from_attrs()
77 wpan_dev->identifier == (u32)wpan_dev_id) { in __cfg802154_wpan_dev_from_attrs()
78 result = wpan_dev; in __cfg802154_wpan_dev_from_attrs()
112 struct wpan_dev *wpan_dev; in __cfg802154_rdev_from_attrs() local
118 list_for_each_entry(wpan_dev, &tmp->wpan_dev_list, list) { in __cfg802154_rdev_from_attrs()
119 if (wpan_dev->identifier != (u32)wpan_dev_id) in __cfg802154_rdev_from_attrs()
257 struct wpan_dev **wpan_dev) in nl802154_prepare_wpan_dev_dump() argument
265 *wpan_dev = __cfg802154_wpan_dev_from_attrs(sock_net(skb->sk), in nl802154_prepare_wpan_dev_dump()
267 if (IS_ERR(*wpan_dev)) { in nl802154_prepare_wpan_dev_dump()
268 err = PTR_ERR(*wpan_dev); in nl802154_prepare_wpan_dev_dump()
271 *rdev = wpan_phy_to_rdev((*wpan_dev)->wpan_phy); in nl802154_prepare_wpan_dev_dump()
274 cb->args[1] = (*wpan_dev)->identifier; in nl802154_prepare_wpan_dev_dump()
278 struct wpan_dev *tmp; in nl802154_prepare_wpan_dev_dump()
285 *wpan_dev = NULL; in nl802154_prepare_wpan_dev_dump()
289 *wpan_dev = tmp; in nl802154_prepare_wpan_dev_dump()
294 if (!*wpan_dev) { in nl802154_prepare_wpan_dev_dump()
678 static inline u64 wpan_dev_id(struct wpan_dev *wpan_dev) in wpan_dev_id() argument
680 return (u64)wpan_dev->identifier | in wpan_dev_id()
681 ((u64)wpan_phy_to_rdev(wpan_dev->wpan_phy)->wpan_phy_idx << 32); in wpan_dev_id()
758 struct wpan_dev *wpan_dev) in nl802154_get_llsec_params() argument
764 ret = rdev_get_llsec_params(rdev, wpan_dev, &params); in nl802154_get_llsec_params()
791 struct wpan_dev *wpan_dev) in nl802154_send_iface() argument
793 struct net_device *dev = wpan_dev->netdev; in nl802154_send_iface()
807 nla_put_u32(msg, NL802154_ATTR_IFTYPE, wpan_dev->iftype) || in nl802154_send_iface()
809 wpan_dev_id(wpan_dev), NL802154_ATTR_PAD) || in nl802154_send_iface()
817 wpan_dev->extended_addr, in nl802154_send_iface()
820 wpan_dev->short_addr) || in nl802154_send_iface()
821 nla_put_le16(msg, NL802154_ATTR_PAN_ID, wpan_dev->pan_id)) in nl802154_send_iface()
826 wpan_dev->frame_retries) || in nl802154_send_iface()
827 nla_put_u8(msg, NL802154_ATTR_MAX_BE, wpan_dev->max_be) || in nl802154_send_iface()
829 wpan_dev->csma_retries) || in nl802154_send_iface()
830 nla_put_u8(msg, NL802154_ATTR_MIN_BE, wpan_dev->min_be)) in nl802154_send_iface()
834 if (nla_put_u8(msg, NL802154_ATTR_LBT_MODE, wpan_dev->lbt)) in nl802154_send_iface()
838 if (nla_put_u8(msg, NL802154_ATTR_ACKREQ_DEFAULT, wpan_dev->ackreq)) in nl802154_send_iface()
842 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_send_iface()
845 if (nl802154_get_llsec_params(msg, rdev, wpan_dev) < 0) in nl802154_send_iface()
867 struct wpan_dev *wpan_dev; in nl802154_dump_interface() local
879 list_for_each_entry(wpan_dev, &rdev->wpan_dev_list, list) { in nl802154_dump_interface()
886 rdev, wpan_dev) < 0) { in nl802154_dump_interface()
907 struct wpan_dev *wdev = info->user_ptr[1]; in nl802154_get_interface()
956 struct wpan_dev *wpan_dev = info->user_ptr[1]; in nl802154_del_interface() local
967 if (!wpan_dev->netdev) in nl802154_del_interface()
970 return rdev_del_virtual_intf(rdev, wpan_dev); in nl802154_del_interface()
1071 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_pan_id() local
1078 if (wpan_dev->lowpan_dev) { in nl802154_set_pan_id()
1079 if (netif_running(wpan_dev->lowpan_dev)) in nl802154_set_pan_id()
1084 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR || in nl802154_set_pan_id()
1093 if (cfg802154_device_is_associated(wpan_dev)) { in nl802154_set_pan_id()
1099 return rdev_set_pan_id(rdev, wpan_dev, pan_id); in nl802154_set_pan_id()
1106 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_short_addr() local
1113 if (wpan_dev->lowpan_dev) { in nl802154_set_short_addr()
1114 if (netif_running(wpan_dev->lowpan_dev)) in nl802154_set_short_addr()
1119 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR || in nl802154_set_short_addr()
1131 if (cfg802154_device_is_associated(wpan_dev)) { in nl802154_set_short_addr()
1137 return rdev_set_short_addr(rdev, wpan_dev, short_addr); in nl802154_set_short_addr()
1145 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_backoff_exponent() local
1167 return rdev_set_backoff_exponent(rdev, wpan_dev, min_be, max_be); in nl802154_set_backoff_exponent()
1175 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_max_csma_backoffs() local
1193 return rdev_set_max_csma_backoffs(rdev, wpan_dev, max_csma_backoffs); in nl802154_set_max_csma_backoffs()
1201 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_max_frame_retries() local
1218 return rdev_set_max_frame_retries(rdev, wpan_dev, max_frame_retries); in nl802154_set_max_frame_retries()
1225 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_lbt_mode() local
1242 return rdev_set_lbt_mode(rdev, wpan_dev, mode); in nl802154_set_lbt_mode()
1250 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_ackreq_default() local
1264 return rdev_set_ackreq_default(rdev, wpan_dev, ackreq); in nl802154_set_ackreq_default()
1300 struct wpan_dev *wpan_dev, in nl802154_prep_scan_event_msg() argument
1314 if (wpan_dev->netdev && in nl802154_prep_scan_event_msg()
1315 nla_put_u32(msg, NL802154_ATTR_IFINDEX, wpan_dev->netdev->ifindex)) in nl802154_prep_scan_event_msg()
1319 wpan_dev_id(wpan_dev), NL802154_ATTR_PAD)) in nl802154_prep_scan_event_msg()
1372 int nl802154_scan_event(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, in nl802154_scan_event() argument
1383 ret = nl802154_prep_scan_event_msg(msg, rdev, wpan_dev, 0, 0, 0, in nl802154_scan_event()
1400 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_trigger_scan() local
1406 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) { in nl802154_trigger_scan()
1425 request->wpan_dev = wpan_dev; in nl802154_trigger_scan()
1474 struct wpan_dev *wpan_dev, u32 portid, in nl802154_prep_scan_msg() argument
1486 if (wpan_dev->netdev && in nl802154_prep_scan_msg()
1487 nla_put_u32(msg, NL802154_ATTR_IFINDEX, wpan_dev->netdev->ifindex)) in nl802154_prep_scan_msg()
1491 wpan_dev_id(wpan_dev), NL802154_ATTR_PAD)) in nl802154_prep_scan_msg()
1509 struct wpan_dev *wpan_dev, u8 cmd, u8 arg) in nl802154_send_scan_msg() argument
1518 ret = nl802154_prep_scan_msg(msg, rdev, wpan_dev, 0, 0, 0, cmd, arg); in nl802154_send_scan_msg()
1529 int nl802154_scan_started(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev) in nl802154_scan_started() argument
1535 err = nl802154_send_scan_msg(rdev, wpan_dev, NL802154_CMD_TRIGGER_SCAN, 0); in nl802154_scan_started()
1543 int nl802154_scan_done(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev, in nl802154_scan_done() argument
1550 err = nl802154_send_scan_msg(rdev, wpan_dev, NL802154_CMD_SCAN_DONE, reason); in nl802154_scan_done()
1562 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_abort_scan() local
1565 return rdev_abort_scan(rdev, wpan_dev); in nl802154_abort_scan()
1573 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_send_beacons() local
1578 if (wpan_dev->iftype != NL802154_IFTYPE_COORD) { in nl802154_send_beacons()
1583 if (wpan_dev->pan_id == cpu_to_le16(IEEE802154_PANID_BROADCAST)) { in nl802154_send_beacons()
1597 request->wpan_dev = wpan_dev; in nl802154_send_beacons()
1620 void nl802154_beaconing_done(struct wpan_dev *wpan_dev) in nl802154_beaconing_done() argument
1631 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_stop_beacons() local
1634 return rdev_stop_beacons(rdev, wpan_dev); in nl802154_stop_beacons()
1641 struct wpan_dev *wpan_dev; in nl802154_associate() local
1646 wpan_dev = dev->ieee802154_ptr; in nl802154_associate()
1662 mutex_lock(&wpan_dev->association_lock); in nl802154_associate()
1663 err = rdev_associate(rdev, wpan_dev, &coord); in nl802154_associate()
1664 mutex_unlock(&wpan_dev->association_lock); in nl802154_associate()
1676 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_disassociate() local
1685 target.pan_id = wpan_dev->pan_id; in nl802154_disassociate()
1698 mutex_lock(&wpan_dev->association_lock); in nl802154_disassociate()
1699 rdev_disassociate(rdev, wpan_dev, &target); in nl802154_disassociate()
1700 mutex_unlock(&wpan_dev->association_lock); in nl802154_disassociate()
1708 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_max_associations() local
1718 mutex_lock(&wpan_dev->association_lock); in nl802154_set_max_associations()
1719 cfg802154_set_max_associations(wpan_dev, max_assoc); in nl802154_set_max_associations()
1720 mutex_unlock(&wpan_dev->association_lock); in nl802154_set_max_associations()
1729 struct wpan_dev *wpan_dev, in nl802154_send_peer_info() argument
1779 struct wpan_dev *wpan_dev; in nl802154_list_associations() local
1782 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_list_associations()
1786 mutex_lock(&wpan_dev->association_lock); in nl802154_list_associations()
1791 if (wpan_dev->parent) { in nl802154_list_associations()
1793 NLM_F_MULTI, rdev, wpan_dev, in nl802154_list_associations()
1794 wpan_dev->parent, in nl802154_list_associations()
1800 list_for_each_entry(child, &wpan_dev->children, node) { in nl802154_list_associations()
1802 NLM_F_MULTI, rdev, wpan_dev, in nl802154_list_associations()
1813 mutex_unlock(&wpan_dev->association_lock); in nl802154_list_associations()
1924 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_set_llsec_params() local
1929 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_set_llsec_params()
1965 return rdev_set_llsec_params(rdev, wpan_dev, &params, changed); in nl802154_set_llsec_params()
2031 struct wpan_dev *wpan_dev; in nl802154_dump_llsec_key() local
2034 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_key()
2038 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) { in nl802154_dump_llsec_key()
2043 if (!wpan_dev->netdev) { in nl802154_dump_llsec_key()
2048 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_key()
2049 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_key()
2059 rdev, wpan_dev->netdev, key) < 0) { in nl802154_dump_llsec_key()
2062 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_key()
2070 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_key()
2091 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_add_llsec_key() local
2097 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_add_llsec_key()
2138 return rdev_add_llsec_key(rdev, wpan_dev, &id, &key); in nl802154_add_llsec_key()
2145 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_del_llsec_key() local
2149 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_del_llsec_key()
2159 return rdev_del_llsec_key(rdev, wpan_dev, &id); in nl802154_del_llsec_key()
2210 struct wpan_dev *wpan_dev; in nl802154_dump_llsec_dev() local
2213 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_dev()
2217 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) { in nl802154_dump_llsec_dev()
2222 if (!wpan_dev->netdev) { in nl802154_dump_llsec_dev()
2227 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_dev()
2228 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_dev()
2238 rdev, wpan_dev->netdev, dev) < 0) { in nl802154_dump_llsec_dev()
2241 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_dev()
2249 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_dev()
2305 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_add_llsec_dev() local
2308 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_add_llsec_dev()
2315 return rdev_add_device(rdev, wpan_dev, &dev_desc); in nl802154_add_llsec_dev()
2322 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_del_llsec_dev() local
2326 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_del_llsec_dev()
2337 return rdev_del_device(rdev, wpan_dev, extended_addr); in nl802154_del_llsec_dev()
2391 struct wpan_dev *wpan_dev; in nl802154_dump_llsec_devkey() local
2394 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_devkey()
2398 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) { in nl802154_dump_llsec_devkey()
2403 if (!wpan_dev->netdev) { in nl802154_dump_llsec_devkey()
2408 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_devkey()
2409 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_devkey()
2423 wpan_dev->netdev, in nl802154_dump_llsec_devkey()
2428 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_devkey()
2437 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_devkey()
2455 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_add_llsec_devkey() local
2460 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_add_llsec_devkey()
2482 return rdev_add_devkey(rdev, wpan_dev, extended_addr, &key); in nl802154_add_llsec_devkey()
2489 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_del_llsec_devkey() local
2494 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_del_llsec_devkey()
2513 return rdev_del_devkey(rdev, wpan_dev, extended_addr, &key); in nl802154_del_llsec_devkey()
2564 struct wpan_dev *wpan_dev; in nl802154_dump_llsec_seclevel() local
2567 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev); in nl802154_dump_llsec_seclevel()
2571 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) { in nl802154_dump_llsec_seclevel()
2576 if (!wpan_dev->netdev) { in nl802154_dump_llsec_seclevel()
2581 rdev_lock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_seclevel()
2582 rdev_get_llsec_table(rdev, wpan_dev, &table); in nl802154_dump_llsec_seclevel()
2592 rdev, wpan_dev->netdev, sl) < 0) { in nl802154_dump_llsec_seclevel()
2595 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_seclevel()
2603 rdev_unlock_llsec_table(rdev, wpan_dev); in nl802154_dump_llsec_seclevel()
2657 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_add_llsec_seclevel() local
2660 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_add_llsec_seclevel()
2667 return rdev_add_seclevel(rdev, wpan_dev, &sl); in nl802154_add_llsec_seclevel()
2675 struct wpan_dev *wpan_dev = dev->ieee802154_ptr; in nl802154_del_llsec_seclevel() local
2678 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) in nl802154_del_llsec_seclevel()
2685 return rdev_del_seclevel(rdev, wpan_dev, &sl); in nl802154_del_llsec_seclevel()
2700 struct wpan_dev *wpan_dev; in nl802154_pre_doit() local
2718 wpan_dev = __cfg802154_wpan_dev_from_attrs(genl_info_net(info), in nl802154_pre_doit()
2720 if (IS_ERR(wpan_dev)) { in nl802154_pre_doit()
2723 return PTR_ERR(wpan_dev); in nl802154_pre_doit()
2726 dev = wpan_dev->netdev; in nl802154_pre_doit()
2727 rdev = wpan_phy_to_rdev(wpan_dev->wpan_phy); in nl802154_pre_doit()
2738 info->user_ptr[1] = wpan_dev; in nl802154_pre_doit()
2764 struct wpan_dev *wpan_dev = info->user_ptr[1]; in nl802154_post_doit() local
2766 dev_put(wpan_dev->netdev); in nl802154_post_doit()