Thread (4 messages) read the whole thread 4 messages, 2 authors, 2014-09-03
STALE4350d

[PATCH 1/2] iw: print hexdump when vendor event

From: Janusz Dziedzic <hidden>
Date: 2014-08-27 07:58:50
Subsystem: the rest · Maintainer: Linus Torvalds

print hexdump when vendor event and -f requested

Signed-off-by: Janusz Dziedzic <redacted>
---
 event.c |    4 ++++
 iw.h    |    1 +
 util.c  |   13 +++++++++++++
 3 files changed, 18 insertions(+)
diff --git a/event.c b/event.c
index 6775eb2..d903f9e 100644
--- a/event.c
+++ b/event.c
@@ -535,6 +535,10 @@ static int print_event(struct nl_msg *msg, void *arg)
 		printf("vendor event %.6x:%d\n",
 			nla_get_u32(tb[NL80211_ATTR_VENDOR_ID]),
 			nla_get_u32(tb[NL80211_ATTR_VENDOR_SUBCMD]));
+		if (args->frame && tb[NL80211_ATTR_VENDOR_DATA])
+			iw_hexdump("vendor event",
+				   nla_data(tb[NL80211_ATTR_VENDOR_DATA]),
+				   nla_len(tb[NL80211_ATTR_VENDOR_DATA]));
 		break;
 	default:
 		printf("unknown event %d (%s)\n",
diff --git a/iw.h b/iw.h
index 317f0a6..db88a86 100644
--- a/iw.h
+++ b/iw.h
@@ -171,6 +171,7 @@ void print_ies(unsigned char *ie, int ielen, bool unknown,
 	       enum print_ie_type ptype);
 
 void parse_bitrate(struct nlattr *bitrate_attr, char *buf, int buflen);
+void iw_hexdump(const char *prefix, const __u8 *data, size_t len);
 
 DECLARE_SECTION(set);
 DECLARE_SECTION(get);
diff --git a/util.c b/util.c
index 97307ec..ce4b0ac 100644
--- a/util.c
+++ b/util.c
@@ -702,3 +702,16 @@ void print_vht_info(__u32 capa, const __u8 *mcs)
 	tmp = mcs[6] | (mcs[7] << 8);
 	printf("\t\tVHT TX highest supported: %d Mbps\n", tmp & 0x1fff);
 }
+
+void iw_hexdump(const char *prefix, const __u8 *buf, size_t size)
+{
+	int i;
+
+	printf("%s: ", prefix);
+	for (i = 0; i < size; i++) {
+		if (i && i % 16 == 0)
+			printf("\n%s: ", prefix);
+		printf("%02x ", buf[i]);
+	}
+	printf("\n\n");
+}
-- 
1.7.9.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help