Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 3/3] carl9170: fix usb pm suspend->resume woes
From: Christian Lamparter @ 2010-12-26 17:22 UTC (permalink / raw)
  To: linux-wireless; +Cc: linville, angus_rt

This patch revamps some common code-paths which are
shared between (re-)initialization and suspend/resume
subroutines. It also adds some helpful comments
about quirks and associated difficulties.

It's quite big, but it should fix #25382:
<https://bugzilla.kernel.org/show_bug.cgi?id=25382>

And hopefully the code is robust enough to deal with
all possible suspend/resume scenarios without requiring
the user to do any sort of manual and possibly
dangerous work.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
 drivers/net/wireless/ath/carl9170/usb.c |   53 +++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/drivers/net/wireless/ath/carl9170/usb.c b/drivers/net/wireless/ath/carl9170/usb.c
index 2d947a3..537732e 100644
--- a/drivers/net/wireless/ath/carl9170/usb.c
+++ b/drivers/net/wireless/ath/carl9170/usb.c
@@ -834,7 +834,7 @@ static int carl9170_usb_load_firmware(struct ar9170 *ar)
 	if (err)
 		goto err_out;
 
-	/* firmware restarts cmd counter */
+	/* now, start the command response counter */
 	ar->cmd_seq = -1;
 
 	return 0;
@@ -851,7 +851,12 @@ int carl9170_usb_restart(struct ar9170 *ar)
 	if (ar->intf->condition != USB_INTERFACE_BOUND)
 		return 0;
 
-	/* Disable command response sequence counter. */
+	/*
+	 * Disable the command response sequence counter check.
+	 * We already know that the device/firmware is in a bad state.
+	 * So, no extra points are awarded to anyone who reminds the
+	 * driver about that.
+	 */
 	ar->cmd_seq = -2;
 
 	err = carl9170_reboot(ar);
@@ -903,6 +908,15 @@ static int carl9170_usb_init_device(struct ar9170 *ar)
 {
 	int err;
 
+	/*
+	 * The carl9170 firmware let's the driver know when it's
+	 * ready for action. But we have to be prepared to gracefully
+	 * handle all spurious [flushed] messages after each (re-)boot.
+	 * Thus the command response counter remains disabled until it
+	 * can be safely synchronized.
+	 */
+	ar->cmd_seq = -2;
+
 	err = carl9170_usb_send_rx_irq_urb(ar);
 	if (err)
 		goto err_out;
@@ -911,14 +925,21 @@ static int carl9170_usb_init_device(struct ar9170 *ar)
 	if (err)
 		goto err_unrx;
 
+	err = carl9170_usb_open(ar);
+	if (err)
+		goto err_unrx;
+
 	mutex_lock(&ar->mutex);
 	err = carl9170_usb_load_firmware(ar);
 	mutex_unlock(&ar->mutex);
 	if (err)
-		goto err_unrx;
+		goto err_stop;
 
 	return 0;
 
+err_stop:
+	carl9170_usb_stop(ar);
+
 err_unrx:
 	carl9170_usb_cancel_urbs(ar);
 
@@ -964,10 +985,6 @@ static void carl9170_usb_firmware_finish(struct ar9170 *ar)
 	if (err)
 		goto err_freefw;
 
-	err = carl9170_usb_open(ar);
-	if (err)
-		goto err_unrx;
-
 	err = carl9170_register(ar);
 
 	carl9170_usb_stop(ar);
@@ -1043,7 +1060,6 @@ static int carl9170_usb_probe(struct usb_interface *intf,
 	atomic_set(&ar->rx_work_urbs, 0);
 	atomic_set(&ar->rx_anch_urbs, 0);
 	atomic_set(&ar->rx_pool_urbs, 0);
-	ar->cmd_seq = -2;
 
 	usb_get_dev(ar->udev);
 
@@ -1090,10 +1106,6 @@ static int carl9170_usb_suspend(struct usb_interface *intf,
 
 	carl9170_usb_cancel_urbs(ar);
 
-	/*
-	 * firmware automatically reboots for usb suspend.
-	 */
-
 	return 0;
 }
 
@@ -1106,12 +1118,20 @@ static int carl9170_usb_resume(struct usb_interface *intf)
 		return -ENODEV;
 
 	usb_unpoison_anchored_urbs(&ar->rx_anch);
+	carl9170_set_state(ar, CARL9170_STOPPED);
 
-	err = carl9170_usb_init_device(ar);
-	if (err)
-		goto err_unrx;
+	/*
+	 * The USB documentation demands that [for suspend] all traffic
+	 * to and from the device has to stop. This would be fine, but
+	 * there's a catch: the device[usb phy] does not come back.
+	 *
+	 * Upon resume the firmware will "kill" itself and the
+	 * boot-code sorts out the magic voodoo.
+	 * Not very nice, but there's not much what could go wrong.
+	 */
+	msleep(1100);
 
-	err = carl9170_usb_open(ar);
+	err = carl9170_usb_init_device(ar);
 	if (err)
 		goto err_unrx;
 
@@ -1133,6 +1153,7 @@ static struct usb_driver carl9170_driver = {
 #ifdef CONFIG_PM
 	.suspend = carl9170_usb_suspend,
 	.resume = carl9170_usb_resume,
+	.reset_resume = carl9170_usb_resume,
 #endif /* CONFIG_PM */
 };
 
-- 
1.7.2.3


^ permalink raw reply related

* [RFC] mac80211: ignore PSM bit of reordered frames
From: Christian Lamparter @ 2010-12-26 19:56 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg

This patch tackles one of the problems of my
reorder release timer patch from August.

<http://www.spinics.net/lists/linux-wireless/msg57214.html>
=>
What if the reorder release triggers and ap_sta_ps_end
(called by ieee80211_rx_h_sta_process) accidentally clears
the WLAN_STA_PS_STA flag, because 100ms ago - when the STA
was still active - frames were put into the reorder buffer.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
Alternatively, we could flush the per-tid STA reorder buffer
content in ap_sta_ps_start, so the buffer is empty.

---
 net/mac80211/ieee80211_i.h |    2 ++
 net/mac80211/rx.c          |    4 ++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index a0cf5ab..bb71fe3 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -168,6 +168,7 @@ typedef unsigned __bitwise__ ieee80211_rx_result;
  * @IEEE80211_RX_FRAGMENTED: fragmented frame
  * @IEEE80211_RX_AMSDU: a-MSDU packet
  * @IEEE80211_RX_MALFORMED_ACTION_FRM: action frame is malformed
+ * @IEEE80211_RX_DEFERED_RELEASE: frame was subjected to receive reordering
  *
  * These are per-frame flags that are attached to a frame in the
  * @rx_flags field of &struct ieee80211_rx_status.
@@ -178,6 +179,7 @@ enum ieee80211_packet_rx_flags {
 	IEEE80211_RX_FRAGMENTED			= BIT(2),
 	IEEE80211_RX_AMSDU			= BIT(3),
 	IEEE80211_RX_MALFORMED_ACTION_FRM	= BIT(4),
+	IEEE80211_RX_DEFERED_RELEASE		= BIT(5),
 };
 
 /**
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index b6c2a30..e612805 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -537,6 +537,7 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
 					    struct sk_buff_head *frames)
 {
 	struct sk_buff *skb = tid_agg_rx->reorder_buf[index];
+	struct ieee80211_rx_status *status;
 
 	lockdep_assert_held(&tid_agg_rx->reorder_lock);
 
@@ -546,6 +547,8 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
 	/* release the frame from the reorder ring buffer */
 	tid_agg_rx->stored_mpdu_num--;
 	tid_agg_rx->reorder_buf[index] = NULL;
+	status = IEEE80211_SKB_RXCB(skb);
+	status->rx_flags |= IEEE80211_RX_DEFERED_RELEASE;
 	__skb_queue_tail(frames, skb);
 
 no_frame:
@@ -1185,6 +1188,7 @@ ieee80211_rx_h_sta_process(struct ieee80211_rx_data *rx)
 	 * exchange sequence.
 	 */
 	if (!ieee80211_has_morefrags(hdr->frame_control) &&
+	    !(status->rx_flags & IEEE80211_RX_DEFERED_RELEASE) &&
 	    (rx->sdata->vif.type == NL80211_IFTYPE_AP ||
 	     rx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN)) {
 		if (test_sta_flags(sta, WLAN_STA_PS_STA)) {
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 1/3] carl9170: add missing return-value check
From: Christian Lamparter @ 2010-12-26 17:21 UTC (permalink / raw)
  To: linux-wireless; +Cc: linville

This patch adds a forgotten bail-out path.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
 drivers/net/wireless/ath/carl9170/phy.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/ath/carl9170/phy.c b/drivers/net/wireless/ath/carl9170/phy.c
index 82bc81c..122e75e 100644
--- a/drivers/net/wireless/ath/carl9170/phy.c
+++ b/drivers/net/wireless/ath/carl9170/phy.c
@@ -1676,6 +1676,8 @@ int carl9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel,
 
 	err = carl9170_write_reg(ar, AR9170_PHY_REG_HEAVY_CLIP_ENABLE,
 				 0x200);
+	if (err)
+		return err;
 
 	err = carl9170_init_rf_bank4_pwr(ar,
 		channel->band == IEEE80211_BAND_5GHZ,
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 2/3] carl9170: reduce channel change delay
From: Christian Lamparter @ 2010-12-26 17:22 UTC (permalink / raw)
  To: linux-wireless; +Cc: linville, Felix

By removing two "safety" msleeps (and an echo nop), the
channel change delay is effectively halved. Previously,
the delay could be as long as 260 ms and the device
could not go off-channel without risking to miss the
next DTIM beacon [interval ~307 ms].

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
Hi Felix,

It seems that removing the msleeps doesn't have ANY negative effect
on the operation. Furthermore ath9k doesn't need the 20ms+ msleeps
in the phy codepaths either. So, I wonder if this is just some old
"safety" buffers which survived otus and ar9170usb development
phases, or is there some merit to them?

Regards,
	Chr
---
 drivers/net/wireless/ath/carl9170/phy.c |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/ath/carl9170/phy.c b/drivers/net/wireless/ath/carl9170/phy.c
index 122e75e..b6b0de6 100644
--- a/drivers/net/wireless/ath/carl9170/phy.c
+++ b/drivers/net/wireless/ath/carl9170/phy.c
@@ -1029,8 +1029,6 @@ static int carl9170_init_rf_bank4_pwr(struct ar9170 *ar, bool band5ghz,
 	if (err)
 		return err;
 
-	msleep(20);
-
 	return 0;
 }
 
@@ -1660,12 +1658,6 @@ int carl9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel,
 			return err;
 
 		cmd = CARL9170_CMD_RF_INIT;
-
-		msleep(100);
-
-		err = carl9170_echo_test(ar, 0xaabbccdd);
-		if (err)
-			return err;
 	} else {
 		cmd = CARL9170_CMD_FREQUENCY;
 	}
-- 
1.7.2.3


^ permalink raw reply related

* Compat-wireless release for 2010-12-26 is baked
From: Compat-wireless cronjob account @ 2010-12-26 20:02 UTC (permalink / raw)
  To: linux-wireless


compat-wireless code metrics

    777174 - Total upstream lines of code being pulled
      2223 - backport code changes
      1946 - backport code additions
       277 - backport code deletions
      6648 - backport from compat module
      8871 - total backport code
    1.1414 - % of code consists of backport work
      1532 - Crap changes not yet posted
      1489 - Crap additions not yet posted
        43 - Crap deletions not yet posted
    0.1971 - % of crap code

Base tree: linux-next.git
Base tree version: next-20101221
compat-wireless release: compat-wireless-2010-12-20-1-g53f8e22-pc

^ permalink raw reply

* Re: [PATCH] ath5k: fix cycle counter inconsistent locking
From: Bruno Randolf @ 2010-12-27  4:13 UTC (permalink / raw)
  To: Bob Copeland
  Cc: linville, jirislaby, mickflemm, lrodriguez, linux-wireless,
	ath5k-devel
In-Reply-To: <1293383405-25844-1-git-send-email-me@bobcopeland.com>

On Monday 27 December 2010 02:10:05 Bob Copeland wrote:
> ath5k_reset is called from process context and takes the cc_lock
> with plain spin_lock(), but cc_lock can also be taken from tasklets
> in softirq context.  Thus we need to at least use spin_lock_bh.
> 
> This fixes the following lockdep warning:
> 
> [   19.967874] sky2 0000:01:00.0: eth0: enabling interface
> [   19.982761] ieee80211 phy0: device now idle
> [   20.904809] NET: Registered protocol family 17
> [   21.243857] ieee80211 phy0: device no longer idle - scanning
> [   21.404343]
> [   21.404346] =================================
> [   21.404450] [ INFO: inconsistent lock state ]
> [   21.404518] 2.6.37-rc7-wl+ #242
> [   21.404582] ---------------------------------
> [   21.404650] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
> [   21.404721] kworker/u:4/982 [HC0[0]:SC1[3]:HE1:SE0] takes:
> [   21.404792]  (&(&common->cc_lock)->rlock){+.?...}, at: [<f8115780>]
> ath5k_ani_calibration+0x29/0x5d9 [ath5k] [   21.405011] {SOFTIRQ-ON-W}
> state was registered at:
> [   21.405011]   [<c105cadd>] __lock_acquire+0x62f/0x13c1
> [   21.405011]   [<c105d944>] lock_acquire+0xd5/0xf1
> [   21.405011]   [<c12c978d>] _raw_spin_lock+0x45/0x72
> [   21.405011]   [<f8111533>] ath5k_reset+0x2c0/0x349 [ath5k]
> [   21.405011]   [<f8111a7a>] ath5k_start+0xb8/0x139 [ath5k]
> [   21.405011]   [<f849c714>] ieee80211_do_open+0x13f/0x819 [mac80211]
> [   21.405011]   [<f849ce51>] ieee80211_open+0x63/0x66 [mac80211]
> [   21.405011]   [<c1258b2e>] __dev_open+0x8d/0xb6
> [   21.405011]   [<c1255c64>] __dev_change_flags+0x9d/0x114
> [   21.405011]   [<c1258a75>] dev_change_flags+0x18/0x44
> [   21.405011]   [<c1262990>] do_setlink+0x23f/0x521
> [   21.405011]   [<c1262d58>] rtnl_setlink+0xe6/0xea
> [   21.405011]   [<c126347c>] rtnetlink_rcv_msg+0x18a/0x1a0
> [   21.405011]   [<c126d5f0>] netlink_rcv_skb+0x35/0x7b
> [   21.405011]   [<c12632eb>] rtnetlink_rcv+0x20/0x27
> [   21.405011]   [<c126d370>] netlink_unicast+0x1bb/0x21e
> [   21.405011]   [<c126db21>] netlink_sendmsg+0x23b/0x288
> [   21.405011]   [<c124823c>] sock_sendmsg+0xac/0xc4
> [   21.405011]   [<c1248680>] sys_sendmsg+0x152/0x1a2
> [   21.405011]   [<c1249b0d>] sys_socketcall+0x214/0x275
> [   21.405011]   [<c10029d0>] sysenter_do_call+0x12/0x36
> [   21.405011] irq event stamp: 138032
> [   21.405011] hardirqs last  enabled at (138032): [<c12ca252>]
> _raw_spin_unlock_irqrestore+0x3b/0x5e [   21.405011] hardirqs last
> disabled at (138031): [<c12c98cc>] _raw_spin_lock_irqsave+0x18/0x7e [  
> 21.405011] softirqs last  enabled at (138024): [<f84a570e>]
> ieee80211_tx_skb+0x47/0x49 [mac80211] [   21.405011] softirqs last
> disabled at (138027): [<c100452b>] do_softirq+0x63/0xb4 [   21.405011]
> [   21.405011] other info that might help us debug this:
> [   21.405011] 3 locks held by kworker/u:4/982:
> [   21.405011]  #0:  (name){+.+.+.}, at: [<c1046158>]
> process_one_work+0x1b8/0x41b [   21.405011]  #1: 
> ((&(&local->scan_work)->work)){+.+.+.}, at: [<c1046158>]
> process_one_work+0x1b8/0x41b [   21.405011]  #2:  (&local->mtx){+.+.+.},
> at: [<f84920fb>] ieee80211_scan_work+0x32/0x4a4 [mac80211] [   21.405011]
> [   21.405011] stack backtrace:
> [   21.405011] Pid: 982, comm: kworker/u:4 Not tainted 2.6.37-rc7-wl+ #242
> [   21.405011] Call Trace:
> [   21.405011]  [<c12c6e68>] ? printk+0x1d/0x25
> [   21.405011]  [<c105a742>] print_usage_bug+0x181/0x18b
> [   21.405011]  [<c105b196>] ? check_usage_forwards+0x0/0xb6
> [   21.405011]  [<c105a9ec>] mark_lock+0x2a0/0x4aa
> [   21.405011]  [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd
> [   21.405011]  [<c105ca68>] __lock_acquire+0x5ba/0x13c1
> [   21.405011]  [<c1059eed>] ? trace_hardirqs_off_caller+0x18/0x8d
> [   21.405011]  [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd
> [   21.405011]  [<c1050411>] ? local_clock+0x2c/0x4f
> [   21.405011]  [<c1059e00>] ? save_trace+0x2/0xa0
> [   21.405011]  [<c105ac39>] ? mark_held_locks+0x43/0x5b
> [   21.405011]  [<c12ca252>] ? _raw_spin_unlock_irqrestore+0x3b/0x5e
> [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
> [   21.405011]  [<c105d944>] lock_acquire+0xd5/0xf1
> [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
> [   21.405011]  [<c12c9b1a>] _raw_spin_lock_bh+0x4a/0x77
> [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
> [   21.405011]  [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k]
> [   21.405011]  [<c105ac39>] ? mark_held_locks+0x43/0x5b
> [   21.405011]  [<f8113496>] ath5k_tasklet_ani+0x1d/0x27 [ath5k]
> [   21.405011]  [<c1037304>] tasklet_action+0x96/0x137
> [   21.405011]  [<c10379b5>] __do_softirq+0xde/0x1c3
> [   21.405011]  [<c10b0cef>] ? arch_get_unmapped_area_topdown+0x3b/0x127
> [   21.405011]  [<c10378d7>] ? __do_softirq+0x0/0x1c3
> [   21.405011]  <IRQ>  [<c1036dee>] ? irq_exit+0x3d/0x49
> [   21.405011]  [<c1003b4f>] ? do_IRQ+0x98/0xac
> [   21.405011]  [<c1002eee>] ? common_interrupt+0x2e/0x34
> [   21.405011]  [<c103007b>] ? sys_unshare+0x57/0x226
> [   21.405011]  [<c1047fee>] ? queue_delayed_work+0x1/0x27
> [   21.405011]  [<f84a83a0>] ? ieee80211_queue_delayed_work+0x2e/0x33
> [mac80211] [   21.405011]  [<f8492528>] ? ieee80211_scan_work+0x45f/0x4a4
> [mac80211] [   21.405011]  [<c104620e>] ? process_one_work+0x26e/0x41b
> [   21.405011]  [<c1046158>] ? process_one_work+0x1b8/0x41b
> [   21.405011]  [<f84920c9>] ? ieee80211_scan_work+0x0/0x4a4 [mac80211]
> [   21.405011]  [<c10466b6>] ? worker_thread+0x18a/0x2a5
> [   21.405011]  [<c12ca25e>] ? _raw_spin_unlock_irqrestore+0x47/0x5e
> [   21.405011]  [<c104652c>] ? worker_thread+0x0/0x2a5
> [   21.405011]  [<c104abe7>] ? kthread+0x67/0x6c
> [   21.405011]  [<c104ab80>] ? kthread+0x0/0x6c
> [   21.405011]  [<c1002efa>] ? kernel_thread_helper+0x6/0x10
> 
> Signed-off-by: Bob Copeland <me@bobcopeland.com>
> ---
>  drivers/net/wireless/ath/ath5k/base.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath5k/base.c
> b/drivers/net/wireless/ath/ath5k/base.c index e4ec40c..63ef7ff 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -2703,11 +2703,11 @@ ath5k_reset(struct ath5k_softc *sc, struct
> ieee80211_channel *chan,
> 
>  	/* clear survey data and cycle counters */
>  	memset(&sc->survey, 0, sizeof(sc->survey));
> -	spin_lock(&common->cc_lock);
> +	spin_lock_bh(&common->cc_lock);
>  	ath_hw_cycle_counters_update(common);
>  	memset(&common->cc_survey, 0, sizeof(common->cc_survey));
>  	memset(&common->cc_ani, 0, sizeof(common->cc_ani));
> -	spin_unlock(&common->cc_lock);
> +	spin_unlock_bh(&common->cc_lock);
> 
>  	/*
>  	 * Change channels and update the h/w rate map if we're switching;

Acked-by: Bruno Randolf <br1@einfach.org>

^ permalink raw reply

* stable compat-wireless releases are 404
From: Justin Case @ 2010-12-27  6:39 UTC (permalink / raw)
  To: linux-wireless

I am trying to download a stable compat-wireless release from this website:
http://linuxwireless.org/en/users/Download/stable/

however the main download site:
http://www.orbit-lab.org/kernel/
is giving 404 errors.

Is there an alternative download site or mirror?


^ permalink raw reply

* Re: [PATCH RFC] mac80211: Extend channel to frequency mapping for 802.11j
From: Johannes Berg @ 2010-12-27 10:57 UTC (permalink / raw)
  To: Bruno Randolf; +Cc: linville, linux-wireless
In-Reply-To: <20101224074410.16337.90008.stgit@localhost6.localdomain6>

On Fri, 2010-12-24 at 16:44 +0900, Bruno Randolf wrote:

>  static bool freq_is_chan_12_13_14(u16 freq)
>  {
> -	if (freq == ieee80211_channel_to_frequency(12) ||
> -	    freq == ieee80211_channel_to_frequency(13) ||
> -	    freq == ieee80211_channel_to_frequency(14))
> +	if (freq == ieee80211_channel_to_frequency(12, IEEE80211_BAND_2GHZ) ||
> +	    freq == ieee80211_channel_to_frequency(13, IEEE80211_BAND_2GHZ) ||
> +	    freq == ieee80211_channel_to_frequency(14, IEEE80211_BAND_2GHZ))
>  		return true;

This seems strange ... why not just hardcode the values??

>  	if (freq->e == 0) {
> +		int band = IEEE80211_BAND_2GHZ;

enum?

johannes


^ permalink raw reply

* Re: [RFC] mac80211: ignore PSM bit of reordered frames
From: Johannes Berg @ 2010-12-27 10:58 UTC (permalink / raw)
  To: Christian Lamparter; +Cc: linux-wireless
In-Reply-To: <E1PWwiD-0003TF-Oo@debian64.daheim>

On Sun, 2010-12-26 at 20:56 +0100, Christian Lamparter wrote:
> This patch tackles one of the problems of my
> reorder release timer patch from August.
> 
> <http://www.spinics.net/lists/linux-wireless/msg57214.html>
> =>
> What if the reorder release triggers and ap_sta_ps_end
> (called by ieee80211_rx_h_sta_process) accidentally clears
> the WLAN_STA_PS_STA flag, because 100ms ago - when the STA
> was still active - frames were put into the reorder buffer.
> 
> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
> ---
> Alternatively, we could flush the per-tid STA reorder buffer
> content in ap_sta_ps_start, so the buffer is empty.

> + * @IEEE80211_RX_DEFERED_RELEASE: frame was subjected to receive reordering

I'm ok with this, but please spell it "deferred" :-)

johannes


^ permalink raw reply

* Re: [PATCH v2 06/18] wl1271: AP mode - init sequence
From: Luciano Coelho @ 2010-12-27 12:57 UTC (permalink / raw)
  To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-7-git-send-email-arik@wizery.com>

On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Split HW init sequence into AP/STA specific parts
> 
> The AP specific init sequence includes configuration of templates, rate
> classes, power mode, etc. Also unmask AP specific events in the event mbox.
> 
> Separate the differences between AP and STA init into mode
> specific functions called from wl1271_hw_init. The first is called after
> radio configuration and the second after memory configuration.
> 
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---

[...]

> diff --git a/drivers/net/wireless/wl12xx/cmd.h b/drivers/net/wireless/wl12xx/cmd.h
> index 02f843c..d51324d 100644
> --- a/drivers/net/wireless/wl12xx/cmd.h
> +++ b/drivers/net/wireless/wl12xx/cmd.h
> @@ -140,6 +140,13 @@ enum cmd_templ {
>  				  * For CTS-to-self (FastCTS) mechanism
>  				  * for BT/WLAN coexistence (SoftGemini). */
>  	CMD_TEMPL_ARP_RSP,
> +
> +	/* AP-mode specific */
> +	CMD_TEMPL_AP_BEACON = 13,
> +	CMD_TEMPL_AP_PROBE_RESPONSE,
> +	CMD_TEMPL_AP_ARP_RSP,
> +	CMD_TEMPL_DEAUTH_AP,
> +
>  	CMD_TEMPL_MAX = 0xff
>  };

Cool, I see that you fixed the issue we had before.  Just one question,
is the CMD_TEMPL_AP_ARP_RSP the same as the original CMD_TEMPL_ARP_RSP?
I mean is it only the order in the enum that is different between the AP
and the STA firmwares? If that's the case, we should *really* try to get
this fixed in the AP firmware.

It's still new enough and not so many people are using it yet, right? So
it's the time to fix it if it makes sense.

 
> diff --git a/drivers/net/wireless/wl12xx/init.c b/drivers/net/wireless/wl12xx/init.c
> index 799c369..df6666b 100644
> --- a/drivers/net/wireless/wl12xx/init.c
> +++ b/drivers/net/wireless/wl12xx/init.c

[...]

> @@ -145,10 +253,6 @@ int wl1271_init_phy_config(struct wl1271 *wl)
>  	if (ret < 0)
>  		return ret;
>  
> -	ret = wl1271_acx_group_address_tbl(wl, true, NULL, 0);
> -	if (ret < 0)
> -		return ret;
> -

Here we're changing the order of these initialization ACXs, but it
shouldn't be a problem.  If it is a problem, it's a firmware bug that
(hopefully) can be fixed.


> @@ -213,11 +317,150 @@ static int wl1271_init_beacon_broadcast(struct wl1271 *wl)
>  	return 0;
>  }
>  
> +static int wl1271_sta_hw_init(struct wl1271 *wl)
> +{
> +	int ret;
> +
> +	ret = wl1271_cmd_ext_radio_parms(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	ret = wl1271_sta_init_templates_config(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	ret = wl1271_acx_group_address_tbl(wl, true, NULL, 0);
> +	if (ret < 0)
> +		return ret;
> +
> +	/* Initialize connection monitoring thresholds */
> +	ret = wl1271_acx_conn_monit_params(wl, false);
> +	if (ret < 0)
> +		return ret;
> +
> +	/* Beacon filtering */
> +	ret = wl1271_init_beacon_filter(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	/* Bluetooth WLAN coexistence */
> +	ret = wl1271_init_pta(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	/* Beacons and boradcast settings */

You copied the typo, maybe you could take the opportunity to fix it?

> +	ret = wl1271_init_beacon_broadcast(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	/* Configure for ELP power saving */
> +	ret = wl1271_acx_sleep_auth(wl, WL1271_PSM_ELP);
> +	if (ret < 0)
> +		return ret;
> +
> +	/* Configure rssi/snr averaging weights */
> +	ret = wl1271_acx_rssi_snr_avg_weights(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	ret = wl1271_acx_sta_rate_policies(wl);
> +	if (ret < 0)
> +		return ret;
> +
> +	return 0;
> +}

Also here, this changes the initialization order a bit.  I think this
was Juuso's concern earlier.  At least while we were having debug camps,
the TI people supporting us were always asking us to be extremely
cautious with the order of the initialization.  They were saying that it
was really important to do the initialization in the same way as the
tiwlan driver does.  Hopefully this is not an issue now...


> @@ -279,21 +512,11 @@ int wl1271_hw_init(struct wl1271 *wl)
>  	if (ret < 0)
>  		goto out_free_memmap;
>  
> -	/* Bluetooth WLAN coexistence */
> -	ret = wl1271_init_pta(wl);
> -	if (ret < 0)
> -		goto out_free_memmap;
> -

Just out of curiosity... Is AP coexistence with Bluetooth possible? This
could be important in some scenarios.


> diff --git a/drivers/net/wireless/wl12xx/init.h b/drivers/net/wireless/wl12xx/init.h
> index 7762421..4d37210 100644
> --- a/drivers/net/wireless/wl12xx/init.h
> +++ b/drivers/net/wireless/wl12xx/init.h
> @@ -27,10 +27,13 @@
>  #include "wl12xx.h"
>  
>  int wl1271_hw_init_power_auth(struct wl1271 *wl);
> -int wl1271_init_templates_config(struct wl1271 *wl);
> +int wl1271_sta_init_templates_config(struct wl1271 *wl);
>  int wl1271_init_phy_config(struct wl1271 *wl);
>  int wl1271_init_pta(struct wl1271 *wl);
>  int wl1271_init_energy_detection(struct wl1271 *wl);
>  int wl1271_hw_init(struct wl1271 *wl);
>  
> +/* Functions from wl1271_main.c */
> +u32 wl1271_min_rate_get(struct wl1271 *wl);
> +

This is bad and shouldn't be here.  Need to find a better place for it.


> diff --git a/drivers/net/wireless/wl12xx/wl12xx_80211.h b/drivers/net/wireless/wl12xx/wl12xx_80211.h
> index be21032..b230e72 100644
> --- a/drivers/net/wireless/wl12xx/wl12xx_80211.h
> +++ b/drivers/net/wireless/wl12xx/wl12xx_80211.h
> @@ -160,4 +160,9 @@ struct wl12xx_probe_resp_template {
>  	struct wl12xx_ie_country country;
>  } __packed;
>  
> +struct wl12xx_disconn_template {
> +	struct ieee80211_header header;
> +	__le16 disconn_reason;
> +} __packed;
> +

Isn't padding necessary here to keep the struct 32-bit aligned?

-- 
Cheers,
Luca.


^ permalink raw reply

* Re: [PATCH v2 09/18] wl1271: Configure AP on BSS info change
From: Luciano Coelho @ 2010-12-27 13:11 UTC (permalink / raw)
  To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-10-git-send-email-arik@wizery.com>

On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Configure AP-specific beacon and probe response templates.
> Start the AP when beaconing is enabled.
> 
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---

[...]

>  static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
> @@ -1898,73 +1900,84 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,

This whole wl1271_op_bss_info_changed() function was already quite long
and hard to read.  Now, with support for AP and STA, it got even worse.
I think this should be broken down into smaller functions.  No need to
clean the whole function up now, but would it be possible to separate at
least the AP and STA parts into separate functions?


> @@ -1983,11 +2018,11 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
>  						  bss_conf->cqm_rssi_thold,
>  						  bss_conf->cqm_rssi_hyst);
>  		if (ret < 0)
> -			goto out;
> +			goto out_sleep;

Hmmm, nice catch.  We were going out without sleeping in case of error
here.  But this is a cross-patch change, could you separate it and send
as a standalone patch?


-- 
Cheers,
Luca.


^ permalink raw reply

* Re: [PATCH v2 12/18] wl1271: AP mode - add STA add/remove ops
From: Luciano Coelho @ 2010-12-27 13:34 UTC (permalink / raw)
  To: ext Arik Nemtsov; +Cc: linux-wireless
In-Reply-To: <1293028057-6212-13-git-send-email-arik@wizery.com>

On Wed, 2010-12-22 at 16:27 +0200, ext Arik Nemtsov wrote:
> Allocate and free host link IDs (HLIDs) for each link. A per-STA
> data structure keeps the HLID of each STA.
> 
> Signed-off-by: Arik Nemtsov <arik@wizery.com>
> ---

[...]

> +static int wl1271_op_sta_add(struct ieee80211_hw *hw,
> +			     struct ieee80211_vif *vif,
> +			     struct ieee80211_sta *sta)
> +{
> +	struct wl1271 *wl = hw->priv;
> +	int ret = 0;
> +	u8 hlid;
> +
> +	mutex_lock(&wl->mutex);
> +
> +	if (unlikely(wl->state == WL1271_STATE_OFF))
> +		goto out;
> +
> +	if (wl->bss_type != BSS_TYPE_AP_BSS)
> +		goto out;

Should we ever bump into these two conditions? Shouldn't we warn or
return errors?


> +static int wl1271_op_sta_remove(struct ieee80211_hw *hw,
> +				struct ieee80211_vif *vif,
> +				struct ieee80211_sta *sta)
> +{
> +	struct wl1271 *wl = hw->priv;
> +	struct wl1271_station *wl_sta;
> +	int ret = 0;
> +
> +	mutex_lock(&wl->mutex);
> +
> +	if (unlikely(wl->state == WL1271_STATE_OFF))
> +		goto out;
> +
> +	if (wl->bss_type != BSS_TYPE_AP_BSS)
> +		goto out;

Same here...


> +	wl1271_debug(DEBUG_MAC80211, "mac80211 remove sta %d", (int)sta->aid);
> +
> +	ret = wl1271_ps_elp_wakeup(wl, false);
> +	if (ret < 0)
> +		goto out;
> +
> +	wl_sta = (struct wl1271_station *)sta->drv_priv;
> +	ret = wl1271_cmd_remove_sta(wl, wl_sta->hlid);
> +	if (ret < 0)
> +		goto out_sleep;

Would it make sense to check if the sta is really in use (ie. it is
marked in the ap_sta_map) before trying to remove it?


-- 
Cheers,
Luca.


^ permalink raw reply

* [PATCH 01/10] rt2x00: simplify txstatus_fifo handling
From: Ivo van Doorn @ 2010-12-27 14:04 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users

From: Johannes Stezenbach <js@sig21.net>

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2800pci.c |   18 ++----------------
 drivers/net/wireless/rt2x00/rt2x00.h    |    2 +-
 2 files changed, 3 insertions(+), 17 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index baa1468..aa97971 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -688,14 +688,7 @@ static void rt2800pci_txdone(struct rt2x00_dev *rt2x00dev)
 	u32 status;
 	u8 qid;
 
-	while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo)) {
-		/* Now remove the tx status from the FIFO */
-		if (kfifo_out(&rt2x00dev->txstatus_fifo, &status,
-			      sizeof(status)) != sizeof(status)) {
-			WARN_ON(1);
-			break;
-		}
-
+	while (kfifo_get(&rt2x00dev->txstatus_fifo, &status)) {
 		qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_QUEUE);
 		if (qid >= QID_RX) {
 			/*
@@ -803,14 +796,7 @@ static void rt2800pci_txstatus_interrupt(struct rt2x00_dev *rt2x00dev)
 		if (!rt2x00_get_field32(status, TX_STA_FIFO_VALID))
 			break;
 
-		if (kfifo_is_full(&rt2x00dev->txstatus_fifo)) {
-			WARNING(rt2x00dev, "TX status FIFO overrun,"
-				" drop tx status report.\n");
-			break;
-		}
-
-		if (kfifo_in(&rt2x00dev->txstatus_fifo, &status,
-			     sizeof(status)) != sizeof(status)) {
+		if (!kfifo_put(&rt2x00dev->txstatus_fifo, &status)) {
 			WARNING(rt2x00dev, "TX status FIFO overrun,"
 				"drop tx status report.\n");
 			break;
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index c254d5a..af1d3ef 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -908,7 +908,7 @@ struct rt2x00_dev {
 	/*
 	 * FIFO for storing tx status reports between isr and tasklet.
 	 */
-	struct kfifo txstatus_fifo;
+	DECLARE_KFIFO_PTR(txstatus_fifo, u32);
 
 	/*
 	 * Tasklet for processing tx status reports (rt2800pci).
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 02/10] rt2x00: allow txstatus_fifo w/o txstatus_tasklet
From: Ivo van Doorn @ 2010-12-27 14:04 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271504.30848.IvDoorn@gmail.com>

From: Johannes Stezenbach <js@sig21.net>

When DRIVER_REQUIRE_TXSTATUS_FIFO is set, intialize the
txstatus_fifo, but initialize rt2x00dev->txstatus_tasklet
only when both DRIVER_REQUIRE_TXSTATUS_FIFO and
rt2x00dev->ops->lib->txstatus_tasklet are set.

This allows the txstatus_fifo to be used by rt2800usb which
does not use txstatus_tasklet.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00dev.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index fa74acd..97a8911 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -813,8 +813,7 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
 	/*
 	 * Allocate tx status FIFO for driver use.
 	 */
-	if (test_bit(DRIVER_REQUIRE_TXSTATUS_FIFO, &rt2x00dev->flags) &&
-	    rt2x00dev->ops->lib->txstatus_tasklet) {
+	if (test_bit(DRIVER_REQUIRE_TXSTATUS_FIFO, &rt2x00dev->flags)) {
 		/*
 		 * Allocate txstatus fifo and tasklet, we use a size of 512
 		 * for the kfifo which is big enough to store 512/4=128 tx
@@ -828,9 +827,10 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
 			return status;
 
 		/* tasklet for processing the tx status reports. */
-		tasklet_init(&rt2x00dev->txstatus_tasklet,
-			     rt2x00dev->ops->lib->txstatus_tasklet,
-			     (unsigned long)rt2x00dev);
+		if (rt2x00dev->ops->lib->txstatus_tasklet)
+			tasklet_init(&rt2x00dev->txstatus_tasklet,
+				     rt2x00dev->ops->lib->txstatus_tasklet,
+				     (unsigned long)rt2x00dev);
 
 	}
 
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 03/10] rt2x00: Remove intf->bssid field.
From: Ivo van Doorn @ 2010-12-27 14:05 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271504.55450.IvDoorn@gmail.com>

From: Gertjan van Wingerde <gwingerde@gmail.com>

The bssid field in struct rt2x00_intf is only written to once, and is
never read from.

Remove this field, as it appears to not be needed.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00.h    |    5 -----
 drivers/net/wireless/rt2x00/rt2x00mac.c |   11 -----------
 2 files changed, 0 insertions(+), 16 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index af1d3ef..5f7f52f 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -365,11 +365,6 @@ struct rt2x00_intf {
 	u8 mac[ETH_ALEN];
 
 	/*
-	 * BBSID of the AP to associate with.
-	 */
-	u8 bssid[ETH_ALEN];
-
-	/*
 	 * beacon->skb must be protected with the mutex.
 	 */
 	struct mutex beacon_skb_mutex;
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 4cac7ad..23250a5 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -614,17 +614,6 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
 	if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
 		return;
 
-	spin_lock(&intf->lock);
-
-	/*
-	 * conf->bssid can be NULL if coming from the internal
-	 * beacon update routine.
-	 */
-	if (changes & BSS_CHANGED_BSSID)
-		memcpy(&intf->bssid, bss_conf->bssid, ETH_ALEN);
-
-	spin_unlock(&intf->lock);
-
 	/*
 	 * Call rt2x00_config_intf() outside of the spinlock context since
 	 * the call will sleep for USB drivers. By using the ieee80211_if_conf
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 04/10] rt2x00: remove intf->mac field.
From: Ivo van Doorn @ 2010-12-27 14:05 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271505.15849.IvDoorn@gmail.com>

From: Gertjan van Wingerde <gwingerde@gmail.com>

The mac field of the rt2x00_intf structure is written to once and used
twice. In both these uses the mac address is available via other means.

Remove this field as it does not appear to be necessary.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00.h    |    5 -----
 drivers/net/wireless/rt2x00/rt2x00mac.c |    6 ++----
 2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 5f7f52f..755b723 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -360,11 +360,6 @@ struct rt2x00_intf {
 	spinlock_t lock;
 
 	/*
-	 * MAC of the device.
-	 */
-	u8 mac[ETH_ALEN];
-
-	/*
 	 * beacon->skb must be protected with the mutex.
 	 */
 	struct mutex beacon_skb_mutex;
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 23250a5..f8775c4 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -282,9 +282,8 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
 	 * STA interfaces at this time, since this can cause
 	 * invalid behavior in the device.
 	 */
-	memcpy(&intf->mac, vif->addr, ETH_ALEN);
 	rt2x00lib_config_intf(rt2x00dev, intf, vif->type,
-			      intf->mac, NULL);
+			      vif->addr, NULL);
 
 	/*
 	 * Some filters depend on the current working mode. We can force
@@ -492,7 +491,6 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 		      struct ieee80211_key_conf *key)
 {
 	struct rt2x00_dev *rt2x00dev = hw->priv;
-	struct rt2x00_intf *intf = vif_to_intf(vif);
 	int (*set_key) (struct rt2x00_dev *rt2x00dev,
 			struct rt2x00lib_crypto *crypto,
 			struct ieee80211_key_conf *key);
@@ -516,7 +514,7 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 	if (rt2x00dev->intf_sta_count)
 		crypto.bssidx = 0;
 	else
-		crypto.bssidx = intf->mac[5] & (rt2x00dev->ops->max_ap_intf - 1);
+		crypto.bssidx = vif->addr[5] & (rt2x00dev->ops->max_ap_intf - 1);
 
 	crypto.cipher = rt2x00crypto_key_to_cipher(key);
 	if (crypto.cipher == CIPHER_NONE)
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 05/10] rt2x00: Fix pointer errors.
From: Ivo van Doorn @ 2010-12-27 14:05 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271505.36104.IvDoorn@gmail.com>

From: Gertjan van Wingerde <gwingerde@gmail.com>

Fix some pointer errors in the various calls to memcpy, memset and memmove.

Although none of these errors are fatal (the expression used now results in
the same pointer value) it is better to use the proper expression.
All errors are having to deal with arrays.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00config.c |    8 ++++----
 drivers/net/wireless/rt2x00/rt2x00mac.c    |    8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index 70ca937..e7f67d5 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -62,13 +62,13 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev,
 	 * This will prevent the device being confused when it wants
 	 * to ACK frames or consideres itself associated.
 	 */
-	memset(&conf.mac, 0, sizeof(conf.mac));
+	memset(conf.mac, 0, sizeof(conf.mac));
 	if (mac)
-		memcpy(&conf.mac, mac, ETH_ALEN);
+		memcpy(conf.mac, mac, ETH_ALEN);
 
-	memset(&conf.bssid, 0, sizeof(conf.bssid));
+	memset(conf.bssid, 0, sizeof(conf.bssid));
 	if (bssid)
-		memcpy(&conf.bssid, bssid, ETH_ALEN);
+		memcpy(conf.bssid, bssid, ETH_ALEN);
 
 	flags |= CONFIG_UPDATE_TYPE;
 	if (mac || (!rt2x00dev->intf_ap_count && !rt2x00dev->intf_sta_count))
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index f8775c4..a2266c7 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -471,17 +471,17 @@ EXPORT_SYMBOL_GPL(rt2x00mac_set_tim);
 static void memcpy_tkip(struct rt2x00lib_crypto *crypto, u8 *key, u8 key_len)
 {
 	if (key_len > NL80211_TKIP_DATA_OFFSET_ENCR_KEY)
-		memcpy(&crypto->key,
+		memcpy(crypto->key,
 		       &key[NL80211_TKIP_DATA_OFFSET_ENCR_KEY],
 		       sizeof(crypto->key));
 
 	if (key_len > NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY)
-		memcpy(&crypto->tx_mic,
+		memcpy(crypto->tx_mic,
 		       &key[NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY],
 		       sizeof(crypto->tx_mic));
 
 	if (key_len > NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY)
-		memcpy(&crypto->rx_mic,
+		memcpy(crypto->rx_mic,
 		       &key[NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY],
 		       sizeof(crypto->rx_mic));
 }
@@ -532,7 +532,7 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 	if (crypto.cipher == CIPHER_TKIP)
 		memcpy_tkip(&crypto, &key->key[0], key->keylen);
 	else
-		memcpy(&crypto.key, &key->key[0], key->keylen);
+		memcpy(crypto.key, &key->key[0], key->keylen);
 	/*
 	 * Each BSS has a maximum of 4 shared keys.
 	 * Shared key index values:
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 06/10] rt2x00: Fix panic on frame padding for rt2800 usb devices
From: Ivo van Doorn @ 2010-12-27 14:06 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271505.56572.IvDoorn@gmail.com>

From: Ismael Luceno <ismael.luceno@gmail.com>

Backtrace:
  rt2800usb_write_tx_data
  rt2x00queue_write_tx_frame
  rt2x00mac_tx
  invoke_tx_handlers
  __ieee80211_tx
  ieee80211_tx
  virt_to_head_page
  ieee80211_xmit
  ieee80211_tx_skb
  ieee80211_scan_work
  schedule
  ieee80211_scan_work
  process_one_work
  ...

It tried to expand the skb past it's end using skb_put. So I replaced it
with a call to skb_padto, which takes the issue into account.

Signed-off-by: Ismael Luceno <ismael.luceno@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2800usb.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
index 3e0205d..b97a4a5 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -369,7 +369,10 @@ static void rt2800usb_write_tx_desc(struct queue_entry *entry,
 static void rt2800usb_write_tx_data(struct queue_entry *entry,
 					struct txentry_desc *txdesc)
 {
-	u8 padding_len;
+	unsigned int len;
+	int err;
+
+	rt2800_write_tx_data(entry, txdesc);
 
 	/*
 	 * pad(1~3 bytes) is added after each 802.11 payload.
@@ -378,9 +381,14 @@ static void rt2800usb_write_tx_data(struct queue_entry *entry,
 	 * | TXINFO | TXWI | 802.11 header | L2 pad | payload | pad | USB end pad |
 	 *                 |<------------- tx_pkt_len ------------->|
 	 */
-        rt2800_write_tx_data(entry, txdesc);
-        padding_len = roundup(entry->skb->len + 4, 4) - entry->skb->len;
-        memset(skb_put(entry->skb, padding_len), 0, padding_len);
+	len = roundup(entry->skb->len, 4) + 4;
+	err = skb_padto(entry->skb, len);
+	if (unlikely(err)) {
+		WARNING(entry->queue->rt2x00dev, "TX SKB padding error, out of memory\n");
+		return;
+	}
+
+	entry->skb->len = len;
 }
 
 /*
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 07/10] rt2x00: Remove superfluous assignment of mpdu_density
From: Ivo van Doorn @ 2010-12-27 14:06 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271506.18101.IvDoorn@gmail.com>

From: Helmut Schaa <helmut.schaa@googlemail.com>

The tx desciptor already gets initialized to 0. Hence, there's no need
to explicitly assign 0 to mpdu_density here.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00ht.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00ht.c b/drivers/net/wireless/rt2x00/rt2x00ht.c
index c637bca..b7ad46e 100644
--- a/drivers/net/wireless/rt2x00/rt2x00ht.c
+++ b/drivers/net/wireless/rt2x00/rt2x00ht.c
@@ -40,8 +40,6 @@ void rt2x00ht_create_tx_descriptor(struct queue_entry *entry,
 	if (tx_info->control.sta)
 		txdesc->mpdu_density =
 		    tx_info->control.sta->ht_cap.ampdu_density;
-	else
-		txdesc->mpdu_density = 0;
 
 	txdesc->ba_size = 7;	/* FIXME: What value is needed? */
 
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 08/10] rt2x00: Simplify intf->delayed_flags locking
From: Ivo van Doorn @ 2010-12-27 14:06 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271506.37080.IvDoorn@gmail.com>

From: Helmut Schaa <helmut.schaa@googlemail.com>

Instead of protecting delayed_flags with a spinlock use atomic bitops to
make the code more readable.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00.h    |    7 +++++--
 drivers/net/wireless/rt2x00/rt2x00dev.c |   15 +--------------
 drivers/net/wireless/rt2x00/rt2x00mac.c |    4 +---
 3 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 755b723..b3f77d4 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -347,6 +347,10 @@ struct link {
 	struct delayed_work watchdog_work;
 };
 
+enum rt2x00_delayed_flags {
+	DELAYED_UPDATE_BEACON,
+};
+
 /*
  * Interface structure
  * Per interface configuration details, this structure
@@ -374,8 +378,7 @@ struct rt2x00_intf {
 	/*
 	 * Actions that needed rescheduling.
 	 */
-	unsigned int delayed_flags;
-#define DELAYED_UPDATE_BEACON		0x00000001
+	unsigned long delayed_flags;
 
 	/*
 	 * Software sequence counter, this is only required
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 97a8911..9597a03 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -110,19 +110,6 @@ static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac,
 {
 	struct rt2x00_dev *rt2x00dev = data;
 	struct rt2x00_intf *intf = vif_to_intf(vif);
-	int delayed_flags;
-
-	/*
-	 * Copy all data we need during this action under the protection
-	 * of a spinlock. Otherwise race conditions might occur which results
-	 * into an invalid configuration.
-	 */
-	spin_lock(&intf->lock);
-
-	delayed_flags = intf->delayed_flags;
-	intf->delayed_flags = 0;
-
-	spin_unlock(&intf->lock);
 
 	/*
 	 * It is possible the radio was disabled while the work had been
@@ -133,7 +120,7 @@ static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac,
 	if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
 		return;
 
-	if (delayed_flags & DELAYED_UPDATE_BEACON)
+	if (test_and_clear_bit(DELAYED_UPDATE_BEACON, &intf->delayed_flags))
 		rt2x00queue_update_beacon(rt2x00dev, vif, true);
 }
 
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index a2266c7..297d972 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -444,9 +444,7 @@ static void rt2x00mac_set_tim_iter(void *data, u8 *mac,
 	    vif->type != NL80211_IFTYPE_WDS)
 		return;
 
-	spin_lock(&intf->lock);
-	intf->delayed_flags |= DELAYED_UPDATE_BEACON;
-	spin_unlock(&intf->lock);
+	set_bit(DELAYED_UPDATE_BEACON, &intf->delayed_flags);
 }
 
 int rt2x00mac_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 09/10] rt2x00: Remove unused interface spinlock
From: Ivo van Doorn @ 2010-12-27 14:07 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271506.58485.IvDoorn@gmail.com>

From: Helmut Schaa <helmut.schaa@googlemail.com>

Since the last user of intf->lock is gone we can safely remove it.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00.h    |    6 ------
 drivers/net/wireless/rt2x00/rt2x00mac.c |    1 -
 2 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index b3f77d4..84aaf39 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -358,12 +358,6 @@ enum rt2x00_delayed_flags {
  */
 struct rt2x00_intf {
 	/*
-	 * All fields within the rt2x00_intf structure
-	 * must be protected with a spinlock.
-	 */
-	spinlock_t lock;
-
-	/*
 	 * beacon->skb must be protected with the mutex.
 	 */
 	struct mutex beacon_skb_mutex;
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 297d972..b5dad04 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -268,7 +268,6 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
 	else
 		rt2x00dev->intf_sta_count++;
 
-	spin_lock_init(&intf->lock);
 	spin_lock_init(&intf->seqlock);
 	mutex_init(&intf->beacon_skb_mutex);
 	intf->beacon = entry;
-- 
1.7.2.3


^ permalink raw reply related

* [PATCH 10/10] rt2x00: Fix comment about removed spinlock
From: Ivo van Doorn @ 2010-12-27 14:07 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, users
In-Reply-To: <201012271507.17065.IvDoorn@gmail.com>

From: Helmut Schaa <helmut.schaa@googlemail.com>

The comment doesn't match the code anymore. Fix that.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00mac.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index b5dad04..658542d 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -610,10 +610,7 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
 		return;
 
 	/*
-	 * Call rt2x00_config_intf() outside of the spinlock context since
-	 * the call will sleep for USB drivers. By using the ieee80211_if_conf
-	 * values as arguments we make keep access to rt2x00_intf thread safe
-	 * even without the lock.
+	 * Update the BSSID.
 	 */
 	if (changes & BSS_CHANGED_BSSID)
 		rt2x00lib_config_intf(rt2x00dev, intf, vif->type, NULL,
-- 
1.7.2.3


^ permalink raw reply related

* Re: [RFC PATCH 0/6] zd1211rw: add support for AP mode
From: Jussi Kivilinna @ 2010-12-27 14:28 UTC (permalink / raw)
  To: Jussi Kivilinna; +Cc: linux-wireless, Daniel Drake, zd1211-devs, Ulrich Kunitz
In-Reply-To: <20101226112404.31775.77854.stgit@fate.lan>

[-- Attachment #1: Type: text/plain, Size: 905 bytes --]

Quoting Jussi Kivilinna <jussi.kivilinna@mbnet.fi>:

>  2. When connecting with b43 to WPA enabled AP (hostapd 0.7.3), I  
> get lots of:
> 	wlan2: STA 00:xx:xx:xx:xx:xx IEEE 802.1X: unauthorizing port
> 	wlan2: STA 00:xx:xx:xx:xx:xx IEEE 802.11: deauthenticated
>     and then after ~1-2 minutes of retrying finally it makes connection.
>     With rndis_wlan, no problems.
>     Either I have hostapd config error (first time using hostapd), or
>     something is wrong with driver.

I think problem is that hostapd/mon.wlan2 is getting monitor packets  
in wrong order. This causes hostapd to receive null-function packet  
from b43 at wrong time resulting 'Data/PS-poll frame from not  
associated STA xx:xx:xx:xx:xx:xx' message and disassociation. I pretty  
much don't have any idea why this happens and how to fix it. I have  
attached wireshark capture with monitor packets in wrong order.

-Jussi

[-- Attachment #2: zd1211rw-capture-mon.wlan2-small.txt --]
[-- Type: text/plain, Size: 71380 bytes --]

No.     Time        Source                Destination           Protocol Info
      1 0.000000    HonHaiPr_zz:zz:zz     Broadcast             IEEE 802.11 Probe Request, SN=1676, FN=0, Flags=........, SSID="Amaan"
      2 0.049632    HonHaiPr_zz:zz:zz     Broadcast             IEEE 802.11 Probe Request, SN=1677, FN=0, Flags=........, SSID="Amaan"
      3 8.571230    GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=3, FN=0, Flags=........, SSID=Broadcast
      4 8.571329    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
      5 -10.518146  ZyxelCom_xx:xx:xx     GemtekTe_ww:ww:ww     IEEE 802.11 Probe Response, SN=5, FN=0, Flags=........, BI=100, SSID="test"
      6 8.571329    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=6, FN=0, Flags=........, BI=100, SSID="test"
      7 8.644603    GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=4, FN=0, Flags=........, SSID=Broadcast
      8 8.644698    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
      9 9.485596    GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=14, FN=0, Flags=........
     10 9.486450    GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=15, FN=0, Flags=........
     11 9.486661    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
     12 8.644698    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=7, FN=0, Flags=........, BI=100, SSID="test"
     13 9.489468    GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=16, FN=0, Flags=........, SSID="test"
     14 9.489628    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
     15 9.486661    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=8, FN=0, Flags=........
     16 9.498796    GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=17, FN=0, Flags=.......T
     17 9.498888    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
     18 9.489628    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=9, FN=0, Flags=........
     19 9.502977    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     20 9.498888    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=10, FN=0, Flags=........
     21 9.502977    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     22 9.521195    GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=18, FN=0, Flags=........
     23 9.522664    ::                    ff02::16              ICMPv6   Multicast Listener Report Message v2
     24 9.941280    GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=22, FN=0, Flags=........, SSID=Broadcast
     25 9.941374    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     26 10.014649   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=23, FN=0, Flags=........, SSID=Broadcast
     27 10.014745   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     28 9.941374    ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=12, FN=0, Flags=........, BI=100, SSID="test"
     29 10.087921   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=24, FN=0, Flags=........, SSID=Broadcast
     30 10.088018   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     31 10.014745   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=13, FN=0, Flags=........, BI=100, SSID="test"
     32 10.855010   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=33, FN=0, Flags=........
     33 10.855196   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
     34 10.088018   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=14, FN=0, Flags=........, BI=100, SSID="test"
     35 10.857366   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=34, FN=0, Flags=........, SSID="test"
     36 10.857511   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
     37 10.855196   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=15, FN=0, Flags=........
     38 10.875116   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=35, FN=0, Flags=.......T
     39 10.875241   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
     40 10.857511   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=16, FN=0, Flags=........
     41 10.879259   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     42 10.875241   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=17, FN=0, Flags=........
     43 10.888233   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=36, FN=0, Flags=........
     44 12.221945   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=50, FN=0, Flags=........
     45 12.222135   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
     46 10.879259   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     47 12.224406   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=51, FN=0, Flags=........, SSID="test"
     48 12.224544   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
     49 12.222135   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=19, FN=0, Flags=........
     50 12.234021   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=52, FN=0, Flags=.......T
     51 12.234134   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
     52 12.224544   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=20, FN=0, Flags=........
     53 12.238208   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     54 12.234134   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=21, FN=0, Flags=........
     55 12.251315   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=53, FN=0, Flags=........
     56 12.672467   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=56, FN=0, Flags=........, SSID=Broadcast
     57 12.672539   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     58 12.238208   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     59 12.672539   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=23, FN=0, Flags=........, BI=100, SSID="test"
     60 12.744624   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=57, FN=0, Flags=........, SSID=Broadcast
     61 12.744719   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     62 12.817977   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=58, FN=0, Flags=........, SSID=Broadcast
     63 12.818059   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     64 12.744719   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=24, FN=0, Flags=........, BI=100, SSID="test"
     65 12.818059   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=25, FN=0, Flags=........, BI=100, SSID="test"
     66 13.585598   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=67, FN=0, Flags=........
     67 13.585761   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
     68 13.587987   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=68, FN=0, Flags=........, SSID="test"
     69 13.588124   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
     70 13.585761   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=26, FN=0, Flags=........
     71 13.596705   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=69, FN=0, Flags=.......T
     72 13.596809   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
     73 13.588124   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=27, FN=0, Flags=........
     74 13.600706   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     75 13.596809   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=28, FN=0, Flags=........
     76 13.610349   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=70, FN=0, Flags=........
     77 14.104663   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=74, FN=0, Flags=........, SSID=Broadcast
     78 14.104756   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     79 13.600706   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     80 14.177914   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=75, FN=0, Flags=........, SSID=Broadcast
     81 14.178012   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     82 14.104756   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=30, FN=0, Flags=........, BI=100, SSID="test"
     83 14.178012   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=31, FN=0, Flags=........, BI=100, SSID="test"
     84 14.951237   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=84, FN=0, Flags=........
     85 14.951436   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
     86 14.953609   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=85, FN=0, Flags=........, SSID="test"
     87 14.953729   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
     88 14.951436   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=32, FN=0, Flags=........
     89 14.960109   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=86, FN=0, Flags=.......T
     90 14.960139   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
     91 14.953729   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=33, FN=0, Flags=........
     92 14.962410   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     93 14.960139   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=34, FN=0, Flags=........
     94 14.974486   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=87, FN=0, Flags=........
     95 15.394597   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=90, FN=0, Flags=........, SSID=Broadcast
     96 15.394701   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
     97 14.962410   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
     98 15.394701   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=36, FN=0, Flags=........, BI=100, SSID="test"
     99 15.467914   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=91, FN=0, Flags=........, SSID=Broadcast
    100 15.467985   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    101 15.541164   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=92, FN=0, Flags=........, SSID=Broadcast
    102 15.541235   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    103 15.467985   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=37, FN=0, Flags=........, BI=100, SSID="test"
    104 15.541235   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=38, FN=0, Flags=........, BI=100, SSID="test"
    105 16.308933   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=101, FN=0, Flags=........
    106 16.309110   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    107 16.311307   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=102, FN=0, Flags=........, SSID="test"
    108 16.311459   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    109 16.309110   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=39, FN=0, Flags=........
    110 16.322689   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=103, FN=0, Flags=.......T
    111 16.322809   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    112 16.311459   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=40, FN=0, Flags=........
    113 16.326708   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    114 16.322809   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=41, FN=0, Flags=........
    115 16.344709   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=104, FN=0, Flags=........
    116 16.764597   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=107, FN=0, Flags=........, SSID=Broadcast
    117 16.764672   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    118 16.326708   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    119 16.837879   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=108, FN=0, Flags=........, SSID=Broadcast
    120 16.837987   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    121 16.764672   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=43, FN=0, Flags=........, BI=100, SSID="test"
    122 16.911249   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=109, FN=0, Flags=........, SSID=Broadcast
    123 16.911422   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    124 16.837987   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=44, FN=0, Flags=........, BI=100, SSID="test"
    125 17.678511   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=118, FN=0, Flags=........
    126 17.678710   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    127 16.911422   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=45, FN=0, Flags=........, BI=100, SSID="test"
    128 17.680979   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=119, FN=0, Flags=........, SSID="test"
    129 17.681121   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    130 17.678710   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=46, FN=0, Flags=........
    131 17.692377   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=120, FN=0, Flags=.......T
    132 17.692473   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    133 17.681121   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=47, FN=0, Flags=........
    134 17.696532   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    135 17.692473   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=48, FN=0, Flags=........
    136 17.708134   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=121, FN=0, Flags=........
    137 18.207881   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=125, FN=0, Flags=........, SSID=Broadcast
    138 18.207961   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    139 17.696532   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    140 19.055443   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=135, FN=0, Flags=........
    141 19.055656   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    142 18.207961   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=50, FN=0, Flags=........, BI=100, SSID="test"
    143 19.057929   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=136, FN=0, Flags=........, SSID="test"
    144 19.058082   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    145 19.055656   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=51, FN=0, Flags=........
    146 19.064557   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=137, FN=0, Flags=.......T
    147 19.064677   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    148 19.058082   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=52, FN=0, Flags=........
    149 19.068186   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    150 19.064677   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=53, FN=0, Flags=........
    151 19.078925   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=138, FN=0, Flags=........
    152 19.572337   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=142, FN=0, Flags=........, SSID=Broadcast
    153 19.572391   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    154 19.068186   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    155 19.644590   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=143, FN=0, Flags=........, SSID=Broadcast
    156 19.644672   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    157 19.572391   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=55, FN=0, Flags=........, BI=100, SSID="test"
    158 19.644672   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=56, FN=0, Flags=........, BI=100, SSID="test"
    159 20.412228   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=152, FN=0, Flags=........
    160 20.412433   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    161 20.414599   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=153, FN=0, Flags=........, SSID="test"
    162 20.414740   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    163 20.412433   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=57, FN=0, Flags=........
    164 20.423485   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=154, FN=0, Flags=.......T
    165 20.423607   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    166 20.414740   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=58, FN=0, Flags=........
    167 20.427606   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    168 20.423607   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=59, FN=0, Flags=........
    169 20.434587   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=155, FN=0, Flags=........
    170 20.934677   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=159, FN=0, Flags=........, SSID=Broadcast
    171 20.934860   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    172 20.427606   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    173 21.008023   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=160, FN=0, Flags=........, SSID=Broadcast
    174 21.008126   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    175 20.934860   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=61, FN=0, Flags=........, BI=100, SSID="test"
    176 21.775652   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=169, FN=0, Flags=........
    177 21.775838   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    178 21.008126   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=62, FN=0, Flags=........, BI=100, SSID="test"
    179 21.777980   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=170, FN=0, Flags=........, SSID="test"
    180 21.778025   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    181 21.775838   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=63, FN=0, Flags=........
    182 21.786352   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=171, FN=0, Flags=.......T
    183 21.786380   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    184 21.778025   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=64, FN=0, Flags=........
    185 21.788557   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    186 21.786380   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=65, FN=0, Flags=........
    187 21.797971   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=172, FN=0, Flags=........
    188 22.291325   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=176, FN=0, Flags=........, SSID=Broadcast
    189 22.291436   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    190 21.788557   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    191 22.365448   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=177, FN=0, Flags=........, SSID=Broadcast
    192 22.365551   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    193 22.291436   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=67, FN=0, Flags=........, BI=100, SSID="test"
    194 23.131781   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=186, FN=0, Flags=........
    195 23.131962   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    196 22.365551   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=68, FN=0, Flags=........, BI=100, SSID="test"
    197 23.134182   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=187, FN=0, Flags=........, SSID="test"
    198 23.134329   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    199 23.131962   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=69, FN=0, Flags=........
    200 23.139570   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=188, FN=0, Flags=.......T
    201 23.139655   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    202 23.134329   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=70, FN=0, Flags=........
    203 23.143692   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    204 23.139655   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=71, FN=0, Flags=........
    205 23.161422   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=189, FN=0, Flags=........
    206 23.581265   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=192, FN=0, Flags=........, SSID=Broadcast
    207 23.581350   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    208 23.143692   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    209 23.581350   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=73, FN=0, Flags=........, BI=100, SSID="test"
    210 23.654655   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=193, FN=0, Flags=........, SSID=Broadcast
    211 23.654734   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    212 24.502215   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=203, FN=0, Flags=........
    213 24.502382   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    214 23.654734   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=74, FN=0, Flags=........, BI=100, SSID="test"
    215 24.504577   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=204, FN=0, Flags=........, SSID="test"
    216 24.504704   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    217 24.502382   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=75, FN=0, Flags=........
    218 24.514964   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=205, FN=0, Flags=.......T
    219 24.515080   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    220 24.504704   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=76, FN=0, Flags=........
    221 24.519137   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    222 24.515080   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=77, FN=0, Flags=........
    223 24.534623   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=206, FN=0, Flags=........
    224 25.027928   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=210, FN=0, Flags=........, SSID=Broadcast
    225 25.028071   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    226 24.519137   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    227 25.101907   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=211, FN=0, Flags=........, SSID=Broadcast
    228 25.101989   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    229 25.028071   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=80, FN=0, Flags=........, BI=100, SSID="test"
    230 25.101989   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=81, FN=0, Flags=........, BI=100, SSID="test"
    231 25.347112   GemtekTe_1f:0b:99     Broadcast             IEEE 802.11 Probe Request, SN=172, FN=0, Flags=...P...., SSID=Broadcast
    232 25.347266   ZyxelCom_xx:xx:xx     GemtekTe_1f:0b:99     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    233 25.360449   GemtekTe_1f:0b:99     Broadcast             IEEE 802.11 Probe Request, SN=173, FN=0, Flags=...P...., SSID=Broadcast
    234 25.360529   ZyxelCom_xx:xx:xx     GemtekTe_1f:0b:99     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    235 25.347266   ZyxelCom_xx:xx:xx     GemtekTe_1f:0b:99     IEEE 802.11 Probe Response, SN=82, FN=0, Flags=........, BI=100, SSID="test"
    236 25.392224   GemtekTe_1f:0b:99     Broadcast             IEEE 802.11 Probe Request, SN=175, FN=0, Flags=...P...., SSID=Broadcast
    237 25.392342   ZyxelCom_xx:xx:xx     GemtekTe_1f:0b:99     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    238 25.360529   ZyxelCom_xx:xx:xx     GemtekTe_1f:0b:99     IEEE 802.11 Probe Response, SN=83, FN=0, Flags=........, BI=100, SSID="test"
    239 25.392342   ZyxelCom_xx:xx:xx     GemtekTe_1f:0b:99     IEEE 802.11 Probe Response, SN=84, FN=0, Flags=........, BI=100, SSID="test"
    240 25.846279   GemtekTe_1f:0b:99     Broadcast             IEEE 802.11 Probe Request, SN=204, FN=0, Flags=...P...., SSID="weppi"
    241 25.860750   GemtekTe_1f:0b:99     Broadcast             IEEE 802.11 Probe Request, SN=205, FN=0, Flags=...P...., SSID="weppi"
    242 25.875140   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=220, FN=0, Flags=........
    243 25.875337   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    244 25.877536   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=221, FN=0, Flags=........, SSID="test"
    245 25.877679   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    246 25.875337   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=85, FN=0, Flags=........
    247 25.883784   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=222, FN=0, Flags=.......T
    248 25.883879   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    249 25.877679   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=86, FN=0, Flags=........
    250 25.887742   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    251 25.883879   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=87, FN=0, Flags=........
    252 25.890876   GemtekTe_1f:0b:99     Broadcast             IEEE 802.11 Probe Request, SN=207, FN=0, Flags=...P...., SSID="weppi"
    253 25.897991   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=223, FN=0, Flags=........
    254 26.317947   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=226, FN=0, Flags=........, SSID=Broadcast
    255 26.318034   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    256 25.887742   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    257 26.318034   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=89, FN=0, Flags=........, BI=100, SSID="test"
    258 26.391253   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=227, FN=0, Flags=........, SSID=Broadcast
    259 26.391339   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    260 26.391339   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=90, FN=0, Flags=........, BI=100, SSID="test"
    261 26.464563   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=228, FN=0, Flags=........, SSID=Broadcast
    262 26.464658   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    263 27.238719   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=237, FN=0, Flags=........
    264 27.238886   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    265 26.464658   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=91, FN=0, Flags=........, BI=100, SSID="test"
    266 27.241108   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=238, FN=0, Flags=........, SSID="test"
    267 27.241241   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    268 27.238886   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=92, FN=0, Flags=........
    269 27.252092   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=239, FN=0, Flags=.......T
    270 27.252215   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    271 27.241241   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=93, FN=0, Flags=........
    272 27.256315   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    273 27.252215   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=94, FN=0, Flags=........
    274 27.264841   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=240, FN=0, Flags=........
    275 27.757876   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=244, FN=0, Flags=........, SSID=Broadcast
    276 27.757972   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    277 27.256315   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    278 27.831310   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=245, FN=0, Flags=........, SSID=Broadcast
    279 27.831355   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    280 27.757972   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=96, FN=0, Flags=........, BI=100, SSID="test"
    281 27.831355   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=97, FN=0, Flags=........, BI=100, SSID="test"
    282 28.598516   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=254, FN=0, Flags=........
    283 28.598693   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    284 28.601110   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=255, FN=0, Flags=........, SSID="test"
    285 28.601255   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    286 28.598693   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=98, FN=0, Flags=........
    287 28.612608   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=256, FN=0, Flags=.......T
    288 28.612725   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    289 28.601255   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=99, FN=0, Flags=........
    290 28.616798   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    291 28.612725   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=100, FN=0, Flags=........
    292 28.634760   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=257, FN=0, Flags=........
    293 29.127927   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=261, FN=0, Flags=........, SSID=Broadcast
    294 29.128050   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    295 28.616798   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    296 29.201297   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=262, FN=0, Flags=........, SSID=Broadcast
    297 29.201408   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    298 29.128050   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=102, FN=0, Flags=........, BI=100, SSID="test"
    299 29.201408   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=103, FN=0, Flags=........, BI=100, SSID="test"
    300 29.968906   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=271, FN=0, Flags=........
    301 29.969097   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    302 29.971285   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=272, FN=0, Flags=........, SSID="test"
    303 29.971445   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    304 29.969097   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=104, FN=0, Flags=........
    305 29.985154   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=273, FN=0, Flags=.......T
    306 29.985258   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    307 29.971445   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=105, FN=0, Flags=........
    308 29.987370   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    309 29.985258   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=106, FN=0, Flags=........
    310 29.987370   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    311 30.001517   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=274, FN=0, Flags=........
    312 30.421248   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=277, FN=0, Flags=........, SSID=Broadcast
    313 30.421331   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    314 30.421331   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=108, FN=0, Flags=........, BI=100, SSID="test"
    315 30.494618   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=278, FN=0, Flags=........, SSID=Broadcast
    316 30.494675   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    317 31.335204   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=288, FN=0, Flags=........
    318 31.335297   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    319 30.494675   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=109, FN=0, Flags=........, BI=100, SSID="test"
    320 31.337462   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=289, FN=0, Flags=........, SSID="test"
    321 31.337606   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    322 31.335297   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=110, FN=0, Flags=........
    323 31.345809   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=290, FN=0, Flags=.......T
    324 31.345855   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    325 31.337606   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=111, FN=0, Flags=........
    326 31.348042   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    327 31.345855   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=112, FN=0, Flags=........
    328 31.348042   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    329 31.364693   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=291, FN=0, Flags=........
    330 31.791322   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=294, FN=0, Flags=........, SSID=Broadcast
    331 31.791431   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    332 31.791431   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=114, FN=0, Flags=........, BI=100, SSID="test"
    333 31.864623   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=295, FN=0, Flags=........, SSID=Broadcast
    334 31.864756   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    335 32.705511   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=305, FN=0, Flags=........
    336 32.705728   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    337 31.864756   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=115, FN=0, Flags=........, BI=100, SSID="test"
    338 32.707909   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=306, FN=0, Flags=........, SSID="test"
    339 32.708063   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    340 32.705728   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=116, FN=0, Flags=........
    341 32.716889   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=307, FN=0, Flags=.......T
    342 32.717010   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    343 32.708063   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=117, FN=0, Flags=........
    344 32.721037   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    345 32.717010   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=118, FN=0, Flags=........
    346 32.728013   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=308, FN=0, Flags=........
    347 33.147842   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=311, FN=0, Flags=........, SSID=Broadcast
    348 33.147883   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    349 32.721037   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    350 33.221356   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=312, FN=0, Flags=........, SSID=Broadcast
    351 33.221470   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    352 33.147883   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=120, FN=0, Flags=........, BI=100, SSID="test"
    353 33.221470   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=121, FN=0, Flags=........, BI=100, SSID="test"
    354 33.294536   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=313, FN=0, Flags=........, SSID=Broadcast
    355 33.294607   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    356 34.062152   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=322, FN=0, Flags=........
    357 34.062333   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    358 33.294607   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=122, FN=0, Flags=........, BI=100, SSID="test"
    359 34.064541   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=323, FN=0, Flags=........, SSID="test"
    360 34.064678   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    361 34.062333   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=123, FN=0, Flags=........
    362 34.074143   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=324, FN=0, Flags=.......T
    363 34.074175   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    364 34.064678   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=124, FN=0, Flags=........
    365 34.076203   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    366 34.074175   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=125, FN=0, Flags=........
    367 34.098179   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=325, FN=0, Flags=........
    368 34.591307   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=329, FN=0, Flags=........, SSID=Broadcast
    369 34.591390   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    370 34.076203   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    371 34.664593   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=330, FN=0, Flags=........, SSID=Broadcast
    372 34.664672   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    373 34.591390   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=127, FN=0, Flags=........, BI=100, SSID="test"
    374 35.438860   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=339, FN=0, Flags=........
    375 35.439024   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    376 34.664672   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=128, FN=0, Flags=........, BI=100, SSID="test"
    377 35.441189   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=340, FN=0, Flags=........, SSID="test"
    378 35.441324   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    379 35.439024   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=129, FN=0, Flags=........
    380 35.451308   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=341, FN=0, Flags=.......T
    381 35.451409   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    382 35.441324   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=130, FN=0, Flags=........
    383 35.455481   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    384 35.451409   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=131, FN=0, Flags=........
    385 35.464816   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=342, FN=0, Flags=........
    386 35.957837   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=346, FN=0, Flags=........, SSID=Broadcast
    387 35.957930   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    388 35.455481   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    389 36.033606   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=347, FN=0, Flags=........, SSID=Broadcast
    390 36.033645   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    391 35.957930   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=133, FN=0, Flags=........, BI=100, SSID="test"
    392 36.997816   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=357, FN=0, Flags=........
    393 36.997985   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    394 36.033645   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=134, FN=0, Flags=........, BI=100, SSID="test"
    395 37.000066   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=358, FN=0, Flags=........, SSID="test"
    396 37.000201   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    397 36.997985   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=135, FN=0, Flags=........
    398 37.010200   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=359, FN=0, Flags=.......T
    399 37.010325   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    400 37.000201   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=136, FN=0, Flags=........
    401 37.014229   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    402 37.010325   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=137, FN=0, Flags=........
    403 37.031439   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=360, FN=0, Flags=........
    404 37.531257   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=364, FN=0, Flags=........, SSID=Broadcast
    405 37.531377   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    406 37.014229   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    407 37.604587   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=365, FN=0, Flags=........, SSID=Broadcast
    408 37.604664   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    409 37.531377   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=139, FN=0, Flags=........, BI=100, SSID="test"
    410 38.372144   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=374, FN=0, Flags=........
    411 38.372356   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    412 37.604664   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=140, FN=0, Flags=........, BI=100, SSID="test"
    413 38.375251   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=375, FN=0, Flags=........, SSID="test"
    414 38.375387   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    415 38.372356   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=141, FN=0, Flags=........
    416 38.385349   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=376, FN=0, Flags=.......T
    417 38.385374   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    418 38.375387   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=142, FN=0, Flags=........
    419 38.387468   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    420 38.385374   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=143, FN=0, Flags=........
    421 38.398590   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=377, FN=0, Flags=........
    422 38.817953   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=380, FN=0, Flags=........, SSID=Broadcast
    423 38.818041   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    424 38.387468   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    425 38.818041   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=145, FN=0, Flags=........, BI=100, SSID="test"
    426 38.891175   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=381, FN=0, Flags=........, SSID=Broadcast
    427 38.891318   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    428 38.964573   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=382, FN=0, Flags=........, SSID=Broadcast
    429 38.964683   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    430 38.891318   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=146, FN=0, Flags=........, BI=100, SSID="test"
    431 38.964683   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=147, FN=0, Flags=........, BI=100, SSID="test"
    432 39.738566   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=391, FN=0, Flags=........
    433 39.738752   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    434 39.740910   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=392, FN=0, Flags=........, SSID="test"
    435 39.741066   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    436 39.738752   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=148, FN=0, Flags=........
    437 39.752154   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=393, FN=0, Flags=.......T
    438 39.752188   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    439 39.741066   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=149, FN=0, Flags=........
    440 39.754394   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    441 39.752188   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=150, FN=0, Flags=........
    442 39.767272   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=394, FN=0, Flags=........
    443 40.261245   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=398, FN=0, Flags=........, SSID=Broadcast
    444 40.261339   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    445 39.754394   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    446 40.334590   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=399, FN=0, Flags=........, SSID=Broadcast
    447 40.334673   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    448 40.261339   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=152, FN=0, Flags=........, BI=100, SSID="test"
    449 40.334673   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=153, FN=0, Flags=........, BI=100, SSID="test"
    450 41.102193   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=408, FN=0, Flags=........
    451 41.102268   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    452 41.104443   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=409, FN=0, Flags=........, SSID="test"
    453 41.104492   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    454 41.102268   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=154, FN=0, Flags=........
    455 41.112871   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=410, FN=0, Flags=.......T
    456 41.112994   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    457 41.104492   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=155, FN=0, Flags=........
    458 41.116857   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    459 41.112994   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=156, FN=0, Flags=........
    460 41.127942   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=411, FN=0, Flags=........
    461 41.547933   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=414, FN=0, Flags=........, SSID=Broadcast
    462 41.548039   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    463 41.116857   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    464 41.548039   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=158, FN=0, Flags=........, BI=100, SSID="test"
    465 41.621175   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=415, FN=0, Flags=........, SSID=Broadcast
    466 41.621273   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    467 42.462164   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=425, FN=0, Flags=........
    468 42.462362   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    469 41.621273   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=159, FN=0, Flags=........, BI=100, SSID="test"
    470 42.464539   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=426, FN=0, Flags=........, SSID="test"
    471 42.464678   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    472 42.462362   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=160, FN=0, Flags=........
    473 42.478608   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=427, FN=0, Flags=.......T
    474 42.478636   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    475 42.464678   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=161, FN=0, Flags=........
    476 42.480855   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    477 42.478636   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=162, FN=0, Flags=........
    478 42.491239   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=428, FN=0, Flags=........
    479 42.984587   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=432, FN=0, Flags=........, SSID=Broadcast
    480 42.984744   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    481 42.480855   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    482 43.825618   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=442, FN=0, Flags=........
    483 43.825799   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    484 42.984744   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=164, FN=0, Flags=........, BI=100, SSID="test"
    485 43.828085   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=443, FN=0, Flags=........, SSID="test"
    486 43.828222   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    487 43.825799   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=165, FN=0, Flags=........
    488 43.833064   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=444, FN=0, Flags=.......T
    489 43.833160   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    490 43.828222   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=166, FN=0, Flags=........
    491 43.837199   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    492 43.833160   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=167, FN=0, Flags=........
    493 43.848164   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=445, FN=0, Flags=........
    494 44.267862   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=448, FN=0, Flags=........, SSID=Broadcast
    495 44.267946   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    496 43.837199   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    497 44.267946   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=169, FN=0, Flags=........, BI=100, SSID="test"
    498 44.341263   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=449, FN=0, Flags=........, SSID=Broadcast
    499 44.341360   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    500 45.181885   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=459, FN=0, Flags=........
    501 45.182074   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    502 44.341360   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=170, FN=0, Flags=........, BI=100, SSID="test"
    503 45.184229   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=460, FN=0, Flags=........, SSID="test"
    504 45.184380   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    505 45.182074   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=171, FN=0, Flags=........
    506 45.193963   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=461, FN=0, Flags=.......T
    507 45.194002   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    508 45.184380   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=172, FN=0, Flags=........
    509 45.196020   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    510 45.194002   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=173, FN=0, Flags=........
    511 45.204596   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=462, FN=0, Flags=........
    512 45.704560   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=466, FN=0, Flags=........, SSID=Broadcast
    513 45.704670   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    514 45.196020   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    515 46.551780   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=476, FN=0, Flags=........
    516 46.551975   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    517 45.704670   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=175, FN=0, Flags=........, BI=100, SSID="test"
    518 46.554026   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=477, FN=0, Flags=........, SSID="test"
    519 46.554148   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    520 46.551975   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=176, FN=0, Flags=........
    521 46.557401   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=478, FN=0, Flags=.......T
    522 46.557498   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    523 46.554148   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=177, FN=0, Flags=........
    524 46.561444   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    525 46.557498   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=178, FN=0, Flags=........
    526 46.568017   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=479, FN=0, Flags=........
    527 46.987841   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=482, FN=0, Flags=........, SSID=Broadcast
    528 46.988002   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    529 46.561444   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    530 46.988002   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=180, FN=0, Flags=........, BI=100, SSID="test"
    531 47.061186   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=483, FN=0, Flags=........, SSID=Broadcast
    532 47.061262   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    533 47.908844   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=493, FN=0, Flags=........
    534 47.909102   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    535 47.061262   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=181, FN=0, Flags=........, BI=100, SSID="test"
    536 47.911197   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=494, FN=0, Flags=........, SSID="test"
    537 47.911325   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    538 47.909102   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=182, FN=0, Flags=........
    539 47.919923   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=495, FN=0, Flags=.......T
    540 47.919951   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    541 47.911325   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=183, FN=0, Flags=........
    542 47.922001   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    543 47.919951   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=184, FN=0, Flags=........
    544 47.934688   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=496, FN=0, Flags=........
    545 48.427863   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=500, FN=0, Flags=........, SSID=Broadcast
    546 48.427903   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    547 47.922001   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    548 48.427903   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=186, FN=0, Flags=........, BI=100, SSID="test"
    549 48.501268   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=501, FN=0, Flags=........, SSID=Broadcast
    550 48.501352   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    551 48.501352   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=187, FN=0, Flags=........, BI=100, SSID="test"
    552 49.275497   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Authentication, SN=510, FN=0, Flags=........
    553 49.275678   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=0, FN=0, Flags=........
    554 49.277887   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Association Request, SN=511, FN=0, Flags=........, SSID="test"
    555 49.278005   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=0, FN=0, Flags=........
    556 49.275678   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Authentication, SN=188, FN=0, Flags=........
    557 49.286253   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Null function (No data), SN=512, FN=0, Flags=.......T
    558 49.286340   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=0, FN=0, Flags=........
    559 49.278005   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Association Response, SN=189, FN=0, Flags=........
    560 49.290389   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    561 49.286340   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Disassociate, SN=190, FN=0, Flags=........
    562 49.298006   GemtekTe_yy:yy:yy     ZyxelCom_xx:xx:xx     IEEE 802.11 Deauthentication, SN=513, FN=0, Flags=........
    563 49.717982   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=516, FN=0, Flags=........, SSID=Broadcast
    564 49.718084   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    565 49.290389   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     EAPOL    Key
    566 49.718084   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=192, FN=0, Flags=........, BI=100, SSID="test"
    567 49.791213   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=517, FN=0, Flags=........, SSID=Broadcast
    568 49.791310   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    569 49.864570   GemtekTe_yy:yy:yy     Broadcast             IEEE 802.11 Probe Request, SN=518, FN=0, Flags=........, SSID=Broadcast
    570 49.864722   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=0, FN=0, Flags=........, BI=100, SSID="test"
    571 49.791310   ZyxelCom_xx:xx:xx     GemtekTe_yy:yy:yy     IEEE 802.11 Probe Response, SN=193, FN=0, Flags=........, BI=100, SSID="test"
    572 50.170897   ZyxelCom_xx:xx:xx     Broadcast             IEEE 802.11 Deauthentication, SN=0, FN=0, Flags=........
    573 50.170897   ZyxelCom_xx:xx:xx     Broadcast             IEEE 802.11 Deauthentication, SN=195, FN=0, Flags=........

^ permalink raw reply

* printk %pV compatibility in b43 and ath for compat-wireless
From: Nick Leverton @ 2010-12-27 18:05 UTC (permalink / raw)
  To: linux-wireless

Hi,

I'm using compat-wireless with Debian 2.6.32 (kernel for forthcoming Debian 6.0 
release).  It mostly works well but one thing that has crept in recently is the 
use of new printk features such as %pV which old kernels don't support.  I 
noticed this whilst trying the new b43 n-phy code (for which much thanks to 
everyone involved), as I get kernel messages printed of the following form:

Dec 23 21:10:46 nickl kernel: [688182.007780] Broadcom 43xx driver loaded [ 
Features: PMNLS, Firmware-ID: FW13 ]
Dec 23 21:10:50 nickl kernel: [688186.100195] b43-phy0: f535bb54
Dec 23 21:10:50 nickl kernel: [688186.198711] ADDRCONF(NETDEV_UP): wlan0: link 
is not ready
Dec 23 21:11:09 nickl kernel: [688205.048054] b43-phy0: f4a3bb54
Dec 23 21:11:09 nickl kernel: [688205.145589] ADDRCONF(NETDEV_UP): wlan0: link 
is not ready
Dec 23 21:11:20 nickl kernel: [688216.484744] ADDRCONF(NETDEV_CHANGE): wlan0: 
link becomes ready
Dec 23 21:11:31 nickl kernel: [688225.667842] b43-phy0 ERROR: f56a5f34
Dec 23 21:12:14 nickl kernel: [688235.585265] b43-phy0 ERROR: f56a5f34
Dec 23 21:12:50 nickl kernel: [688270.140937] b43-phy0 ERROR: f56a5f34
Dec 23 21:13:11 nickl kernel: [688306.427195] b43-phy0 ERROR: f56a5f34
Dec 23 21:14:05 nickl kernel: [688327.492370] b43-phy0 ERROR: f56a5f34
Dec 23 21:16:23 nickl kernel: [688381.712250] b43-phy0 ERROR: f56a5f34
Dec 23 21:22:59 nickl kernel: [688518.942314] b43-phy0 ERROR: f56a5f34
Dec 23 21:23:00 nickl kernel: [688529.935161] b43-phy0 ERROR: f56a5f34

As of 20101223, the following code uses %pV, some of which can be seen above:

./drivers/net/wireless/b43/main.c:      printk(KERN_INFO "b43-%s: %pV",
./drivers/net/wireless/b43/main.c:      printk(KERN_ERR "b43-%s ERROR: %pV",
./drivers/net/wireless/b43/main.c:      printk(KERN_WARNING "b43-%s 
warning: %pV",
./drivers/net/wireless/b43/main.c:      printk(KERN_DEBUG "b43-%s debug: %pV",
./drivers/net/wireless/ath/main.c:      rtn = printk("%sath: %pV", level, 
&vaf);
./drivers/net/wireless/b43legacy/main.c:        
printk(KERN_INFO "b43legacy-%s: %pV",
./drivers/net/wireless/b43legacy/main.c:        printk(KERN_ERR "b43legacy-%s 
ERROR: %pV",
./drivers/net/wireless/b43legacy/main.c:        
printk(KERN_WARNING "b43legacy-%s warning: %pV",
./drivers/net/wireless/b43legacy/main.c:        printk(KERN_DEBUG "b43legacy-%s 
debug: %pV",

It would be useful to know the error message behind the vararg !

I tried applying the patches which introduced %pV to kernel.org, but 2.6.32 is 
too old.  Could this be fixed either in the compat b43 driver or in a compat 
back-feature, please ?

Thankyou

Nick


^ permalink raw reply

* Re: [RFC PATCH 0/6] zd1211rw: add support for AP mode
From: Jussi Kivilinna @ 2010-12-27 20:03 UTC (permalink / raw)
  To: Jussi Kivilinna; +Cc: linux-wireless, Daniel Drake, Ulrich Kunitz
In-Reply-To: <20101227162850.560526dlr20mibwk@hayate.sektori.org>

Quoting Jussi Kivilinna <jussi.kivilinna@mbnet.fi>:
>
> I think problem is that hostapd/mon.wlan2 is getting monitor packets  
>  in wrong order. This causes hostapd to receive null-function packet  
>  from b43 at wrong time resulting 'Data/PS-poll frame from not   
> associated STA xx:xx:xx:xx:xx:xx' message and disassociation. I  
> pretty  much don't have any idea why this happens and how to fix it.  
> I have  attached wireshark capture with monitor packets in wrong  
> order.

Figured out the bug. Appears to be at zd1211rw/zd_mac.c:filter_ack() line:
		for (i=1; i<position; i++) {

This should be:
		for (i=1; i<=position; i++) {

Otherwise ack_wait_queue is never fully emptied by ACK packets.

I have also made other cleanups/fixes on zd1211rw that are not related  
to AP-mode. Should I post AP-mode as own set and fixes as own?

-Jussi


^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox