From: Antonio Quartulli <antonio@meshcoding.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: devel@lists.open80211s.org, b.a.t.m.a.n@lists.open-mesh.org,
linux-wireless@vger.kernel.org,
Antonio Quartulli <antonio@open-mesh.com>
Subject: [B.A.T.M.A.N.] [RFCv2 6/6] cfg80211: implement cfg80211_get_station cfg80211 API
Date: Sun, 30 Mar 2014 22:35:04 +0200 [thread overview]
Message-ID: <1396211704-4677-7-git-send-email-antonio@meshcoding.com> (raw)
In-Reply-To: <1396211704-4677-1-git-send-email-antonio@meshcoding.com>
From: Antonio Quartulli <antonio@open-mesh.com>
Implement and export the new cfg80211_get_station() API.
This utility can be used by other kernel modules to obtain
detailed information about a given wireless station.
It will be in particular useful to batman-adv which will
implement a wireless rate based metric.
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
include/net/cfg80211.h | 11 +++++++++++
net/wireless/util.c | 18 ++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 4c8ebe9..45062aa 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1065,6 +1065,17 @@ struct station_info {
};
/**
+ * cfg80211_get_station - retrieve information about a given station
+ * @dev: the device where the station is supposed to be connected to
+ * @mac_addr: the mac address of the station of interest
+ * @sinfo: pointer to the structure to fill with the information
+ *
+ * Returns 0 on success or a negative error code otherwise.
+ */
+int cfg80211_get_station(struct net_device *dev, u8 *mac_addr,
+ struct station_info *sinfo);
+
+/**
* enum monitor_flags - monitor flags
*
* Monitor interface configuration flags. Note that these must be the bits
diff --git a/net/wireless/util.c b/net/wireless/util.c
index c5d0208..c691cf8 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -1482,6 +1482,24 @@ unsigned int ieee80211_get_num_supported_channels(struct wiphy *wiphy)
}
EXPORT_SYMBOL(ieee80211_get_num_supported_channels);
+int cfg80211_get_station(struct net_device *dev, u8 *mac_addr,
+ struct station_info *sinfo)
+{
+ struct cfg80211_registered_device *rdev;
+ struct wireless_dev *wdev;
+
+ wdev = dev->ieee80211_ptr;
+ if (!wdev)
+ return -EOPNOTSUPP;
+
+ rdev = wiphy_to_dev(wdev->wiphy);
+ if (!rdev->ops->get_station)
+ return -EOPNOTSUPP;
+
+ return rdev_get_station(rdev, dev, mac_addr, sinfo);
+}
+EXPORT_SYMBOL(cfg80211_get_station);
+
/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */
/* Ethernet-II snap header (RFC1042 for most EtherTypes) */
const unsigned char rfc1042_header[] __aligned(2) =
--
1.8.3.2
WARNING: multiple messages have this Message-ID (diff)
From: Antonio Quartulli <antonio@meshcoding.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: b.a.t.m.a.n@lists.open-mesh.org, linux-wireless@vger.kernel.org,
devel@lists.open80211s.org,
Antonio Quartulli <antonio@open-mesh.com>
Subject: [RFCv2 6/6] cfg80211: implement cfg80211_get_station cfg80211 API
Date: Sun, 30 Mar 2014 22:35:04 +0200 [thread overview]
Message-ID: <1396211704-4677-7-git-send-email-antonio@meshcoding.com> (raw)
In-Reply-To: <1396211704-4677-1-git-send-email-antonio@meshcoding.com>
From: Antonio Quartulli <antonio@open-mesh.com>
Implement and export the new cfg80211_get_station() API.
This utility can be used by other kernel modules to obtain
detailed information about a given wireless station.
It will be in particular useful to batman-adv which will
implement a wireless rate based metric.
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
---
include/net/cfg80211.h | 11 +++++++++++
net/wireless/util.c | 18 ++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 4c8ebe9..45062aa 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1065,6 +1065,17 @@ struct station_info {
};
/**
+ * cfg80211_get_station - retrieve information about a given station
+ * @dev: the device where the station is supposed to be connected to
+ * @mac_addr: the mac address of the station of interest
+ * @sinfo: pointer to the structure to fill with the information
+ *
+ * Returns 0 on success or a negative error code otherwise.
+ */
+int cfg80211_get_station(struct net_device *dev, u8 *mac_addr,
+ struct station_info *sinfo);
+
+/**
* enum monitor_flags - monitor flags
*
* Monitor interface configuration flags. Note that these must be the bits
diff --git a/net/wireless/util.c b/net/wireless/util.c
index c5d0208..c691cf8 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -1482,6 +1482,24 @@ unsigned int ieee80211_get_num_supported_channels(struct wiphy *wiphy)
}
EXPORT_SYMBOL(ieee80211_get_num_supported_channels);
+int cfg80211_get_station(struct net_device *dev, u8 *mac_addr,
+ struct station_info *sinfo)
+{
+ struct cfg80211_registered_device *rdev;
+ struct wireless_dev *wdev;
+
+ wdev = dev->ieee80211_ptr;
+ if (!wdev)
+ return -EOPNOTSUPP;
+
+ rdev = wiphy_to_dev(wdev->wiphy);
+ if (!rdev->ops->get_station)
+ return -EOPNOTSUPP;
+
+ return rdev_get_station(rdev, dev, mac_addr, sinfo);
+}
+EXPORT_SYMBOL(cfg80211_get_station);
+
/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */
/* Ethernet-II snap header (RFC1042 for most EtherTypes) */
const unsigned char rfc1042_header[] __aligned(2) =
--
1.8.3.2
next prev parent reply other threads:[~2014-03-30 20:35 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-30 20:34 [B.A.T.M.A.N.] [RFCv2 0/6] Export the expected throughput Antonio Quartulli
2014-03-30 20:34 ` Antonio Quartulli
2014-03-30 20:34 ` [B.A.T.M.A.N.] [RFCv2 1/6] cfg80211: export expected throughput through get_station() Antonio Quartulli
2014-03-30 20:34 ` Antonio Quartulli
2014-03-31 8:22 ` [B.A.T.M.A.N.] " Andrew Lunn
2014-03-31 8:22 ` Andrew Lunn
2014-03-31 8:46 ` Antonio Quartulli
2014-03-31 8:46 ` Antonio Quartulli
2014-04-08 10:03 ` Johannes Berg
2014-04-08 10:03 ` Johannes Berg
2014-04-10 16:22 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 16:22 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 2/6] mac80211: add new RC API to retrieve expected throughput Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-04-08 10:03 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-08 10:03 ` Johannes Berg
2014-04-10 15:46 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 15:46 ` Antonio Quartulli
2014-04-10 17:13 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-10 17:13 ` Johannes Berg
2014-04-11 7:03 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-11 7:03 ` Antonio Quartulli
2014-04-08 10:04 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-08 10:04 ` Johannes Berg
2014-04-10 15:53 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 15:53 ` Antonio Quartulli
2014-04-10 17:14 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-10 17:14 ` Johannes Berg
2014-04-11 11:30 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-11 11:30 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 3/6] mac80211: export expected throughput in set_sta_info() Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 4/6] mac80211: minstrel - implement get_expected_throughput() API Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-03-31 8:49 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-03-31 8:49 ` Antonio Quartulli
2014-04-08 10:05 ` Johannes Berg
2014-04-08 10:05 ` Johannes Berg
2014-04-10 15:54 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 15:54 ` Antonio Quartulli
2014-03-30 20:35 ` [B.A.T.M.A.N.] [RFCv2 5/6] mac80211: minstrel_ht " Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli
2014-03-30 20:35 ` Antonio Quartulli [this message]
2014-03-30 20:35 ` [RFCv2 6/6] cfg80211: implement cfg80211_get_station cfg80211 API Antonio Quartulli
2014-04-08 10:06 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-08 10:06 ` Johannes Berg
2014-04-10 16:02 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-10 16:02 ` Antonio Quartulli
2014-04-10 17:12 ` [B.A.T.M.A.N.] " Johannes Berg
2014-04-10 17:12 ` Johannes Berg
2014-04-11 7:04 ` [B.A.T.M.A.N.] " Antonio Quartulli
2014-04-11 7:04 ` Antonio Quartulli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1396211704-4677-7-git-send-email-antonio@meshcoding.com \
--to=antonio@meshcoding.com \
--cc=antonio@open-mesh.com \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
--cc=devel@lists.open80211s.org \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.