On 09/09/2013 06:45 PM, Mark Cave-Ayland wrote:
dmesg output: http://www.ilande.co.uk/tmp/rtl8192cu_patch-3-dmesg.txt wpa_supplicant output: http://www.ilande.co.uk/tmp/rtl8192cu_patch-3-wpa_supplicant.txt Now the interesting part was as you can see from the logs, I managed to get a reasonably long association to the AP towards the end so I tried running dhclient against the wlan1 interface - this was slow, taking about 60s to complete, but it did eventually return with an IP address. With that in place, I tried pinging 8.8.8.8 and ended up with a very poor connection, with the ping exit banner reporting 87% packet loss :(
We now know that the beacons are being lost. The last one was at 90600.642566 as shown below:
Sep 10 00:29:48 kentang kernel: [90599.513526] rtlwifi: mode 2, state 2, is_beacon 1, is_probe_resp 0, length 153 Sep 10 00:29:50 kentang kernel: [90600.642566] rtlwifi: mode 2, state 2, is_beacon 1, is_probe_resp 0, length 153 Sep 10 00:29:57 kentang kernel: [90607.829051] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try to reconnect now Sep 10 00:29:57 kentang kernel: [90607.829058] wlan1: Connection to AP 00:1f:9f:d5:a8:3b lost Sep 10 00:29:57 kentang kernel: [90607.830086] cfg80211: Calling CRDA to update world regulatory domain
We have to conclude that your interface has been shut down as we have gotten no beacons or RX data packets received. Unfortunately, my restricting the output to only your AP does not let me know if any data are being received. I hate to do this, but the attached patch will dump all packets again with no limit. Once you get a disconnect, then you can stop the run before the log gets too full.
Larry
Index: wireless-testing-save/drivers/net/wireless/rtlwifi/usb.c =================================================================== --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/usb.c +++ wireless-testing-save/drivers/net/wireless/rtlwifi/usb.c @@ -484,6 +484,8 @@ static void _rtl_usb_rx_process_agg(stru if (unicast) rtlpriv->link_info.num_rx_inperiod++; } + /* static bcn for roaming */ + rtl_beacon_statistic(hw, skb); } } Index: wireless-testing-save/drivers/net/wireless/rtlwifi/core.c =================================================================== --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/core.c +++ wireless-testing-save/drivers/net/wireless/rtlwifi/core.c @@ -184,6 +184,7 @@ static int rtl_op_add_interface(struct i rtlpriv->cfg->maps [RTL_IBSS_INT_MASKS]); } + mac->link_state = MAC80211_LINKED; break; case NL80211_IFTYPE_ADHOC: RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, Index: wireless-testing-save/drivers/net/wireless/rtlwifi/base.c =================================================================== --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/base.c +++ wireless-testing-save/drivers/net/wireless/rtlwifi/base.c @@ -1288,6 +1288,10 @@ void rtl_beacon_statistic(struct ieee802 struct rtl_priv *rtlpriv = rtl_priv(hw); struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + pr_info("mode %d, state %d, is_beacon %d, is_probe_resp %d, length %d\n", + rtlpriv->mac80211.opmode, rtlpriv->mac80211.link_state, ieee80211_is_beacon(hdr->frame_control), + ieee80211_is_probe_resp(hdr->frame_control), skb->len); + if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION) return;