Lines Matching defs:wpan_dev

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