2014-10-27 22:04:52

by Ben Greear

[permalink] [raw]
Subject: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

From: Ben Greear <[email protected]>

Add frequency attribute when sending to user-space over
netlink socket. The frequency is currently ignored when
receiving from user-space.

Signed-off-by: Ben Greear <[email protected]>
---
drivers/net/wireless/mac80211_hwsim.c | 7 +++++++
drivers/net/wireless/mac80211_hwsim.h | 4 +++-
2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 270f8cd..b40435c 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -906,6 +906,9 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,
if (nla_put_u32(skb, HWSIM_ATTR_FLAGS, hwsim_flags))
goto nla_put_failure;

+ if (nla_put_u32(skb, HWSIM_ATTR_FREQ, data->channel->center_freq))
+ goto nla_put_failure;
+
/* We get the tx control (rate and retries) info*/

for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
@@ -2421,6 +2424,7 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
int frame_data_len;
void *frame_data;
struct sk_buff *skb = NULL;
+ u32 freq;

if (info->snd_portid != wmediumd_portid) {
printk(KERN_DEBUG "mac80211-hwsim: port-id mismatch: %d %d\n",
@@ -2468,6 +2472,9 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,

/* A frame is received from user space */
memset(&rx_status, 0, sizeof(rx_status));
+ /* TODO: Check ATTR_FREQ if it exists, and maybe throw away off-channel
+ * packets?
+ */
rx_status.freq = data2->channel->center_freq;
rx_status.band = data2->channel->band;
rx_status.rate_idx = nla_get_u32(info->attrs[HWSIM_ATTR_RX_RATE]);
diff --git a/drivers/net/wireless/mac80211_hwsim.h b/drivers/net/wireless/mac80211_hwsim.h
index e614a20..85da35a 100644
--- a/drivers/net/wireless/mac80211_hwsim.h
+++ b/drivers/net/wireless/mac80211_hwsim.h
@@ -60,7 +60,7 @@ enum hwsim_tx_control_flags {
* space, uses:
* %HWSIM_ATTR_ADDR_TRANSMITTER, %HWSIM_ATTR_ADDR_RECEIVER,
* %HWSIM_ATTR_FRAME, %HWSIM_ATTR_FLAGS, %HWSIM_ATTR_RX_RATE,
- * %HWSIM_ATTR_SIGNAL, %HWSIM_ATTR_COOKIE
+ * %HWSIM_ATTR_SIGNAL, %HWSIM_ATTR_COOKIE, %HWSIM_ATTR_FREQ (optional)
* @HWSIM_CMD_TX_INFO_FRAME: Transmission info report from user space to
* kernel, uses:
* %HWSIM_ATTR_ADDR_TRANSMITTER, %HWSIM_ATTR_FLAGS,
@@ -113,6 +113,7 @@ enum {
* single channel is supported
* @HWSIM_ATTR_RADIO_NAME: Name of radio, e.g. phy666
* @HWSIM_ATTR_NO_VIF: Do not create vif (wlanX) when creating radio.
+ * @HWSIM_ATTR_FREQ: Frequency at which packet is transmitted or received.
* @__HWSIM_ATTR_MAX: enum limit
*/

@@ -137,6 +138,7 @@ enum {
HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE,
HWSIM_ATTR_RADIO_NAME,
HWSIM_ATTR_NO_VIF,
+ HWSIM_ATTR_FREQ,
__HWSIM_ATTR_MAX,
};
#define HWSIM_ATTR_MAX (__HWSIM_ATTR_MAX - 1)
--
1.7.11.7



2014-10-31 08:02:54

by Jukka Rissanen

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

Hi Ben & Johannes,

while rebasing my hwsim patches on top of Ben's patches, I noticed that
the freq attribute is not mentioned in hwsim_genl_policy struct. The
same applies also to radio name and vif attributes. Just wondered should
they be mentioned in the policy struct like the other attributes?


On ma, 2014-10-27 at 15:04 -0700, [email protected] wrote:
> From: Ben Greear <[email protected]>
>
> Add frequency attribute when sending to user-space over
> netlink socket. The frequency is currently ignored when
> receiving from user-space.
>
> Signed-off-by: Ben Greear <[email protected]>
> ---
> drivers/net/wireless/mac80211_hwsim.c | 7 +++++++
> drivers/net/wireless/mac80211_hwsim.h | 4 +++-
> 2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
> index 270f8cd..b40435c 100644
> --- a/drivers/net/wireless/mac80211_hwsim.c
> +++ b/drivers/net/wireless/mac80211_hwsim.c
> @@ -906,6 +906,9 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw,
> if (nla_put_u32(skb, HWSIM_ATTR_FLAGS, hwsim_flags))
> goto nla_put_failure;
>
> + if (nla_put_u32(skb, HWSIM_ATTR_FREQ, data->channel->center_freq))
> + goto nla_put_failure;
> +
> /* We get the tx control (rate and retries) info*/
>
> for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
> @@ -2421,6 +2424,7 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
> int frame_data_len;
> void *frame_data;
> struct sk_buff *skb = NULL;
> + u32 freq;
>
> if (info->snd_portid != wmediumd_portid) {
> printk(KERN_DEBUG "mac80211-hwsim: port-id mismatch: %d %d\n",
> @@ -2468,6 +2472,9 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
>
> /* A frame is received from user space */
> memset(&rx_status, 0, sizeof(rx_status));
> + /* TODO: Check ATTR_FREQ if it exists, and maybe throw away off-channel
> + * packets?
> + */
> rx_status.freq = data2->channel->center_freq;
> rx_status.band = data2->channel->band;
> rx_status.rate_idx = nla_get_u32(info->attrs[HWSIM_ATTR_RX_RATE]);
> diff --git a/drivers/net/wireless/mac80211_hwsim.h b/drivers/net/wireless/mac80211_hwsim.h
> index e614a20..85da35a 100644
> --- a/drivers/net/wireless/mac80211_hwsim.h
> +++ b/drivers/net/wireless/mac80211_hwsim.h
> @@ -60,7 +60,7 @@ enum hwsim_tx_control_flags {
> * space, uses:
> * %HWSIM_ATTR_ADDR_TRANSMITTER, %HWSIM_ATTR_ADDR_RECEIVER,
> * %HWSIM_ATTR_FRAME, %HWSIM_ATTR_FLAGS, %HWSIM_ATTR_RX_RATE,
> - * %HWSIM_ATTR_SIGNAL, %HWSIM_ATTR_COOKIE
> + * %HWSIM_ATTR_SIGNAL, %HWSIM_ATTR_COOKIE, %HWSIM_ATTR_FREQ (optional)
> * @HWSIM_CMD_TX_INFO_FRAME: Transmission info report from user space to
> * kernel, uses:
> * %HWSIM_ATTR_ADDR_TRANSMITTER, %HWSIM_ATTR_FLAGS,
> @@ -113,6 +113,7 @@ enum {
> * single channel is supported
> * @HWSIM_ATTR_RADIO_NAME: Name of radio, e.g. phy666
> * @HWSIM_ATTR_NO_VIF: Do not create vif (wlanX) when creating radio.
> + * @HWSIM_ATTR_FREQ: Frequency at which packet is transmitted or received.
> * @__HWSIM_ATTR_MAX: enum limit
> */
>
> @@ -137,6 +138,7 @@ enum {
> HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE,
> HWSIM_ATTR_RADIO_NAME,
> HWSIM_ATTR_NO_VIF,
> + HWSIM_ATTR_FREQ,
> __HWSIM_ATTR_MAX,
> };
> #define HWSIM_ATTR_MAX (__HWSIM_ATTR_MAX - 1)


Cheers,
Jukka




2014-10-29 16:11:42

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

On Wed, 2014-10-29 at 09:02 -0700, Ben Greear wrote:
> On 10/29/2014 08:55 AM, Johannes Berg wrote:
> > On Mon, 2014-10-27 at 15:04 -0700, [email protected] wrote:
> >> From: Ben Greear <[email protected]>
> >>
> >> Add frequency attribute when sending to user-space over
> >> netlink socket. The frequency is currently ignored when
> >> receiving from user-space.
> >
> > Applied.
>
> Do you have any suggestions for how to deal with pkts
> received (from user-space netlink) on a frequency that does
> not match the current hwsim radio's center frequency?

No, sorry. I don't even know if you can find out the current frequency?
If you have multi-channel you don't even have a single frequency :)

johannes


2014-10-31 08:16:57

by Jukka Rissanen

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

Hi Johannes,

On pe, 2014-10-31 at 09:04 +0100, Johannes Berg wrote:
> On Fri, 2014-10-31 at 10:02 +0200, Jukka Rissanen wrote:
>
> > while rebasing my hwsim patches on top of Ben's patches, I noticed that
> > the freq attribute is not mentioned in hwsim_genl_policy struct. The
> > same applies also to radio name and vif attributes. Just wondered should
> > they be mentioned in the policy struct like the other attributes?
>
> Hmm, yes, they should be there. It's only important for the name, I
> guess, but better have them all. I can fix it or would you like to send
> a patch?

Please fix it so it gets applied faster :)


Cheers,
Jukka



2014-10-31 15:50:52

by Ben Greear

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

On 10/31/2014 01:02 AM, Jukka Rissanen wrote:
> Hi Ben & Johannes,
>
> while rebasing my hwsim patches on top of Ben's patches, I noticed that
> the freq attribute is not mentioned in hwsim_genl_policy struct. The
> same applies also to radio name and vif attributes. Just wondered should
> they be mentioned in the policy struct like the other attributes?

Thanks for fixing that!

Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com


2014-10-31 08:26:44

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

On Fri, 2014-10-31 at 10:16 +0200, Jukka Rissanen wrote:
> Hi Johannes,
>
> On pe, 2014-10-31 at 09:04 +0100, Johannes Berg wrote:
> > On Fri, 2014-10-31 at 10:02 +0200, Jukka Rissanen wrote:
> >
> > > while rebasing my hwsim patches on top of Ben's patches, I noticed that
> > > the freq attribute is not mentioned in hwsim_genl_policy struct. The
> > > same applies also to radio name and vif attributes. Just wondered should
> > > they be mentioned in the policy struct like the other attributes?
> >
> > Hmm, yes, they should be there. It's only important for the name, I
> > guess, but better have them all. I can fix it or would you like to send
> > a patch?
>
> Please fix it so it gets applied faster :)

Done.

johannes


2014-10-31 08:05:04

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

On Fri, 2014-10-31 at 10:02 +0200, Jukka Rissanen wrote:

> while rebasing my hwsim patches on top of Ben's patches, I noticed that
> the freq attribute is not mentioned in hwsim_genl_policy struct. The
> same applies also to radio name and vif attributes. Just wondered should
> they be mentioned in the policy struct like the other attributes?

Hmm, yes, they should be there. It's only important for the name, I
guess, but better have them all. I can fix it or would you like to send
a patch?

johannes


2014-10-29 15:55:18

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

On Mon, 2014-10-27 at 15:04 -0700, [email protected] wrote:
> From: Ben Greear <[email protected]>
>
> Add frequency attribute when sending to user-space over
> netlink socket. The frequency is currently ignored when
> receiving from user-space.

Applied.

johannes


2014-10-29 16:02:03

by Ben Greear

[permalink] [raw]
Subject: Re: [PATCH] mac80211-hwsim: add frequency attribute to netlink pkts

On 10/29/2014 08:55 AM, Johannes Berg wrote:
> On Mon, 2014-10-27 at 15:04 -0700, [email protected] wrote:
>> From: Ben Greear <[email protected]>
>>
>> Add frequency attribute when sending to user-space over
>> netlink socket. The frequency is currently ignored when
>> receiving from user-space.
>
> Applied.

Do you have any suggestions for how to deal with pkts
received (from user-space netlink) on a frequency that does
not match the current hwsim radio's center frequency?

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com