[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1466756034-5485-1-git-send-email-erik.stromdahl@gmail.com>
Date: Fri, 24 Jun 2016 10:13:54 +0200
From: Erik Stromdahl <erik.stromdahl@...il.com>
To: johannes@...solutions.net, johannes.berg@...el.com,
kvalo@...eaurora.org, linux-wireless@...r.kernel.org,
netdev@...r.kernel.org
Cc: Erik Stromdahl <erik.stromdahl@...il.com>
Subject: [PATCH] mac80211_hwsim: Added vendor echo command
The purpose of the echo command is to provide a test
facility for user space programs.
Signed-off-by: Erik Stromdahl <erik.stromdahl@...il.com>
---
drivers/net/wireless/mac80211_hwsim.c | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 4dd5adc..2e17bf1 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -332,14 +332,16 @@ static const struct ieee80211_rate hwsim_rates[] = {
#define OUI_QCA 0x001374
#define QCA_NL80211_SUBCMD_TEST 1
+#define QCA_NL80211_SUBCMD_ECHO 2
enum qca_nl80211_vendor_subcmds {
QCA_WLAN_VENDOR_ATTR_TEST = 8,
- QCA_WLAN_VENDOR_ATTR_MAX = QCA_WLAN_VENDOR_ATTR_TEST
+ QCA_WLAN_VENDOR_ATTR_ECHO,
+ QCA_WLAN_VENDOR_ATTR_MAX = QCA_WLAN_VENDOR_ATTR_ECHO
};
static const struct nla_policy
hwsim_vendor_test_policy[QCA_WLAN_VENDOR_ATTR_MAX + 1] = {
- [QCA_WLAN_VENDOR_ATTR_MAX] = { .type = NLA_U32 },
+ [QCA_WLAN_VENDOR_ATTR_TEST] = { .type = NLA_U32 },
};
static int mac80211_hwsim_vendor_cmd_test(struct wiphy *wiphy,
@@ -393,12 +395,33 @@ static int mac80211_hwsim_vendor_cmd_test(struct wiphy *wiphy,
return cfg80211_vendor_cmd_reply(skb);
}
+static int mac80211_hwsim_vendor_cmd_echo(struct wiphy *wiphy,
+ struct wireless_dev *wdev,
+ const void *data, int data_len)
+{
+ struct sk_buff *skb;
+
+ skb = cfg80211_vendor_cmd_alloc_reply_skb(wiphy, data_len);
+ if (!skb)
+ return -ENOMEM;
+
+ nla_put(skb, QCA_WLAN_VENDOR_ATTR_ECHO, data_len, data);
+
+ return cfg80211_vendor_cmd_reply(skb);
+}
+
static struct wiphy_vendor_command mac80211_hwsim_vendor_commands[] = {
{
.info = { .vendor_id = OUI_QCA,
.subcmd = QCA_NL80211_SUBCMD_TEST },
.flags = WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = mac80211_hwsim_vendor_cmd_test,
+ },
+ {
+ .info = { .vendor_id = OUI_QCA,
+ .subcmd = QCA_NL80211_SUBCMD_ECHO },
+ .flags = WIPHY_VENDOR_CMD_NEED_NETDEV,
+ .doit = mac80211_hwsim_vendor_cmd_echo,
}
};
--
1.7.9.5
Powered by blists - more mailing lists