2010-09-23 03:29:11

by greearb

[permalink] [raw]
Subject: [mac80211] mac80211: Support multiple VIFS per AP in debugfs.

From: Ben Greear <[email protected]>

Create 'stations' sub-directory under each netdev:[vif-name]
directory to hold all stations for that network device.

Signed-off-by: Ben Greear <[email protected]>
---
:100644 100644 e81ef4e... ebd5b69... M net/mac80211/debugfs.c
:100644 100644 20b2998... 3e12430... M net/mac80211/debugfs_netdev.c
:100644 100644 76839d4... 6b7ff9f... M net/mac80211/debugfs_sta.c
:100644 100644 9346a6b... 3c7c230... M net/mac80211/ieee80211_i.h
net/mac80211/debugfs.c | 1 -
net/mac80211/debugfs_netdev.c | 3 +++
net/mac80211/debugfs_sta.c | 2 +-
net/mac80211/ieee80211_i.h | 2 +-
4 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c
index e81ef4e..ebd5b69 100644
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -368,7 +368,6 @@ void debugfs_hw_add(struct ieee80211_local *local)
if (!phyd)
return;

- local->debugfs.stations = debugfs_create_dir("stations", phyd);
local->debugfs.keys = debugfs_create_dir("keys", phyd);

DEBUGFS_ADD(frequency);
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 20b2998..3e12430 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -409,6 +409,9 @@ void ieee80211_debugfs_add_netdev(struct ieee80211_sub_if_data *sdata)
sprintf(buf, "netdev:%s", sdata->name);
sdata->debugfs.dir = debugfs_create_dir(buf,
sdata->local->hw.wiphy->debugfsdir);
+ if (sdata->debugfs.dir)
+ sdata->debugfs.subdir_stations = debugfs_create_dir("stations",
+ sdata->debugfs.dir);
add_files(sdata);
}

diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 76839d4..6b7ff9f 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -300,7 +300,7 @@ STA_OPS(ht_capa);

void ieee80211_sta_debugfs_add(struct sta_info *sta)
{
- struct dentry *stations_dir = sta->local->debugfs.stations;
+ struct dentry *stations_dir = sta->sdata->debugfs.subdir_stations;
u8 mac[3*ETH_ALEN];

sta->debugfs.add_has_run = true;
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 9346a6b..3c7c230 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -564,6 +564,7 @@ struct ieee80211_sub_if_data {
#ifdef CONFIG_MAC80211_DEBUGFS
struct {
struct dentry *dir;
+ struct dentry *subdir_stations;
struct dentry *default_key;
struct dentry *default_mgmt_key;
} debugfs;
@@ -899,7 +900,6 @@ struct ieee80211_local {
#ifdef CONFIG_MAC80211_DEBUGFS
struct local_debugfsdentries {
struct dentry *rcdir;
- struct dentry *stations;
struct dentry *keys;
} debugfs;
#endif
--
1.7.2.3



2010-09-22 18:31:10

by Johannes Berg

[permalink] [raw]
Subject: Re: [mac80211] mac80211: Support multiple VIFS per AP in debugfs.

On Wed, 2010-09-22 at 10:34 -0700, Ben Greear wrote:

> @@ -308,7 +308,7 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta)
> if (!stations_dir)
> return;
>
> - snprintf(mac, sizeof(mac), "%pM", sta->sta.addr);
> + snprintf(mac, sizeof(mac), "sta-%pM", sta->sta.addr);

Wouldn't a stations/ subdirectory in netdev:wlan0 be nicer? I don't
really care too much -- what do others think?

johannes


2010-11-10 20:01:23

by Christian Lamparter

[permalink] [raw]
Subject: Re: [mac80211] mac80211: Support multiple VIFS per AP in debugfs.

On Wednesday 10 November 2010 20:24:50 Ben Greear wrote:
> On 10/16/2010 12:00 PM, Christian Lamparter wrote:
> > On Thursday 23 September 2010 10:36:58 Johannes Berg wrote:
> >> On Wed, 2010-09-22 at 20:29 -0700, [email protected] wrote:
> >>> From: Ben Greear<[email protected]>
> >>>
> >>> Create 'stations' sub-directory under each netdev:[vif-name]
> >>> directory to hold all stations for that network device.
> >>>
> >>> Signed-off-by: Ben Greear<[email protected]>
> >>
> >> Acked-by: Johannes Berg<[email protected]>
> >
> > ieee80211_debugfs_key_add needs to be updated (debugfs_key.c).
> > Either the "station" symlink has to go, or we need to loop up
> > to which interface the sta belongs. currently it's hard-coded to
> > "sprintf(buf, "../../stations/%pM", sta->sta.addr);"
> > (something which no longer exists)
>
> To reproduce this problem, do I need to be using WEP, or should
> WPA do the trick? Or something else?
well, STAs are involved. So you want an encryption which needs/generates
per-station keys. And the setup of choice would be to go with WPA/RSN.

> Are the keys supposed to show up only in STA mode, or also when
> acting as an AP?
They will show up in STA and AP mode.

Regards,
Chr