* [PATCH 2/2] ath5k: capture CCK and OFDM restarts
@ 2014-06-13 21:41 Mathy Vanhoef
2014-06-13 22:07 ` Felix Fietkau
0 siblings, 1 reply; 6+ messages in thread
From: Mathy Vanhoef @ 2014-06-13 21:41 UTC (permalink / raw)
To: John W. Linville
Cc: linux-wireless, Jiri Slaby, Nick Kossifidis, Luis R. Rodriguez,
ath5k-devel
Hi all,
This patch allows users to see CCK and OFDM restarts when FIF_FCSFAIL is set.
Without this patch only the stronger frame (causing the restart) would be
visible.
The patch has been tested using our reactive jammer. The prefix of the weaker
frame is being correctly passed on as a frame with bad CRC!
--
From: "Mathy Vanhoef" <vanhoefm@gmail.com>
Treat frames that underwent a CCK or OFDM restart as frames with an invalid CRC.
Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com>
---
drivers/net/wireless/ath/ath5k/base.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 39ba642..1bbc850 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -1462,7 +1462,19 @@ ath5k_receive_frame_ok(struct ath5k_hw *ah, struct ath5k_rx_status *rs)
ah->stats.rxerr_phy++;
if (rs->rs_phyerr > 0 && rs->rs_phyerr < 32)
ah->stats.rxerr_phy_code[rs->rs_phyerr]++;
- return false;
+
+ /*
+ * Threat packets that underwent a CCK of OFDM reset as having a bad CRC.
+ * These restarts happen when the radio resynchronizes to a stronger frame
+ * while receiving a weaker frame. Here we receive the prefix of the weak
+ * frame. Since these are incomplete packets, mark their CRC as invalid.
+ */
+ if (rs->rs_phyerr == AR5K_RX_PHY_ERROR_OFDM_RESTART ||
+ rs->rs_phyerr == AR5K_RX_PHY_ERROR_CCK_RESTART) {
+ rs->rs_status |= AR5K_RXERR_CRC;
+ rs->rs_status &= (~AR5K_RXERR_PHY);
+ }
}
if (rs->rs_status & AR5K_RXERR_DECRYPT) {
/*
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 2/2] ath5k: capture CCK and OFDM restarts
2014-06-13 21:41 [PATCH 2/2] ath5k: capture CCK and OFDM restarts Mathy Vanhoef
@ 2014-06-13 22:07 ` Felix Fietkau
2014-06-13 23:14 ` Mathy Vanhoef
0 siblings, 1 reply; 6+ messages in thread
From: Felix Fietkau @ 2014-06-13 22:07 UTC (permalink / raw)
To: Mathy Vanhoef, John W. Linville
Cc: linux-wireless, Jiri Slaby, Nick Kossifidis, Luis R. Rodriguez,
ath5k-devel
On 2014-06-13 23:41, Mathy Vanhoef wrote:
> Hi all,
>
> This patch allows users to see CCK and OFDM restarts when FIF_FCSFAIL is set.
> Without this patch only the stronger frame (causing the restart) would be
> visible.
>
> The patch has been tested using our reactive jammer. The prefix of the weaker
> frame is being correctly passed on as a frame with bad CRC!
> --
> From: "Mathy Vanhoef" <vanhoefm@gmail.com>
>
> Treat frames that underwent a CCK or OFDM restart as frames with an invalid CRC.
>
> Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com>
> ---
> drivers/net/wireless/ath/ath5k/base.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index 39ba642..1bbc850 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -1462,7 +1462,19 @@ ath5k_receive_frame_ok(struct ath5k_hw *ah, struct ath5k_rx_status *rs)
> ah->stats.rxerr_phy++;
> if (rs->rs_phyerr > 0 && rs->rs_phyerr < 32)
> ah->stats.rxerr_phy_code[rs->rs_phyerr]++;
> - return false;
> +
> + /*
> + * Threat packets that underwent a CCK of OFDM reset as having a bad CRC.
> + * These restarts happen when the radio resynchronizes to a stronger frame
> + * while receiving a weaker frame. Here we receive the prefix of the weak
> + * frame. Since these are incomplete packets, mark their CRC as invalid.
> + */
> + if (rs->rs_phyerr == AR5K_RX_PHY_ERROR_OFDM_RESTART ||
> + rs->rs_phyerr == AR5K_RX_PHY_ERROR_CCK_RESTART) {
> + rs->rs_status |= AR5K_RXERR_CRC;
> + rs->rs_status &= (~AR5K_RXERR_PHY);
Unnecessary braces
> + }
What about the return statement you removed, shouldn't you add that back
for the 'else' case?
- Felix
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 2/2] ath5k: capture CCK and OFDM restarts
2014-06-13 22:07 ` Felix Fietkau
@ 2014-06-13 23:14 ` Mathy Vanhoef
2014-06-14 0:27 ` [ath5k-devel] " Gus Wirth
0 siblings, 1 reply; 6+ messages in thread
From: Mathy Vanhoef @ 2014-06-13 23:14 UTC (permalink / raw)
To: Felix Fietkau, John W. Linville
Cc: linux-wireless, Jiri Slaby, Nick Kossifidis, Luis R. Rodriguez,
ath5k-devel
On 14/06/2014 0:07, Felix Fietkau wrote:
> On 2014-06-13 23:41, Mathy Vanhoef wrote:
>> Hi all,
>>
>> This patch allows users to see CCK and OFDM restarts when FIF_FCSFAIL is set.
>> Without this patch only the stronger frame (causing the restart) would be
>> visible.
>>
>> The patch has been tested using our reactive jammer. The prefix of the weaker
>> frame is being correctly passed on as a frame with bad CRC!
>> --
>> From: "Mathy Vanhoef" <vanhoefm@gmail.com>
>>
>> Treat frames that underwent a CCK or OFDM restart as frames with an invalid CRC.
>>
>> Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com>
>> ---
>> drivers/net/wireless/ath/ath5k/base.c | 14 +++++++++++++-
>> 1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
>> index 39ba642..1bbc850 100644
>> --- a/drivers/net/wireless/ath/ath5k/base.c
>> +++ b/drivers/net/wireless/ath/ath5k/base.c
>> @@ -1462,7 +1462,19 @@ ath5k_receive_frame_ok(struct ath5k_hw *ah, struct ath5k_rx_status *rs)
>> ah->stats.rxerr_phy++;
>> if (rs->rs_phyerr > 0 && rs->rs_phyerr < 32)
>> ah->stats.rxerr_phy_code[rs->rs_phyerr]++;
>> - return false;
>> +
>> + /*
>> + * Threat packets that underwent a CCK of OFDM reset as having a bad CRC.
>> + * These restarts happen when the radio resynchronizes to a stronger frame
>> + * while receiving a weaker frame. Here we receive the prefix of the weak
>> + * frame. Since these are incomplete packets, mark their CRC as invalid.
>> + */
>> + if (rs->rs_phyerr == AR5K_RX_PHY_ERROR_OFDM_RESTART ||
>> + rs->rs_phyerr == AR5K_RX_PHY_ERROR_CCK_RESTART) {
>> + rs->rs_status |= AR5K_RXERR_CRC;
>> + rs->rs_status &= (~AR5K_RXERR_PHY);
> Unnecessary braces
>
>> + }
> What about the return statement you removed, shouldn't you add that back
> for the 'else' case?
>
> - Felix
>
Just saw a spelling mistake in the comment, s/Threat/Treat.
The parenthesis around `(~AR5K_RXERR_PHY)` can indeed be removed. I suppose it's best to keep the return statement (I don't know precisely why it appears so early in the function, but it likely has a good reason). Updated patch is included below.
--
From: "Mathy Vanhoef" <vanhoefm@gmail.com>
Treat frames that underwent a CCK or OFDM restart as frames with an invalid CRC.
Signed-off-by: Mathy Vanhoef <vanhoefm@gmail.com>
---
drivers/net/wireless/ath/ath5k/base.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 4b18434..6e7c636 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -1457,7 +1457,20 @@ ath5k_receive_frame_ok(struct ath5k_hw *ah, struct ath5k_rx_status *rs)
ah->stats.rxerr_phy++;
if (rs->rs_phyerr > 0 && rs->rs_phyerr < 32)
ah->stats.rxerr_phy_code[rs->rs_phyerr]++;
- return false;
+
+ /*
+ * Treat packets that underwent a CCK of OFDM reset as having a bad CRC.
+ * These restarts happen when the radio resynchronizes to a stronger frame
+ * while receiving a weaker frame. Here we receive the prefix of the weak
+ * frame. Since these are incomplete packets, mark their CRC as invalid.
+ */
+ if (rs->rs_phyerr == AR5K_RX_PHY_ERROR_OFDM_RESTART ||
+ rs->rs_phyerr == AR5K_RX_PHY_ERROR_CCK_RESTART) {
+ rs->rs_status |= AR5K_RXERR_CRC;
+ rs->rs_status &= ~AR5K_RXERR_PHY;
+ } else {
+ return false;
+ }
}
if (rs->rs_status & AR5K_RXERR_DECRYPT) {
/*
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [ath5k-devel] [PATCH 2/2] ath5k: capture CCK and OFDM restarts
2014-06-13 23:14 ` Mathy Vanhoef
@ 2014-06-14 0:27 ` Gus Wirth
2014-06-23 21:20 ` Mathy Vanhoef
0 siblings, 1 reply; 6+ messages in thread
From: Gus Wirth @ 2014-06-14 0:27 UTC (permalink / raw)
To: Mathy Vanhoef, Felix Fietkau, John W. Linville
Cc: ath5k-devel, Luis R. Rodriguez, linux-wireless, Jiri Slaby
On 2014-06-13 16:14, Mathy Vanhoef wrote:
[snip]
> Just saw a spelling mistake in the comment, s/Threat/Treat.
One more mistake in the comment.
Change the word "of" to "or":
...underwent a CCK of OFDM reset...
should be
...underwent a CCK or OFDM reset...
Gus
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ath5k-devel] [PATCH 2/2] ath5k: capture CCK and OFDM restarts
2014-06-14 0:27 ` [ath5k-devel] " Gus Wirth
@ 2014-06-23 21:20 ` Mathy Vanhoef
2014-06-25 19:09 ` John W. Linville
0 siblings, 1 reply; 6+ messages in thread
From: Mathy Vanhoef @ 2014-06-23 21:20 UTC (permalink / raw)
To: Gus Wirth
Cc: Felix Fietkau, John W. Linville, ath5k-devel, Luis R. Rodriguez,
linux-wireless, Jiri Slaby
I'm sure the spelling error can be fixed when applying the patch.
This (and the previous patch) is useful for people using monitor mode
to diagnose network problems, monitor traffic, research things, etc.
So it would be nice to have it included!
On Sat, Jun 14, 2014 at 2:27 AM, Gus Wirth <gwirth79@gmail.com> wrote:
> On 2014-06-13 16:14, Mathy Vanhoef wrote:
> [snip]
>> Just saw a spelling mistake in the comment, s/Threat/Treat.
>
> One more mistake in the comment.
>
> Change the word "of" to "or":
>
>
> ...underwent a CCK of OFDM reset...
>
> should be
>
> ...underwent a CCK or OFDM reset...
>
> Gus
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ath5k-devel] [PATCH 2/2] ath5k: capture CCK and OFDM restarts
2014-06-23 21:20 ` Mathy Vanhoef
@ 2014-06-25 19:09 ` John W. Linville
0 siblings, 0 replies; 6+ messages in thread
From: John W. Linville @ 2014-06-25 19:09 UTC (permalink / raw)
To: Mathy Vanhoef
Cc: Gus Wirth, Felix Fietkau, ath5k-devel, Luis R. Rodriguez,
linux-wireless, Jiri Slaby
On Mon, Jun 23, 2014 at 11:20:54PM +0200, Mathy Vanhoef wrote:
> I'm sure the spelling error can be fixed when applying the patch.
>
> This (and the previous patch) is useful for people using monitor mode
> to diagnose network problems, monitor traffic, research things, etc.
> So it would be nice to have it included!
It would also be nice if you could repost it properly, instead
of expecting me to dig through email threads to piece together a
mergeable patch...
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-06-25 19:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-13 21:41 [PATCH 2/2] ath5k: capture CCK and OFDM restarts Mathy Vanhoef
2014-06-13 22:07 ` Felix Fietkau
2014-06-13 23:14 ` Mathy Vanhoef
2014-06-14 0:27 ` [ath5k-devel] " Gus Wirth
2014-06-23 21:20 ` Mathy Vanhoef
2014-06-25 19:09 ` John W. Linville
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).