From: Richard Farina <sidhayn@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH v3] mac80211/cfg80211: report monitor channel in wireless extensions
Date: Fri, 21 Dec 2012 23:32:46 -0500 [thread overview]
Message-ID: <50D537EE.7030803@gmail.com> (raw)
In-Reply-To: <1320831021.3845.14.camel@jlt3.sipsolutions.net>
On 11/09/2011 04:30 AM, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
Johannes,
This patch has been great for us since it was added in 3.3_rc1, however,
it looks like there was some rewrite in 3.7_rc1 and this is no longer
functional. I'm not really the guy that understands the code, but I'm
hoping you will have mercy on us again and maybe take a look? :-)
Thanks,
Zero
>
> Just add API to get the channel & report it. Trivial really.
>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> ---
> So trivial it didn't even work ;-)
>
> include/net/cfg80211.h | 5 +++++
> net/mac80211/cfg.c | 9 +++++++++
> net/wireless/wext-compat.c | 12 ++++++++++++
> 3 files changed, 26 insertions(+)
>
> --- a/include/net/cfg80211.h 2011-11-09 10:13:05.000000000 +0100
> +++ b/include/net/cfg80211.h 2011-11-09 10:27:47.000000000 +0100
> @@ -1342,6 +1342,9 @@ struct cfg80211_gtk_rekey_data {
> * doesn't verify much. Note, however, that the passed netdev may be
> * %NULL as well if the user requested changing the channel for the
> * device itself, or for a monitor interface.
> + * @get_channel: Get the current operating channel, should return %NULL if
> + * there's no single defined operating channel if for example the
> + * device implements channel hopping for multi-channel virtual interfaces.
> *
> * @scan: Request to do a scan. If returning zero, the scan request is given
> * the driver, and will be valid until passed to cfg80211_scan_done().
> @@ -1627,6 +1630,8 @@ struct cfg80211_ops {
>
> int (*probe_client)(struct wiphy *wiphy, struct net_device *dev,
> const u8 *peer, u64 *cookie);
> +
> + struct ieee80211_channel *(*get_channel)(struct wiphy *wiphy);
> };
>
> /*
> --- a/net/wireless/wext-compat.c 2011-11-09 10:07:35.000000000 +0100
> +++ b/net/wireless/wext-compat.c 2011-11-09 10:13:18.000000000 +0100
> @@ -819,12 +819,24 @@ static int cfg80211_wext_giwfreq(struct
> struct iw_freq *freq, char *extra)
> {
> struct wireless_dev *wdev = dev->ieee80211_ptr;
> + struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);
> + struct ieee80211_channel *chan;
>
> switch (wdev->iftype) {
> case NL80211_IFTYPE_STATION:
> return cfg80211_mgd_wext_giwfreq(dev, info, freq, extra);
> case NL80211_IFTYPE_ADHOC:
> return cfg80211_ibss_wext_giwfreq(dev, info, freq, extra);
> + case NL80211_IFTYPE_MONITOR:
> + if (!rdev->ops->get_channel)
> + return -EINVAL;
> +
> + chan = rdev->ops->get_channel(wdev->wiphy);
> + if (!chan)
> + return -EINVAL;
> + freq->m = chan->center_freq;
> + freq->e = 6;
> + return 0;
> default:
> if (!wdev->channel)
> return -EINVAL;
> --- a/net/mac80211/cfg.c 2011-11-09 10:10:56.000000000 +0100
> +++ b/net/mac80211/cfg.c 2011-11-09 10:29:40.000000000 +0100
> @@ -2579,6 +2579,14 @@ static int ieee80211_probe_client(struct
> return 0;
> }
>
> +static struct ieee80211_channel *
> +ieee80211_wiphy_get_channel(struct wiphy *wiphy)
> +{
> + struct ieee80211_local *local = wiphy_priv(wiphy);
> +
> + return local->oper_channel;
> +}
> +
> struct cfg80211_ops mac80211_config_ops = {
> .add_virtual_intf = ieee80211_add_iface,
> .del_virtual_intf = ieee80211_del_iface,
> @@ -2645,4 +2653,5 @@ struct cfg80211_ops mac80211_config_ops
> .tdls_oper = ieee80211_tdls_oper,
> .tdls_mgmt = ieee80211_tdls_mgmt,
> .probe_client = ieee80211_probe_client,
> + .get_channel = ieee80211_wiphy_get_channel,
> };
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
prev parent reply other threads:[~2012-12-22 4:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-08 18:52 [PATCH] mac80211/cfg80211: report monitor channel in wireless extensions Johannes Berg
2011-11-08 18:56 ` Ben Greear
2011-11-08 19:00 ` Johannes Berg
2011-11-08 19:01 ` [PATCH v2] " Johannes Berg
2011-11-09 9:30 ` [PATCH v3] " Johannes Berg
2011-11-10 9:28 ` Gábor Stefanik
2011-11-10 9:32 ` Johannes Berg
2012-12-22 4:32 ` Richard Farina [this message]
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=50D537EE.7030803@gmail.com \
--to=sidhayn@gmail.com \
--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.