After getting on for four months, my mac80211 injection patches have been accepted by the powers-that-be and have made their way into the Linus git repo, the crucible from which vanilla kernel versions are forged, and the upstream from which all major distros are ultimately basing their kernels on. (Edit: they are present in 2.6.23-rc1 also).
Assuming nothing bad happens in the next few weeks leading to their being reverted (unlikely I would think, since they don't interfere with much existing code), then a standardized driver-independent ieee80211 packet injection methodology will soon be available by default in all major distro kernels. Currently if you want to perform packet injection, you enter into a dark underworld of individual driver patching, having to cook custom kernels and make animal sacrifices to forgotten Gods. But now with the injection patches, for the devices with mac80211 drivers all that crap is blown away and every 2.6.23 kernel will offer the capability built-in.
Here are the list of mac80211 drivers and whether I have actually seen good injection. All of the drivers are expected to work, but I don't have all the hardware.
mac80211 driver | Personally Tested |
adm8211 | no |
bcm43xx | yes |
iwl3945 | yes |
iwl4965 | no |
p54 | no |
rt2x00 | no (pending) |
zd1211rw | yes |
I have also provided the
Packetspammer commandline applet to show how to use the injection API from userspace, this provides a simple, GPL2 tested base for making your own injection code for your own apps.
Work started on it in Dec 2006 by providing the old Linux stack driver patches. The real reason for the sustained effort is to enable
Penumbra to work "out of of the box" on not only Linux desktops and laptops but generic embedded devices as well.