Search Linux Wireless

[PATCH] iw: event: add sta opmode changed command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Parsing this command helps tracking num spatial stream
and bandwidth changes.

Signed-off-by: Markus Theil <markus.theil@xxxxxxxxxxxxx>
---
 event.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/event.c b/event.c
index 0cedeb9..7600781 100644
--- a/event.c
+++ b/event.c
@@ -708,6 +708,32 @@ static void parse_set_interface(struct nlattr **attrs)
 	printf("\n");
 }
 
+static void parse_sta_opmode_changed(struct nlattr **attrs)
+{
+	char macbuf[ETH_ALEN*3];
+
+	printf("sta opmode changed");
+
+	if (attrs[NL80211_ATTR_MAC]) {
+		mac_addr_n2a(macbuf, nla_data(attrs[NL80211_ATTR_MAC]));
+		printf(" %s", macbuf);
+	}
+
+	if (attrs[NL80211_ATTR_SMPS_MODE]) {
+		printf(" smps mode %i", nla_get_u8(attrs[NL80211_ATTR_SMPS_MODE]));
+	}
+
+	if (attrs[NL80211_ATTR_CHANNEL_WIDTH]) {
+		printf(" chan width %i", nla_get_u8(attrs[NL80211_ATTR_CHANNEL_WIDTH]));
+	}
+
+	if (attrs[NL80211_ATTR_NSS]) {
+		printf(" nss %i", nla_get_u8(attrs[NL80211_ATTR_NSS]));
+	}
+
+	printf("\n");
+}
+
 static int print_event(struct nl_msg *msg, void *arg)
 {
 	struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
@@ -1055,6 +1081,10 @@ static int print_event(struct nl_msg *msg, void *arg)
 		parse_set_interface(tb);
 		break;
 	}
+	case NL80211_CMD_STA_OPMODE_CHANGED: {
+		parse_sta_opmode_changed(tb);
+		break;
+	}
 	default:
 		printf("unknown event %d (%s)\n",
 		       gnlh->cmd, command_name(gnlh->cmd));
-- 
2.24.0




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux