Lines Matching refs: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)
256 struct wpan_dev **wpan_dev)
264 *wpan_dev = __cfg802154_wpan_dev_from_attrs(sock_net(skb->sk),
266 if (IS_ERR(*wpan_dev)) {
267 err = PTR_ERR(*wpan_dev);
270 *rdev = wpan_phy_to_rdev((*wpan_dev)->wpan_phy);
273 cb->args[1] = (*wpan_dev)->identifier;
277 struct wpan_dev *tmp;
284 *wpan_dev = NULL;
288 *wpan_dev = tmp;
293 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 ||
1100 return rdev_set_pan_id(rdev, wpan_dev, pan_id);
1107 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1114 if (wpan_dev->lowpan_dev) {
1115 if (netif_running(wpan_dev->lowpan_dev))
1120 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
1141 return rdev_set_short_addr(rdev, wpan_dev, short_addr);
1149 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1171 return rdev_set_backoff_exponent(rdev, wpan_dev, min_be, max_be);
1179 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1197 return rdev_set_max_csma_backoffs(rdev, wpan_dev, max_csma_backoffs);
1205 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1222 return rdev_set_max_frame_retries(rdev, wpan_dev, max_frame_retries);
1229 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1246 return rdev_set_lbt_mode(rdev, wpan_dev, mode);
1254 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1268 return rdev_set_ackreq_default(rdev, wpan_dev, ackreq);
1304 struct wpan_dev *wpan_dev,
1318 if (wpan_dev->netdev &&
1319 nla_put_u32(msg, NL802154_ATTR_IFINDEX, wpan_dev->netdev->ifindex))
1323 wpan_dev_id(wpan_dev), NL802154_ATTR_PAD))
1376 int nl802154_scan_event(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
1387 ret = nl802154_prep_scan_event_msg(msg, rdev, wpan_dev, 0, 0, 0,
1404 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1410 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
1429 request->wpan_dev = wpan_dev;
1478 struct wpan_dev *wpan_dev, u32 portid,
1490 if (wpan_dev->netdev &&
1491 nla_put_u32(msg, NL802154_ATTR_IFINDEX, wpan_dev->netdev->ifindex))
1495 wpan_dev_id(wpan_dev), NL802154_ATTR_PAD))
1513 struct wpan_dev *wpan_dev, u8 cmd, u8 arg)
1522 ret = nl802154_prep_scan_msg(msg, rdev, wpan_dev, 0, 0, 0, cmd, arg);
1533 int nl802154_scan_started(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev)
1539 err = nl802154_send_scan_msg(rdev, wpan_dev, NL802154_CMD_TRIGGER_SCAN, 0);
1547 int nl802154_scan_done(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
1554 err = nl802154_send_scan_msg(rdev, wpan_dev, NL802154_CMD_SCAN_DONE, reason);
1566 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1569 return rdev_abort_scan(rdev, wpan_dev);
1577 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1582 if (wpan_dev->iftype != NL802154_IFTYPE_COORD) {
1587 if (wpan_dev->pan_id == cpu_to_le16(IEEE802154_PANID_BROADCAST)) {
1601 request->wpan_dev = wpan_dev;
1624 void nl802154_beaconing_done(struct wpan_dev *wpan_dev)
1635 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1638 return rdev_stop_beacons(rdev, wpan_dev);
1745 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1750 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
1786 return rdev_set_llsec_params(rdev, wpan_dev, &params, changed);
1852 struct wpan_dev *wpan_dev;
1855 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev);
1859 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
1864 if (!wpan_dev->netdev) {
1869 rdev_lock_llsec_table(rdev, wpan_dev);
1870 rdev_get_llsec_table(rdev, wpan_dev, &table);
1880 rdev, wpan_dev->netdev, key) < 0) {
1883 rdev_unlock_llsec_table(rdev, wpan_dev);
1891 rdev_unlock_llsec_table(rdev, wpan_dev);
1912 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1918 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
1959 return rdev_add_llsec_key(rdev, wpan_dev, &id, &key);
1966 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
1970 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
1980 return rdev_del_llsec_key(rdev, wpan_dev, &id);
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, dev) < 0) {
2062 rdev_unlock_llsec_table(rdev, wpan_dev);
2070 rdev_unlock_llsec_table(rdev, wpan_dev);
2126 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
2129 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
2136 return rdev_add_device(rdev, wpan_dev, &dev_desc);
2143 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
2147 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
2158 return rdev_del_device(rdev, wpan_dev, extended_addr);
2212 struct wpan_dev *wpan_dev;
2215 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev);
2219 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
2224 if (!wpan_dev->netdev) {
2229 rdev_lock_llsec_table(rdev, wpan_dev);
2230 rdev_get_llsec_table(rdev, wpan_dev, &table);
2244 wpan_dev->netdev,
2249 rdev_unlock_llsec_table(rdev, wpan_dev);
2258 rdev_unlock_llsec_table(rdev, wpan_dev);
2276 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
2281 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
2303 return rdev_add_devkey(rdev, wpan_dev, extended_addr, &key);
2310 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
2315 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
2334 return rdev_del_devkey(rdev, wpan_dev, extended_addr, &key);
2385 struct wpan_dev *wpan_dev;
2388 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev);
2392 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR) {
2397 if (!wpan_dev->netdev) {
2402 rdev_lock_llsec_table(rdev, wpan_dev);
2403 rdev_get_llsec_table(rdev, wpan_dev, &table);
2413 rdev, wpan_dev->netdev, sl) < 0) {
2416 rdev_unlock_llsec_table(rdev, wpan_dev);
2424 rdev_unlock_llsec_table(rdev, wpan_dev);
2478 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
2481 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
2488 return rdev_add_seclevel(rdev, wpan_dev, &sl);
2496 struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
2499 if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR)
2506 return rdev_del_seclevel(rdev, wpan_dev, &sl);
2521 struct wpan_dev *wpan_dev;
2539 wpan_dev = __cfg802154_wpan_dev_from_attrs(genl_info_net(info),
2541 if (IS_ERR(wpan_dev)) {
2544 return PTR_ERR(wpan_dev);
2547 dev = wpan_dev->netdev;
2548 rdev = wpan_phy_to_rdev(wpan_dev->wpan_phy);
2559 info->user_ptr[1] = wpan_dev;
2585 struct wpan_dev *wpan_dev = info->user_ptr[1];
2587 dev_put(wpan_dev->netdev);