2012-12-12 23:46:01

by Richard Röjfors

[permalink] [raw]
Subject: rtl8192cu in AP mode.

Hi everyone,

I've been playing with an rtl8192 the last days, I want it to act as an
access point. It's connected to an ARM9 box.

I'm using the latest compat-wireless, with some additional patches for
beacon support.

My hostapd conf looks like this:
interface=wlan0
ssid=Test
driver=nl80211
hw_mode=b
channel=6
dtim_period=1

It almost works. Running hostapd and the networks shows up for my other
machine, which can connect to the network.

I also get dhcp-requests through and corresponding dhcp responses. But
then the oddness starts. ARP requests sent from the client is received
on the AP side, the IP stack returns an ARP response, and I see it
beeing sent by _rtl_submit_tx_urb and usb_submit_urb returns 0. But
nothing is received on the other end.
Sometimes, very rarely a response can get through, maybe 1 of 100 or so,
or even less.

If I send another DHCP request, I get the response immediately. So the
problem seems to be related to ARP. I ran some http when I got the
very-rare-arp-reply and that works too.

I thought that ARP responses might be sent really quickly compared to
dhcp and http since the replies would require interaction with
userspace. So I played with some delays before sending the arp response,
without any luck.

Any ideas anyone?

Thanks
Richard



2012-12-13 18:30:27

by Christian Lamparter

[permalink] [raw]
Subject: Re: rtl8192cu in AP mode.

On Thursday, December 13, 2012 12:45:56 AM Richard Röjfors wrote:
> I've been playing with an rtl8192 the last days, I want it to act as an
> access point. It's connected to an ARM9 box.
>
> I'm using the latest compat-wireless, with some additional patches for
> beacon support.
>
> My hostapd conf looks like this:
> interface=wlan0
> ssid=Test
> driver=nl80211
> hw_mode=b
> channel=6
> dtim_period=1
>
> It almost works. Running hostapd and the networks shows up for my other
> machine, which can connect to the network.
>
> I also get dhcp-requests through and corresponding dhcp responses. But
> then the oddness starts. ARP requests sent from the client is received
> on the AP side, the IP stack returns an ARP response, and I see it
> beeing sent by _rtl_submit_tx_urb and usb_submit_urb returns 0. But
> nothing is received on the other end.
> Sometimes, very rarely a response can get through, maybe 1 of 100 or so,
> or even less.

What's your client? Does it switch to power save mode after DHCP response
and is it an 11n client as well [same device? different device/driver -
yes I know you haven't enabled 11n, but still.]?

Regards,
Chr

2012-12-14 14:25:55

by Richard Röjfors

[permalink] [raw]
Subject: Re: rtl8192cu in AP mode.

On Fri, 2012-12-14 at 15:00 +0100, Christian Lamparter wrote:
> On Friday 14 December 2012 10:08:27 Richard Röjfors wrote:
> > On Thu, 2012-12-13 at 19:30 +0100, Christian Lamparter wrote:
> > > On Thursday, December 13, 2012 12:45:56 AM Richard Röjfors wrote:
> > > > I've been playing with an rtl8192 the last days, I want it to act as an
> > > > access point. It's connected to an ARM9 box.
> > > >
> > > > I'm using the latest compat-wireless, with some additional patches for
> > > > beacon support.
> > > >
> > > > My hostapd conf looks like this:
> > > > interface=wlan0
> > > > ssid=Test
> > > > driver=nl80211
> > > > hw_mode=b
> > > > channel=6
> > > > dtim_period=1
> > > >
> > > > It almost works. Running hostapd and the networks shows up for my other
> > > > machine, which can connect to the network.
> > > >
> > > > I also get dhcp-requests through and corresponding dhcp responses. But
> > > > then the oddness starts. ARP requests sent from the client is received
> > > > on the AP side, the IP stack returns an ARP response, and I see it
> > > > beeing sent by _rtl_submit_tx_urb and usb_submit_urb returns 0. But
> > > > nothing is received on the other end.
> > > > Sometimes, very rarely a response can get through, maybe 1 of 100 or so,
> > > > or even less.
> > >
> > > What's your client? Does it switch to power save mode after DHCP response
> > > and is it an 11n client as well [same device? different device/driver -
> > > yes I know you haven't enabled 11n, but still.]?
> >
> > I have tested with two clients, my GNU/Linux laptop. It has a intel wlan
> > chipset. How would I know if it switches to power save?
> iw dev wlanX get power_save

Thanks will check.

>
> if it says "Power save: off", then it will never switch into power-save
> mode.
>
> however, rtl8192cu doesn't generate any beacons
> <http://comments.gmane.org/gmane.linux.kernel.wireless.general/96712>
> so the AP mode isn't fully implemented anyway. So, it's a bit
> pointless to debug the issue any further at this time.

I applied this patch hoping to get beacon support, it has the effect
that the clients don't disconnect from the network at least.

http://www.spinics.net/lists/linux-wireless/msg96128.html


> > Btw I saw another difference on the 8192cu AP compared to other AP's
> > nearby. Kismet say it had a beacon time of 0, while others had non-zero.
> > I applied a patch I found on the list for some beacon handling.
> Wait. Are you still talking about rtl8192cu (rtlwifi), or are you now
> referring to 8192cu (the vendor driver)

I'm only refering to rtl8192cu (rtlwifi).

--Richard



2012-12-14 15:08:54

by Christian Lamparter

[permalink] [raw]
Subject: Re: rtl8192cu in AP mode.

On Friday 14 December 2012 15:25:50 Richard Röjfors wrote:
> On Fri, 2012-12-14 at 15:00 +0100, Christian Lamparter wrote:
> > On Friday 14 December 2012 10:08:27 Richard Röjfors wrote:
> > > On Thu, 2012-12-13 at 19:30 +0100, Christian Lamparter wrote:
> > > > On Thursday, December 13, 2012 12:45:56 AM Richard Röjfors wrote:
> > > > > I've been playing with an rtl8192 the last days, I want it to act as an
> > > > > access point. It's connected to an ARM9 box.
> > > > >
> > > > > I'm using the latest compat-wireless, with some additional patches for
> > > > > beacon support.
> >
> > however, rtl8192cu doesn't generate any beacons
> > <http://comments.gmane.org/gmane.linux.kernel.wireless.general/96712>
> > so the AP mode isn't fully implemented anyway. So, it's a bit
> > pointless to debug the issue any further at this time.
>
> I applied this patch hoping to get beacon support, it has the effect
> that the clients don't disconnect from the network at least.
>
> http://www.spinics.net/lists/linux-wireless/msg96128.html

No this patch won't help and should be ignored.
AFAICT, the driver needs to prepare and send a
H2C_CREATEBSS_CMD to the firmware [and it will
take care of beaconing and keep track of the
power-save state of the associated stations].

Regards,
Chr

2012-12-14 14:00:44

by Christian Lamparter

[permalink] [raw]
Subject: Re: rtl8192cu in AP mode.

On Friday 14 December 2012 10:08:27 Richard Röjfors wrote:
> On Thu, 2012-12-13 at 19:30 +0100, Christian Lamparter wrote:
> > On Thursday, December 13, 2012 12:45:56 AM Richard Röjfors wrote:
> > > I've been playing with an rtl8192 the last days, I want it to act as an
> > > access point. It's connected to an ARM9 box.
> > >
> > > I'm using the latest compat-wireless, with some additional patches for
> > > beacon support.
> > >
> > > My hostapd conf looks like this:
> > > interface=wlan0
> > > ssid=Test
> > > driver=nl80211
> > > hw_mode=b
> > > channel=6
> > > dtim_period=1
> > >
> > > It almost works. Running hostapd and the networks shows up for my other
> > > machine, which can connect to the network.
> > >
> > > I also get dhcp-requests through and corresponding dhcp responses. But
> > > then the oddness starts. ARP requests sent from the client is received
> > > on the AP side, the IP stack returns an ARP response, and I see it
> > > beeing sent by _rtl_submit_tx_urb and usb_submit_urb returns 0. But
> > > nothing is received on the other end.
> > > Sometimes, very rarely a response can get through, maybe 1 of 100 or so,
> > > or even less.
> >
> > What's your client? Does it switch to power save mode after DHCP response
> > and is it an 11n client as well [same device? different device/driver -
> > yes I know you haven't enabled 11n, but still.]?
>
> I have tested with two clients, my GNU/Linux laptop. It has a intel wlan
> chipset. How would I know if it switches to power save?
iw dev wlanX get power_save

if it says "Power save: off", then it will never switch into power-save
mode.

however, rtl8192cu doesn't generate any beacons
<http://comments.gmane.org/gmane.linux.kernel.wireless.general/96712>
so the AP mode isn't fully implemented anyway. So, it's a bit
pointless to debug the issue any further at this time.

> Btw I saw another difference on the 8192cu AP compared to other AP's
> nearby. Kismet say it had a beacon time of 0, while others had non-zero.
> I applied a patch I found on the list for some beacon handling.
Wait. Are you still talking about rtl8192cu (rtlwifi), or are you now
referring to 8192cu (the vendor driver)

Regards,
Chr

2012-12-14 09:08:33

by Richard Röjfors

[permalink] [raw]
Subject: Re: rtl8192cu in AP mode.

On Thu, 2012-12-13 at 19:30 +0100, Christian Lamparter wrote:
> On Thursday, December 13, 2012 12:45:56 AM Richard Röjfors wrote:
> > I've been playing with an rtl8192 the last days, I want it to act as an
> > access point. It's connected to an ARM9 box.
> >
> > I'm using the latest compat-wireless, with some additional patches for
> > beacon support.
> >
> > My hostapd conf looks like this:
> > interface=wlan0
> > ssid=Test
> > driver=nl80211
> > hw_mode=b
> > channel=6
> > dtim_period=1
> >
> > It almost works. Running hostapd and the networks shows up for my other
> > machine, which can connect to the network.
> >
> > I also get dhcp-requests through and corresponding dhcp responses. But
> > then the oddness starts. ARP requests sent from the client is received
> > on the AP side, the IP stack returns an ARP response, and I see it
> > beeing sent by _rtl_submit_tx_urb and usb_submit_urb returns 0. But
> > nothing is received on the other end.
> > Sometimes, very rarely a response can get through, maybe 1 of 100 or so,
> > or even less.
>
> What's your client? Does it switch to power save mode after DHCP response
> and is it an 11n client as well [same device? different device/driver -
> yes I know you haven't enabled 11n, but still.]?

I have tested with two clients, my GNU/Linux laptop. It has a intel wlan
chipset. How would I know if it switches to power save?
What I did was for instance a ping. Which repeatedly sent arp requests.
In parallel with that I send a DHCP request. I got a DHCP response but
no arp responses. So I guess my wlan chip stayed in the same power
mode?

The other client is an android phone, which I suppose tries to save
power aggressively(?).

Both the clients support 11n.

Is there an easy way to find out regarding the power saving mode?

Btw I saw another difference on the 8192cu AP compared to other AP's
nearby. Kismet say it had a beacon time of 0, while others had non-zero.
I applied a patch I found on the list for some beacon handling.

--Richard