Kismet Wireless

Kismet Forums


Posted by:jinghao
Subject:Per Packet Signal Strength For RTL8187 Dongle on Android
Date:23:26:08 19/02/2014

I kind of figured it out. So in, when you receive a packet from USB, you strip 16 or 20 bytes at the end. That seems to be the RTL8187 RX "header".

I'll go ahead and try to use the rtl8187_rx_hdr structure in Linux kernel driver to parse the "header", and see if it makes sense. If yes, then hopefully I can come up with a patch that sets the signal and noise value of the Packet class properly.


> Thanks for your reply!
> It seems, from the rtl8187 Linux driver, the signal info is already included in rtl_8187_rx_hdr. Although the comment there says it's not accurate, the actual signal strength is calculated by AGC.
> The questions is, I didn't see any RTL8187 specific headers in the dumped packets. It's just PPI header followed by IEEE80211 headers. Does the firmware strip that header by default? So we need to tell the firmware not to do so somehow?
> > > I got a USB Wifi dongle with RTL8187 chipset, and I've been playing with the Android pcap app for a while. It works quite well. However, there is no per packet RSSI information. Is it because the firmware just doesn't report signal/noise info?
> > >
> > > I cloned the source code and checked it out. It seems that's the case. Because we don't modify the packet in Java code. So the question is, can I configure the dongle somehow to let it add extra headers to packets?
> > >
> > > The closest I can get is in function rtl8187_start, there are couple of RX conf flags, e.g., RTL818X_RX_CONF_ONLYERLPKT. I don't know if there's a flag to set to enable RSSI reporting. Where can I find docs explaining what these flag does?
> >
> > Primarily it doesn't report signal level because I didn't spend the time to figure it out yet.
> >
> > The only docs I'm aware of for the drivers are the linux kernel drivers.
> >
> > Patches definitely welcome to the driver code!

Reply to this message