CALL for TEST [HOSTAP] run(4) ralink usb wireless

Ganbold ganbold at gmail.com
Thu May 27 15:07:09 UTC 2010


AK-san,

PseudoCylon wrote:
> ----- Original Message ----
>   
>> From: Ganbold <ganbold at gmail.com>
>> To: PseudoCylon <moonlightakkiy at yahoo.ca>
>> Cc: freebsd-current at freebsd.org; Ganbold Tsagaankhuu <ganbold at mobicom.mn>
>> Sent: Wed, May 26, 2010 10:10:46 AM
>> Subject: Re: CALL for TEST [HOSTAP] run(4) ralink usb wireless
>>
>> It looks like either bridge or wlan/run driver is not
>> forwarding/allowing incoming arp request for wireless client behind this
>> access point.
>> Wireless client is not getting any arp request and after sending several
>> arp request to wireless client ADSL modem stops responding (had to
>> restart modem).
>> Any idea?
>>
>> thanks,
>>
>> Ganbold
>>     
>
>
> Hello again Ganbold,
>
> This time I can reproduce the problem on my computer. Please try attached patch. (patch to if_run.c) I suppose arp is for during dhcp negotiation. So, client does associate but cannot get IP address.
>
> The device won't talk with other devices until 2-way handshake has happens. I thought it happens after 4-way handshake, but hostapd with -d option shows it happens several minutes later. I added code to set some registers ahead of it. So, no need to wait renegotiation happens.
>   

Just tested the patch, still it has same problem.
(FreeBSD rspro 9.0-CURRENT FreeBSD 9.0-CURRENT #67 r208541M: Thu May 27
22:46:36 ULAT 2010    
tsgan at beastie:/usr/obj/mips/usr/mysrc/sys/RSPRO_AR71XX  mips)

thanks,

Ganbold

>
> -- patch begin --
>
> diff --git a/dev/usb/wlan/if_run.c b/dev/usb/wlan/if_run.c
> index 61784d9..9beb582 100644
> --- a/dev/usb/wlan/if_run.c
> +++ b/dev/usb/wlan/if_run.c
> @@ -2053,6 +2053,17 @@ run_key_set_cb(void *arg)
>  attr = (attr & ~0xf) | (mode << 1) | RT2860_RX_PKEY_EN;
>  if(run_write(sc, RT2860_WCID_ATTR(wcid), attr))
>  return;
> +
> +if(vap->iv_opmode == IEEE80211_M_HOSTAP){
> +if(run_read(sc, RT2860_SKEY_MODE_0_7, &attr))
> +return;
> +attr &= ~(0xf << (1 * 4));
> +attr &= ~(0xf << (2 * 4));
> +attr |= mode << (1 * 4);
> +attr |= mode << (2 * 4);
> +if(run_write(sc, RT2860_SKEY_MODE_0_7, attr))
> +return;
> +}
>  }
>  
>  /* TODO create a pass-thru key entry? */
>
> -- patch end --
>
>
>
>   


-- 
A pessimist is a man who has been compelled to live with an optimist. --
Elbert Hubbard


More information about the freebsd-current mailing list