Lines Matching refs:sdata
27 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_wpan_update_llsec() local
29 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in mac802154_wpan_update_llsec()
51 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_wpan_ioctl() local
52 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in mac802154_wpan_ioctl()
113 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_wpan_mac_addr() local
123 if (sdata->wpan_dev.lowpan_dev) { in mac802154_wpan_mac_addr()
124 if (netif_running(sdata->wpan_dev.lowpan_dev)) in mac802154_wpan_mac_addr()
133 sdata->wpan_dev.extended_addr = extended_addr; in mac802154_wpan_mac_addr()
138 if (sdata->wpan_dev.lowpan_dev) in mac802154_wpan_mac_addr()
139 dev_addr_set(sdata->wpan_dev.lowpan_dev, dev->dev_addr); in mac802154_wpan_mac_addr()
144 static int ieee802154_setup_hw(struct ieee802154_sub_if_data *sdata) in ieee802154_setup_hw() argument
146 struct ieee802154_local *local = sdata->local; in ieee802154_setup_hw()
147 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in ieee802154_setup_hw()
150 sdata->required_filtering = sdata->iface_default_filtering; in ieee802154_setup_hw()
183 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_slave_open() local
184 struct ieee802154_local *local = sdata->local; in mac802154_slave_open()
189 set_bit(SDATA_STATE_RUNNING, &sdata->state); in mac802154_slave_open()
192 res = ieee802154_setup_hw(sdata); in mac802154_slave_open()
196 res = drv_start(local, sdata->required_filtering, in mac802154_slave_open()
207 clear_bit(SDATA_STATE_RUNNING, &sdata->state); in mac802154_slave_open()
214 struct ieee802154_sub_if_data *sdata, in ieee802154_check_mac_settings() argument
218 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in ieee802154_check_mac_settings()
222 if (sdata->iface_default_filtering != nsdata->iface_default_filtering) in ieee802154_check_mac_settings()
253 ieee802154_check_concurrent_iface(struct ieee802154_sub_if_data *sdata, in ieee802154_check_concurrent_iface() argument
256 struct ieee802154_local *local = sdata->local; in ieee802154_check_concurrent_iface()
261 if (nsdata != sdata && ieee802154_sdata_running(nsdata)) { in ieee802154_check_concurrent_iface()
269 if (sdata->wpan_dev.iftype != NL802154_IFTYPE_MONITOR && in ieee802154_check_concurrent_iface()
276 ret = ieee802154_check_mac_settings(local, sdata, nsdata); in ieee802154_check_concurrent_iface()
288 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_wpan_open() local
289 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in mac802154_wpan_open()
291 rc = ieee802154_check_concurrent_iface(sdata, wpan_dev->iftype); in mac802154_wpan_open()
300 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_slave_close() local
301 struct ieee802154_local *local = sdata->local; in mac802154_slave_close()
306 mac802154_abort_scan_locked(local, sdata); in mac802154_slave_close()
309 mac802154_stop_beacons_locked(local, sdata); in mac802154_slave_close()
314 clear_bit(SDATA_STATE_RUNNING, &sdata->state); in mac802154_slave_close()
322 static int mac802154_set_header_security(struct ieee802154_sub_if_data *sdata, in mac802154_set_header_security() argument
329 mac802154_llsec_get_params(&sdata->sec, ¶ms); in mac802154_set_header_security()
361 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in ieee802154_header_create() local
362 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in ieee802154_header_create()
375 if (mac802154_set_header_security(sdata, &hdr, cb) < 0) in ieee802154_header_create()
427 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_header_create() local
428 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in mac802154_header_create()
443 if (mac802154_set_header_security(sdata, &hdr, &cb) < 0) in mac802154_header_create()
510 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); in mac802154_wpan_free() local
512 mac802154_llsec_destroy(&sdata->sec); in mac802154_wpan_free()
548 ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, in ieee802154_setup_sdata() argument
551 struct wpan_dev *wpan_dev = &sdata->wpan_dev; in ieee802154_setup_sdata()
556 sdata->wpan_dev.iftype = type; in ieee802154_setup_sdata()
576 sdata->dev->dev_addr); in ieee802154_setup_sdata()
578 sdata->dev->header_ops = &mac802154_header_ops; in ieee802154_setup_sdata()
579 sdata->dev->needs_free_netdev = true; in ieee802154_setup_sdata()
580 sdata->dev->priv_destructor = mac802154_wpan_free; in ieee802154_setup_sdata()
581 sdata->dev->netdev_ops = &mac802154_wpan_ops; in ieee802154_setup_sdata()
582 sdata->dev->ml_priv = &mac802154_mlme_wpan; in ieee802154_setup_sdata()
583 sdata->iface_default_filtering = IEEE802154_FILTERING_4_FRAME_FIELDS; in ieee802154_setup_sdata()
586 mutex_init(&sdata->sec_mtx); in ieee802154_setup_sdata()
588 mac802154_llsec_init(&sdata->sec); in ieee802154_setup_sdata()
589 ret = mac802154_wpan_update_llsec(sdata->dev); in ieee802154_setup_sdata()
595 sdata->dev->needs_free_netdev = true; in ieee802154_setup_sdata()
596 sdata->dev->netdev_ops = &mac802154_monitor_ops; in ieee802154_setup_sdata()
597 sdata->iface_default_filtering = IEEE802154_FILTERING_NONE; in ieee802154_setup_sdata()
613 struct ieee802154_sub_if_data *sdata = NULL; in ieee802154_if_add() local
618 ndev = alloc_netdev(sizeof(*sdata), name, in ieee802154_if_add()
654 sdata = netdev_priv(ndev); in ieee802154_if_add()
655 ndev->ieee802154_ptr = &sdata->wpan_dev; in ieee802154_if_add()
656 memcpy(sdata->name, ndev->name, IFNAMSIZ); in ieee802154_if_add()
657 sdata->dev = ndev; in ieee802154_if_add()
658 sdata->wpan_dev.wpan_phy = local->hw.phy; in ieee802154_if_add()
659 sdata->local = local; in ieee802154_if_add()
660 INIT_LIST_HEAD(&sdata->wpan_dev.list); in ieee802154_if_add()
663 ret = ieee802154_setup_sdata(sdata, type); in ieee802154_if_add()
672 list_add_tail_rcu(&sdata->list, &local->interfaces); in ieee802154_if_add()
682 void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata) in ieee802154_if_remove() argument
686 mutex_lock(&sdata->local->iflist_mtx); in ieee802154_if_remove()
687 list_del_rcu(&sdata->list); in ieee802154_if_remove()
688 mutex_unlock(&sdata->local->iflist_mtx); in ieee802154_if_remove()
691 unregister_netdevice(sdata->dev); in ieee802154_if_remove()
696 struct ieee802154_sub_if_data *sdata, *tmp; in ieee802154_remove_interfaces() local
699 list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) { in ieee802154_remove_interfaces()
700 list_del(&sdata->list); in ieee802154_remove_interfaces()
702 unregister_netdevice(sdata->dev); in ieee802154_remove_interfaces()
711 struct ieee802154_sub_if_data *sdata; in netdev_notify() local
722 sdata = IEEE802154_DEV_TO_SUB_IF(dev); in netdev_notify()
723 memcpy(sdata->name, dev->name, IFNAMSIZ); in netdev_notify()