Why did wireless tools version 30 become a permanent beta?
I should have read through the Q/A that I linked better because there was a link to a page discussing why this project was abandoned:
Is WE being further developed ?
No it is not. Only bug fixes are being accepted for WE.
Why we are abandoning WE
WEs are based on
ioctl()
and althoughioctl()
has been used and still is being used as a standard transport for communication between user ←→ kernelspace new transports are being preferred for several reasons.From Linux Device Drivers - 3rd Edition:
In user space, the ioctl system call has the following prototype: int ioctl(int fd, unsigned long cmd, ...);
The prototype stands out in the list of Unix system calls because of the dots, which usually mark the function as having a variable number of arguments. In a real system, however, a system call can’t actually have a variable number of arguments. System calls must have a well-defined prototype, because user programs can access them only through hardware “gates.” Therefore, the dots in the prototype represent not a variable number of arguments but a single optional argument, traditionally identified as
char *argp
. The dots are simply there to prevent type checking during compilation.It also states:
The unstructured nature of the
ioctl
call has caused it to fall out of favor among kernel developers. Eachioctl
command is, essentially, a separate, usually undocumented system call, and there is no way to audit these calls in any sort of comprehensive manner. It is also difficult to make the unstructuredioctl
arguments work identically on all systems; for example, consider 64-bit systems with a userspace process running in 32-bit mode.What is Wireless-Extensions' replacement
New development should be focused on cfg80211 and nl80211.
Side Note: It seems Jean Tourrhiles worked on the project from around 1997-2009. I found an article from 2014 saying Tourrhiles was still at HP, working on a project called OpenFlow:
HP’s Jean Tourrhiles also chairs the Extensibility Working Group, which works as an “editor” to drive the latest technology into future versions of OpenFlow
Wireless tools is deprecated in favor of iw
because the wireless extensions has been deprecated in favor of the new nl80211 interface for wireless devices. The kernel documentation for iw says that.
However, nl80211 is under active development and not all drivers have been migrated to it. Wireless tools is still required for devices that have not been migrated from wireless extensions.
The reason Ubuntu (and pretty much all distros I know of) provide version 30 beta is because that version fixes a critical bug that was in version 29, which caused the iwconfig to fail if there were too many networks in the area due to a buffer overflow. The Github repo for wireless tools does not show this, but here's the relevant patch from Arch