Search Linux Wireless

Re: ath9k wds mode station break off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I catched the bug position:

in mac80211 ieee80211_sta_manage_reorder_buf function:

/* frame with out of date sequence number */
if (ieee80211_sn_less(mpdu_seq_num, head_seq_num)) {


ieee80211_sn_less will check seq_num. But in ath9k wds mode, I found
some time mpdu_seq_num will less than head_seq_num.  Then all recvieve
data packet will drop.

my log:

[ 8137.201050] mac80211 with out of date seq number: 3843 3890


On Sat, Jun 24, 2017 at 10:55 AM, 孙建希 <ycsunjane@xxxxxxxxx> wrote:
> Hi,
>
> Why ap send deauth packet?
>
> I grep the source find deauth in ieee80211_rx_mgmt_deauth.
>
> On Sat, Jun 24, 2017 at 10:40 AM, 孙建希 <ycsunjane@xxxxxxxxx> wrote:
>> All:
>>
>> Add some debug info in mac80211, i can get data packet in
>> __ieee80211_rx_handle_packet
>>
>> 4053         if (ieee80211_is_mgmt(fc)) {
>> 4054                 mac80211_dbg(local, RX, "mac80211 mgmt
>> packet\n");
>> 4055                 /* drop frame if too short for header */
>>
>> 4083         } else if (ieee80211_is_data(fc)) {
>> 4084                 mac80211_dbg(local, RX, "mac80211 data
>> packet\n");
>> 4085                 struct sta_info *sta, *prev_sta;
>>
>> with ping packet log:
>>
>> [ 8996.617367] mac80211 data packet
>> [ 8996.622783] mac80211 mgmt packet
>> [ 8996.725036] mac80211 mgmt packet
>> [ 8996.820829] mac80211 data packet
>> [ 8996.829383] mac80211 mgmt packet
>> [ 8996.931682] mac80211 mgmt packet
>> [ 8997.033052] mac80211 mgmt packet
>> [ 8997.135956] mac80211 mgmt packet
>>
>>
>> And station will deauth from ap with PRE_AUTH_NOT_VALID:
>>
>> [ 8998.621385] wlan0: deauthenticated from c8:ee:a6:2d:cc:6c (Reason:
>> 2=PREV_AUTH_NOT_VALID)
>> [ 8998.629537] br-lan: port 2(wlan0) entered disabled state
>> [ 9003.635631] wlan0: authenticate with c8:ee:a6:2d:cc:6c
>> [ 9003.651230] wlan0: send auth to c8:ee:a6:2d:cc:6c (try 1/3)
>> [ 9003.670365] wlan0: associate with c8:ee:a6:2d:cc:6c (try 1/3)
>> [ 9003.681735] wlan0: RX AssocResp from c8:ee:a6:2d:cc:6c (capab=0x431
>> status=0 aid=1)
>> [ 9003.815829] br-lan: port 2(wlan0) entered forwarding state
>>
>>
>> I think some bug in auth cause data packet drop.
>>
>> On Sat, Jun 3, 2017 at 4:09 PM, 孙建希 <ycsunjane@xxxxxxxxx> wrote:
>>> wds ap:
>>>
>>>         config wifi-device 'radio0'
>>>                 option type 'mac80211'
>>>                 option hwmode '11g'
>>>                 option path 'platform/ar933x_wmac'
>>>                 option distance '3000'
>>>                 option txpower '18'
>>>                 option country '00'
>>>                 option channel '1'
>>>                 option htmode 'HT40'
>>>
>>>         config wifi-iface
>>>                 option device 'radio0'
>>>                 option network 'lan'
>>>                 option mode 'ap'
>>>                 option encryption 'psk2'
>>>                 option key '12345600'
>>>                option max_inactivity '20'
>>>                 option wds '1'
>>>                 option ssid 'LK-M2-Jianxi'
>>>
>>> wds station:
>>>
>>>         config wifi-device 'radio0'
>>>                 option type 'mac80211'
>>>                 option channel '1'
>>>                 option hwmode '11g'
>>>                 option path 'platform/ar933x_wmac'
>>>                 option htmode 'HT20'
>>>                 option distance '3000'
>>>                 option txpower '19'
>>>                option country '00'
>>>
>>>         config wifi-iface
>>>                 option device 'radio0'
>>>                 option network 'lan'
>>>                 option encryption 'psk2'
>>>                 option key '12345600'
>>>                 option max_inactivity '20'
>>>                 option wds '1'
>>>                 option mode 'sta'
>>>                 option ssid 'LK-M2-Jianxi'
>>>
>>>  When the station break off, ping can not reach ap. wifi still
>>> connect. kernel have no error info. iwinfo signal still change.
>>>
>>> ap with the other station still alive.
>>>
>>> Use wpa_cli scan command, will awake station, and ping alive.
>>> wifi command also work.
>>>
>>> /proc/interrupts ath9k still alive.




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux