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, gree...@candelatech.com wrote: From: Ben Greear gree...@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 gree...@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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 -- To unsubscribe from this list: send the line unsubscribe linux-wireless in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 gree...@candelatech.com Candela Technologies Inc http://www.candelatech.com -- To unsubscribe from this list: send the line unsubscribe linux-wireless in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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, gree...@candelatech.com wrote: From: Ben Greear gree...@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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] mac80211-hwsim: add frequency attribute to netlink pkts
From: Ben Greear gree...@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 gree...@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) -- 1.7.11.7 -- To unsubscribe from this list: send the line unsubscribe linux-wireless in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html