Lines Matching refs:sdata

27 	struct ieee80211_sub_if_data *sdata;  member
38 return d->format(d->sdata, buf, bufsize); in ieee80211_if_read_sdata_handler()
45 ssize_t (*format)(const struct ieee80211_sub_if_data *sdata, char *, int)) in ieee80211_if_read_sdata() argument
47 struct ieee80211_sub_if_data *sdata = file->private_data; in ieee80211_if_read_sdata() local
50 .sdata = sdata, in ieee80211_if_read_sdata()
54 return wiphy_locked_debugfs_read(sdata->local->hw.wiphy, in ieee80211_if_read_sdata()
63 struct ieee80211_sub_if_data *sdata; member
74 return d->write(d->sdata, buf, count); in ieee80211_if_write_sdata_handler()
81 ssize_t (*write)(struct ieee80211_sub_if_data *sdata, const char *, int)) in ieee80211_if_write_sdata() argument
83 struct ieee80211_sub_if_data *sdata = file->private_data; in ieee80211_if_write_sdata() local
86 .sdata = sdata, in ieee80211_if_write_sdata()
90 return wiphy_locked_debugfs_write(sdata->local->hw.wiphy, in ieee80211_if_write_sdata()
126 return wiphy_locked_debugfs_read(link->sdata->local->hw.wiphy, in ieee80211_if_read_link()
146 return d->write(d->sdata, buf, count); in ieee80211_if_write_link_handler()
162 return wiphy_locked_debugfs_write(link->sdata->local->hw.wiphy, in ieee80211_if_write_link()
318 const struct ieee80211_sub_if_data *sdata, in ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_2ghz() argument
322 const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[NL80211_BAND_2GHZ]; in ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_2ghz()
334 const struct ieee80211_sub_if_data *sdata, in ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_5ghz() argument
338 const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[NL80211_BAND_5GHZ]; in ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_5ghz()
356 ieee80211_if_fmt_hw_queues(const struct ieee80211_sub_if_data *sdata, in ieee80211_if_fmt_hw_queues() argument
362 sdata->vif.hw_queue[IEEE80211_AC_VO], in ieee80211_if_fmt_hw_queues()
363 sdata->vif.hw_queue[IEEE80211_AC_VI], in ieee80211_if_fmt_hw_queues()
364 sdata->vif.hw_queue[IEEE80211_AC_BE], in ieee80211_if_fmt_hw_queues()
365 sdata->vif.hw_queue[IEEE80211_AC_BK]); in ieee80211_if_fmt_hw_queues()
367 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_if_fmt_hw_queues()
369 sdata->vif.cab_queue); in ieee80211_if_fmt_hw_queues()
383 struct ieee80211_sub_if_data *sdata = link->sdata; in ieee80211_set_smps() local
384 struct ieee80211_local *local = sdata->local; in ieee80211_set_smps()
389 if (sdata->vif.driver_flags & IEEE80211_VIF_EML_ACTIVE) in ieee80211_set_smps()
402 if (sdata->vif.type != NL80211_IFTYPE_STATION) in ieee80211_set_smps()
405 return __ieee80211_request_smps_mgd(link->sdata, link, smps_mode); in ieee80211_set_smps()
418 if (link->sdata->vif.type == NL80211_IFTYPE_STATION) in ieee80211_if_fmt_smps()
444 struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) in ieee80211_if_parse_tkip_mic_test() argument
446 struct ieee80211_local *local = sdata->local; in ieee80211_if_parse_tkip_mic_test()
455 if (!ieee80211_sdata_running(sdata)) in ieee80211_if_parse_tkip_mic_test()
466 switch (sdata->vif.type) { in ieee80211_if_parse_tkip_mic_test()
471 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_if_parse_tkip_mic_test()
472 memcpy(hdr->addr3, sdata->vif.addr, ETH_ALEN); in ieee80211_if_parse_tkip_mic_test()
477 if (!sdata->u.mgd.associated) { in ieee80211_if_parse_tkip_mic_test()
481 memcpy(hdr->addr1, sdata->deflink.u.mgd.bssid, ETH_ALEN); in ieee80211_if_parse_tkip_mic_test()
482 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_if_parse_tkip_mic_test()
500 ieee80211_tx_skb(sdata, skb); in ieee80211_if_parse_tkip_mic_test()
507 struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) in ieee80211_if_parse_beacon_loss() argument
509 if (!ieee80211_sdata_running(sdata) || !sdata->vif.cfg.assoc) in ieee80211_if_parse_beacon_loss()
512 ieee80211_beacon_loss(&sdata->vif); in ieee80211_if_parse_beacon_loss()
519 const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) in ieee80211_if_fmt_uapsd_queues() argument
521 const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_if_fmt_uapsd_queues()
527 struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) in ieee80211_if_parse_uapsd_queues() argument
529 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_if_parse_uapsd_queues()
547 const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) in ieee80211_if_fmt_uapsd_max_sp_len() argument
549 const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_if_fmt_uapsd_max_sp_len()
555 struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) in ieee80211_if_parse_uapsd_max_sp_len() argument
557 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_if_parse_uapsd_max_sp_len()
575 const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) in ieee80211_if_fmt_tdls_wider_bw() argument
577 const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_if_fmt_tdls_wider_bw()
580 tdls_wider_bw = ieee80211_hw_check(&sdata->local->hw, TDLS_WIDER_BW) && in ieee80211_if_fmt_tdls_wider_bw()
587 struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) in ieee80211_if_parse_tdls_wider_bw() argument
589 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; in ieee80211_if_parse_tdls_wider_bw()
609 const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) in ieee80211_if_fmt_num_buffered_multicast() argument
612 skb_queue_len(&sdata->u.ap.ps.bc_buf)); in ieee80211_if_fmt_num_buffered_multicast()
617 const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) in ieee80211_if_fmt_aqm() argument
619 struct ieee80211_local *local = sdata->local; in ieee80211_if_fmt_aqm()
623 if (!sdata->vif.txq) in ieee80211_if_fmt_aqm()
626 txqi = to_txq_info(sdata->vif.txq); in ieee80211_if_fmt_aqm()
657 const struct ieee80211_sub_if_data *sdata, char *buf, int buflen) in ieee80211_if_fmt_tsf() argument
659 struct ieee80211_local *local = sdata->local; in ieee80211_if_fmt_tsf()
662 tsf = drv_get_tsf(local, (struct ieee80211_sub_if_data *)sdata); in ieee80211_if_fmt_tsf()
668 struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) in ieee80211_if_parse_tsf() argument
670 struct ieee80211_local *local = sdata->local; in ieee80211_if_parse_tsf()
677 drv_reset_tsf(local, sdata); in ieee80211_if_parse_tsf()
694 drv_offset_tsf(local, sdata, tsf_is_delta * tsf); in ieee80211_if_parse_tsf()
700 tsf = drv_get_tsf(local, sdata) + in ieee80211_if_parse_tsf()
702 drv_set_tsf(local, sdata, tsf); in ieee80211_if_parse_tsf()
708 ieee80211_recalc_dtim(local, sdata); in ieee80211_if_parse_tsf()
713 static ssize_t ieee80211_if_fmt_valid_links(const struct ieee80211_sub_if_data *sdata, in ieee80211_if_fmt_valid_links() argument
716 return snprintf(buf, buflen, "0x%x\n", sdata->vif.valid_links); in ieee80211_if_fmt_valid_links()
720 static ssize_t ieee80211_if_fmt_active_links(const struct ieee80211_sub_if_data *sdata, in ieee80211_if_fmt_active_links() argument
723 return snprintf(buf, buflen, "0x%x\n", sdata->vif.active_links); in ieee80211_if_fmt_active_links()
726 static ssize_t ieee80211_if_parse_active_links(struct ieee80211_sub_if_data *sdata, in ieee80211_if_parse_active_links() argument
734 return ieee80211_set_active_links(&sdata->vif, active_links) ?: buflen; in ieee80211_if_parse_active_links()
805 debugfs_create_file(#name, mode, sdata->vif.debugfs_dir, \
806 sdata, &name##_ops)
809 debugfs_create_x##_bits(#_name, _mode, sdata->vif.debugfs_dir, \
810 &sdata->vif._name)
823 static void add_common_files(struct ieee80211_sub_if_data *sdata) in add_common_files() argument
833 if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && in add_common_files()
834 sdata->vif.type != NL80211_IFTYPE_NAN) in add_common_files()
838 static void add_sta_files(struct ieee80211_sub_if_data *sdata) in add_sta_files() argument
853 static void add_ap_files(struct ieee80211_sub_if_data *sdata) in add_ap_files() argument
863 static void add_vlan_files(struct ieee80211_sub_if_data *sdata) in add_vlan_files() argument
866 debugfs_create_file("num_mcast_sta", 0400, sdata->vif.debugfs_dir, in add_vlan_files()
867 sdata, &num_mcast_sta_vlan_ops); in add_vlan_files()
870 static void add_ibss_files(struct ieee80211_sub_if_data *sdata) in add_ibss_files() argument
877 static void add_mesh_files(struct ieee80211_sub_if_data *sdata) in add_mesh_files() argument
883 static void add_mesh_stats(struct ieee80211_sub_if_data *sdata) in add_mesh_stats() argument
886 sdata->vif.debugfs_dir); in add_mesh_stats()
888 debugfs_create_file(#name, 0400, dir, sdata, &name##_ops) in add_mesh_stats()
898 static void add_mesh_config(struct ieee80211_sub_if_data *sdata) in add_mesh_config() argument
901 sdata->vif.debugfs_dir); in add_mesh_config()
904 debugfs_create_file(#name, 0600, dir, sdata, &name##_ops) in add_mesh_config()
939 static void add_files(struct ieee80211_sub_if_data *sdata) in add_files() argument
941 if (!sdata->vif.debugfs_dir) in add_files()
947 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) in add_files()
948 add_common_files(sdata); in add_files()
950 switch (sdata->vif.type) { in add_files()
953 add_mesh_files(sdata); in add_files()
954 add_mesh_stats(sdata); in add_files()
955 add_mesh_config(sdata); in add_files()
959 add_sta_files(sdata); in add_files()
962 add_ibss_files(sdata); in add_files()
965 add_ap_files(sdata); in add_files()
968 add_vlan_files(sdata); in add_files()
991 switch (link->sdata->vif.type) { in add_link_files()
1000 static void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata, in ieee80211_debugfs_add_netdev() argument
1005 sprintf(buf, "netdev:%s", sdata->name); in ieee80211_debugfs_add_netdev()
1006 sdata->vif.debugfs_dir = debugfs_create_dir(buf, in ieee80211_debugfs_add_netdev()
1007 sdata->local->hw.wiphy->debugfsdir); in ieee80211_debugfs_add_netdev()
1009 sdata->deflink.debugfs_dir = sdata->vif.debugfs_dir; in ieee80211_debugfs_add_netdev()
1010 sdata->debugfs.subdir_stations = debugfs_create_dir("stations", in ieee80211_debugfs_add_netdev()
1011 sdata->vif.debugfs_dir); in ieee80211_debugfs_add_netdev()
1012 add_files(sdata); in ieee80211_debugfs_add_netdev()
1014 add_link_files(&sdata->deflink, sdata->vif.debugfs_dir); in ieee80211_debugfs_add_netdev()
1017 void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata) in ieee80211_debugfs_remove_netdev() argument
1019 if (!sdata->vif.debugfs_dir) in ieee80211_debugfs_remove_netdev()
1022 debugfs_remove_recursive(sdata->vif.debugfs_dir); in ieee80211_debugfs_remove_netdev()
1023 sdata->vif.debugfs_dir = NULL; in ieee80211_debugfs_remove_netdev()
1024 sdata->debugfs.subdir_stations = NULL; in ieee80211_debugfs_remove_netdev()
1027 void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata) in ieee80211_debugfs_rename_netdev() argument
1032 dir = sdata->vif.debugfs_dir; in ieee80211_debugfs_rename_netdev()
1037 sprintf(buf, "netdev:%s", sdata->name); in ieee80211_debugfs_rename_netdev()
1041 void ieee80211_debugfs_recreate_netdev(struct ieee80211_sub_if_data *sdata, in ieee80211_debugfs_recreate_netdev() argument
1044 ieee80211_debugfs_remove_netdev(sdata); in ieee80211_debugfs_recreate_netdev()
1045 ieee80211_debugfs_add_netdev(sdata, mld_vif); in ieee80211_debugfs_recreate_netdev()
1047 if (sdata->flags & IEEE80211_SDATA_IN_DRIVER) { in ieee80211_debugfs_recreate_netdev()
1048 drv_vif_add_debugfs(sdata->local, sdata); in ieee80211_debugfs_recreate_netdev()
1050 ieee80211_link_debugfs_drv_add(&sdata->deflink); in ieee80211_debugfs_recreate_netdev()
1058 if (WARN_ON(!link->sdata->vif.debugfs_dir || link->debugfs_dir)) in ieee80211_link_debugfs_add()
1062 if (WARN_ON(!(link->sdata->local->hw.wiphy->flags & WIPHY_FLAG_SUPPORTS_MLO))) in ieee80211_link_debugfs_add()
1070 link->sdata->vif.debugfs_dir); in ieee80211_link_debugfs_add()
1078 if (!link->sdata->vif.debugfs_dir || !link->debugfs_dir) { in ieee80211_link_debugfs_remove()
1083 if (link->debugfs_dir == link->sdata->vif.debugfs_dir) { in ieee80211_link_debugfs_remove()
1084 WARN_ON(link != &link->sdata->deflink); in ieee80211_link_debugfs_remove()
1095 if (link->sdata->vif.type == NL80211_IFTYPE_MONITOR || in ieee80211_link_debugfs_drv_add()
1099 drv_link_add_debugfs(link->sdata->local, link->sdata, in ieee80211_link_debugfs_drv_add()
1108 if (WARN_ON(link->debugfs_dir == link->sdata->vif.debugfs_dir)) in ieee80211_link_debugfs_drv_remove()