d80211: add support for SIOCSIWNICKN SIOCGIWNICKN
Subsystems (2)
PATCH 4/7 d80211: add support for SIOCSIWNICKN SIOCGIWNICKN
This patch modify d80211 to add nick wireless command
net/d80211/ieee80211_i.h +1 -0
@@ -241,6 +241,7 @@ struct ieee80211_if_sta { IEEE80211_IBSS_SEARCH, IEEE80211_IBSS_JOINED } state;struct timer_list timer; +u8 nick[IW_ESSID_MAX_SIZE ];u8 bssid[ETH_ALEN ], prev_bssid[ETH_ALEN ];u8 ssid[IEEE80211_MAX_SSID_LEN ];size_t ssid_len;
net/d80211/ieee80211_ioctl.c +35 -2
@@ -2153,6 +2153,39 @@ static void ieee80211_ioctl_unmask_chann } +static int ieee80211_ioctl_siwnick (struct net_device *dev, +struct iw_request_info *info, +union iwreq_data *wrqu,char *extra) +{ +struct ieee80211_sub_if_data *sdata; +struct ieee80211_if_sta *ifsta; + + sdata =IEEE80211_DEV_TO_SUB_IF (dev); + ifsta = &sdata->u.sta; +if (wrqu->data.length >=IW_ESSID_MAX_SIZE ) +return -E2BIG ; + +memset (ifsta->nick,0 ,sizeof (ifsta->nick)); +memcpy (ifsta->nick, extra, wrqu->data.length); +return 0 ; +} + +static int ieee80211_ioctl_giwnick (struct net_device *dev, +struct iw_request_info *info, +union iwreq_data *wrqu,char *extra) +{ +struct ieee80211_sub_if_data *sdata; +struct ieee80211_if_sta *ifsta; + + sdata =IEEE80211_DEV_TO_SUB_IF (dev); + ifsta = &sdata->u.sta; + + wrqu->data.length =strlen (ifsta->nick) +1 ; +memcpy (extra, ifsta->nick, wrqu->data.length); + wrqu->data.flags =1 ;/* active */ +return 0 ; +} +static int ieee80211_ioctl_test_mode (struct net_device *dev,int mode) {struct ieee80211_local *local = dev->ieee80211_ptr;
@@ -3138,8 +3171,8 @@ static const iw_handler ieee80211_handle (iw_handler ) ieee80211_ioctl_giwscan,/* SIOCGIWSCAN */ (iw_handler ) ieee80211_ioctl_siwessid,/* SIOCSIWESSID */ (iw_handler ) ieee80211_ioctl_giwessid,/* SIOCGIWESSID */ - (iw_handler )NULL ,/* SIOCSIWNICKN */ - (iw_handler )NULL ,/* SIOCGIWNICKN */ + (iw_handler ) ieee80211_ioctl_siwnick,/* SIOCSIWNICKN */ + (iw_handler ) ieee80211_ioctl_giwnick,/* SIOCGIWNICKN */ (iw_handler )NULL ,/* -- hole -- */ (iw_handler )NULL ,/* -- hole -- */ (iw_handler) NULL, /* SIOCSIWRATE */
I intend to kill the nick command with nl80211 since it seems to be useless. Any objections?
johannes
Quoted 2 lines · Johannes Berg
I intend to kill the nick command with nl80211 since it seems to be useless. Any objections?
I can't defend it myself, but I have heard of people using it. I think some of the distro's init scripts might set it as well?
Can anyone defend the practice of setting a nickname for a wireless device?
John
Signature · 2 lines
John W. Linville [email protected]
Quoted 9 lines · John W. Linville
Quoted 2 lines · Johannes Berg
I intend to kill the nick command with nl80211 since it seems to be useless. Any objections?
I can't defend it myself, but I have heard of people using it. I think some of the distro's init scripts might set it as well?
Can anyone defend the practice of setting a nickname for a wireless device?
I think that this was added either based on a non-802.11 protocol or based on a specific hardware/firmware design that had possibility of configuring a name for the client (to be exchanged with some proprietary network management protocol as the device name).
After that, this ioctl seems to be just used for binding some arbitrary data to an interface to help scripts etc. In other words, I don't see any real use for this from the view point of IEEE 802.11 networks and it is confusing at best. This may be useful for some setup scripts, but I would rather hope they would use something else instead.
The only reason for adding nick command would be to maintain backwards compatibility with some scripts. I do not use any distro configuration mechanisms for setting up wireless, so I do not know what is currently being used. I would not add these ioctls into d80211 unless someone can point out an existing (and widely used) mechanism that depends on these ioctls being available.
Signature · 1 line
Jouni Malinen PGP id EFC895FA
Quoted 6 lines · On 06-08-29 10:45 Jouni Malinen wrote:
The only reason for adding nick command would be to maintain backwards compatibility with some scripts. I do not use any distro configuration mechanisms for setting up wireless, so I do not know what is currently being used. I would not add these ioctls into d80211 unless someone can point out an existing (and widely used) mechanism that depends on these ioctls being available.
The softmac-broadcom and the zd1211 driver are using it to give some information about the driver bound to the interface. I found it quite useful to know which driver is bound to which WLAN interface. A readonly driver text info field would get my support.
Signature · 1 line
Uli Kunitz
Quoted 4 lines · Ulrich Kunitz
The softmac-broadcom and the zd1211 driver are using it to give some information about the driver bound to the interface. I found it quite useful to know which driver is bound to which WLAN interface. A readonly driver text info field would get my support.
Sounds like a job for sysfs.
-Michael Wu
Quoted 9 lines · Ulrich Kunitz
Quoted 6 lines · On 06-08-29 10:45 Jouni Malinen wrote:
The only reason for adding nick command would be to maintain backwards compatibility with some scripts. I do not use any distro configuration mechanisms for setting up wireless, so I do not know what is currently being used. I would not add these ioctls into d80211 unless someone can point out an existing (and widely used) mechanism that depends on these ioctls being available.
Quoted 4 lines
The softmac-broadcom and the zd1211 driver are using it to give some information about the driver bound to the interface. I found it quite useful to know which driver is bound to which WLAN interface. A readonly driver text info field would get my support.
That's what the 'driver' link is for in sysfs.
[dcbw@localhost devel]$ ls -al /sys/class/net/eth1/device/
lrwxrwxrwx 1 root root 0 Aug 30 09:18 driver -> ../../../../bus/pci/drivers/ipw2200
Dan
Quoted 1 line · mabbas
This patch modify d80211 to add nick wireless command
The nick command is useless as was pointed by several other developers. Therefore NAK.
Thanks,
Jiri
Signature · 2 lines
Jiri Benc SUSE Labs