Message ID | 1414447486-10385-1-git-send-email-greearb@candelatech.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Mon, 2014-10-27 at 15:04 -0700, greearb@candelatech.com wrote: > From: Ben Greear <greearb@candelatech.com> > > Add frequency attribute when sending to user-space over > netlink socket. The frequency is currently ignored when > receiving from user-space. Applied. johannes -- 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
On 10/29/2014 08:55 AM, Johannes Berg wrote: > On Mon, 2014-10-27 at 15:04 -0700, greearb@candelatech.com wrote: >> From: Ben Greear <greearb@candelatech.com> >> >> 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
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, greearb@candelatech.com wrote: > >> From: Ben Greear <greearb@candelatech.com> > >> > >> 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 -- 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
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, greearb@candelatech.com wrote: > From: Ben Greear <greearb@candelatech.com> > > 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 <greearb@candelatech.com> > --- > 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 -- 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
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 -- 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
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 -- 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
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 -- 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
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
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)