Subject: problems in SIOCS/G80211NWID ioctls
To: None <tech-net@netbsd.org>
From: Atsushi Onoe <onoe@sm.sony.co.jp>
List: tech-net
Date: 07/05/2000 02:38:23
There are SIOCS80211NWID and SIOCG80211NWID ioctls defined to set/get
ESSID for IEEE 802.11 wireless LAN.  However, we cannot set nor show
ESSID includes '\0', which is not prohibited by the 802.11 spec.  This
is because these ioctls doesn't have a length field.  Actually, the
kernel uses strlen() to determine length, and ifconfig just use
printf(%s) to show the value which may include control chars.

Can I make binary incompatible changes to prepend 1 byte length field to
the NWID argument of the ioctl?  Or should I left these ioctls as is and
add new ioctls including length field later?

Note that the ioctls defined in sys/net/if_ieee80211.h never released
but they will be released as 1.4.3 and 1.5.  The only userland program
affected is ifconfig(8).

Also ifconfig(8) should be enhanced to accept "0x..." notation for NWID,
perhaps as well as to support configurations of WEP, IBSS, ...
But compared to the incompatible change requst of ioctls, the enhancement
of ifconfig(8) will be less important and can be defer, IMHO.

Atsushi Onoe