diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2014-12-09 17:21:06 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-12-12 07:48:25 -0500 |
commit | ba1debdfed974f25aa598c283567878657b292ee (patch) | |
tree | 56e66c4504aeedcda4cefe9d6f3ed7e344544b4b /net/wireless | |
parent | cec3f0ed7de78c02ac4bc719a95915367d68c778 (diff) |
wireless: Support of IFLA_INFO_KIND rtnl attribute
It allows to identify the wlan kind of device for the user application,
e.g.:
# ip -d link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0
2: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0
wlan
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
[make wireless_link_ops const]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index 53dda7728f86..4910758baab1 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
22 | #include <net/genetlink.h> | 22 | #include <net/genetlink.h> |
23 | #include <net/cfg80211.h> | 23 | #include <net/cfg80211.h> |
24 | #include <net/rtnetlink.h> | ||
24 | #include "nl80211.h" | 25 | #include "nl80211.h" |
25 | #include "core.h" | 26 | #include "core.h" |
26 | #include "sysfs.h" | 27 | #include "sysfs.h" |
@@ -937,6 +938,10 @@ void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev, | |||
937 | } | 938 | } |
938 | EXPORT_SYMBOL(cfg80211_stop_iface); | 939 | EXPORT_SYMBOL(cfg80211_stop_iface); |
939 | 940 | ||
941 | static const struct rtnl_link_ops wireless_link_ops = { | ||
942 | .kind = "wlan", | ||
943 | }; | ||
944 | |||
940 | static int cfg80211_netdev_notifier_call(struct notifier_block *nb, | 945 | static int cfg80211_netdev_notifier_call(struct notifier_block *nb, |
941 | unsigned long state, void *ptr) | 946 | unsigned long state, void *ptr) |
942 | { | 947 | { |
@@ -954,6 +959,7 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb, | |||
954 | switch (state) { | 959 | switch (state) { |
955 | case NETDEV_POST_INIT: | 960 | case NETDEV_POST_INIT: |
956 | SET_NETDEV_DEVTYPE(dev, &wiphy_type); | 961 | SET_NETDEV_DEVTYPE(dev, &wiphy_type); |
962 | dev->rtnl_link_ops = &wireless_link_ops; | ||
957 | break; | 963 | break; |
958 | case NETDEV_REGISTER: | 964 | case NETDEV_REGISTER: |
959 | /* | 965 | /* |