Writing my own wifi driver for linux? - wifi

I am wondering where to start if I decided to write\hack my own wifi driver?
What language should be of choice?
Where to get the initial research documents? Fourms I should visit? IRC channels?

Related

Connection Load Balancing feature on OpenWRT

i'm a newbie with OpenWRT, and i'm working on OpenWRT project that has a Connection Load Balance feature: "when there are more than one access point (AP) in the network, network administrator may set up AP Load Balance to prevent that one of the AP gets overloaded, while others are still quite free. This help improve the Wi-Fi performance for all the wireless clients" (like Drayteks' APs). And I wonder if OpenWRT can support this feature? If not, can you tell me if any opensource software can do that (like OpenWiSP,...)? Thanks for your help and I appologize in advance for my English.

Is it possible to associate single wireless network card to multiple WiFi Access Points at a time?

Is it possible to associate single wireless network interface controller (WNIC) with multiple Wireless Access Points (WAP) at a time? If not: why?
I've never heard about such a feature, so I assume it's technically impossible or fairly difficult and rarely implemented. Is it really that difficult/impossible to implement driver providing such a feature? Is it software or hardware difficulty?
I assume that TCP/IP protocols' specifications doesn't limit us at all because if I attach multiple WNICs to my computer, I can easily connect to multiple APs.
If it's software difficulty, than what's the actual problem? Does Linux/Windows kernel or WNIC's drivers limits it? Or maybe system libraries (like libc on GNU/Linux systems)?
If it's hardware difficulty, what actually limits us? Antennas? Using single radio frequency at a time? If yes, than why can't we implement frequency hopping (like Kismet does)? Because of lost packets during time spent on other channels? If yes, than can we associate WNIC with multiple routers working on the same channel (I know that channel overlapping is bad)?
Note: I'm not talking about dual band routers. I assume that we consider most common WNIC and AP which both work on 2.4GHz channels. If I have to put my question into OS context, than I choose GNU/Linux context.
Yes. The basic technique is that the client tells AP 'A' that it is going to sleep and then talks to AP 'B' while A is buffering frames for it.
Microsoft research worked this out a while ago:
http://research.microsoft.com/en-us/um/redmond/projects/virtualwifi/
Many low-level drivers support Wi-Fi interface virtualization (e.g. the BRCM wl command has options which support this).
Apple's AirDrop and MultiPeer features for OS X and iOS use a similar technique, but instead of talking to a 2nd AP they talk to a peer device.

Connecting multiple devices to wifi

I have a question and like so many of my questions I get the feeling that I'm not finding the answers through traditional methods because I lack the vocabulary.
I am starting a project where I need to take a windows based laptop and connect it to the internet through a wifi dongle. I then want to turn that laptop into a wifi hotspot and connect circa 30 mobile phones to it.
In my head this worked by buying a decent wifi dongle and then using software to virtualize the wireless adapter I would connect these phones and I was hoping that the strength of my dongle would be possibly be improved with a wifi repeater/booster.
This is all in preparation for a quiz game that takes place on a laptop and the mobile phones are querying the system for the next question through a POST operation, and pulling down just a few bits of text and a few other variables (so not much data is being passed, but all 30 or so devices are asking for it at the same time)
So now to the question. If my assumptions above are right how to I begin to understand what qualities I need in a wifi dongle, wifi repeater/booster and virtualization software?
If my assumptions are wrong, what do I need to be looking at?
Cheers for any help you can offer.
Other basic info that may or may not be relevant: I'm in the UK and I'm willing to spend a few hundred pounds on a solution to this. The mobiles will be running a version of android (preferably newer than version 2, hopefully closer to 4 though).
You need to google internet connection sharing (ICS)
here is an example I found
http://www.dummies.com/how-to/content/how-to-share-an-internet-connection-in-windows-7.html

How to capture raw signal from wireless router?

I have seen several projects now which derive novel spatial information from radio data collected from a typical wireless router:
http://wisee.cs.washington.edu/
http://www.extremetech.com/extreme/133936-using-wifi-to-see-through-walls
The idea of using a wireless router as a sort of passive radar is fantastic.
I am very interested in experimenting with data collected from a wireless router myself, but there is little information on how to go about actually interfacing with a wireless router and getting a raw stream of information collected by the device. Similar questions have been asked on here before, but I am yet to see a satisfactory answer.
I don't have the rep points necessary to link to the other questions but see:
'Capture Raw Signal from WiFi card as You Would a Sound Card'
'raw wifi “signal data” access'
I am looking for a solution that would let me use a low-cost device such as the oh so common WRT54G wireless router. If your answer involves custom radio hardware, you needn't bother posting.
As far as I know, the only option using a commodity hardware is to use Intel 5300 Wifi card. You can get the complex CSI (amplitude and phase info therein) from the three antenna on it from a sample of subcarriers (OFDM). You can take a look at this site:
http://dhalperi.github.io/linux-80211n-csitool/
If you read the wisee research paper you will find the platform they use for the system, it is USRP N210 from Ettus plus GNU radio software.
So it is not your usual WiFi AP they are using but the SDR solution this question also hints about.
WiFi devices are build to handle physical layer in silicon and the monitor mode is the best thing you can get without going the SDR path. You can get quite a lot of information from it - the radiotap header contains for example received signal strength and receiving antenna information. But if you really want to explore physical layer of WiFi then commodity hardware is not going to cut it.

Reading Network Traffic

I want to intercept all network traffic coming and going from a specific application on a Windows XP. How do I get started doing this?
The goal would be to reverse engineer the API used between the local software and the remote software and implement the same API in my own software package.
I can program in anything, Java is the easiest however.
Just use Wireshark, no need of programming anything.

Resources