Thread (3 messages) flat view 3 messages, 2 authors, 2021-04-13
STALE1986d

[PATCH 1/2] monitor: Add control packet count to analyze command

From: Tedd Ho-Jeong An <hidden>
Date: 2021-04-13 18:04:40
Subsystem: the rest · Maintainer: Linus Torvalds

From: Tedd Ho-Jeong An <redacted>

This patch adds control packets(open, close, command, event) count to
analyze command.
---
 monitor/analyze.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
diff --git a/monitor/analyze.c b/monitor/analyze.c
index 784f9a0a4..022761c21 100644
--- a/monitor/analyze.c
+++ b/monitor/analyze.c
@@ -37,6 +37,10 @@ struct hci_dev {
 	unsigned long vendor_diag;
 	unsigned long system_note;
 	unsigned long user_log;
+	unsigned long ctrl_open;
+	unsigned long ctrl_close;
+	unsigned long ctrl_cmd;
+	unsigned long ctrl_evt;
 	unsigned long unknown;
 	uint16_t manufacturer;
 };
@@ -76,6 +80,10 @@ static void dev_destroy(void *data)
 	printf("  %lu vendor diagnostics\n", dev->vendor_diag);
 	printf("  %lu system notes\n", dev->system_note);
 	printf("  %lu user logs\n", dev->user_log);
+	printf("  %lu control open\n", dev->ctrl_open);
+	printf("  %lu control close\n", dev->ctrl_close);
+	printf("  %lu control commands\n", dev->ctrl_cmd);
+	printf("  %lu control events\n", dev->ctrl_evt);
 	printf("  %lu unknown opcodes\n", dev->unknown);
 	printf("\n");
 
@@ -299,6 +307,54 @@ static void user_log(struct timeval *tv, uint16_t index,
 	dev->user_log++;
 }
 
+static void ctrl_open(struct timeval *tv, uint16_t index,
+					const void *data, uint16_t size)
+{
+	struct hci_dev *dev;
+
+	dev = dev_lookup(index);
+	if (!dev)
+		return;
+
+	dev->ctrl_open++;
+}
+
+static void ctrl_close(struct timeval *tv, uint16_t index,
+					const void *data, uint16_t size)
+{
+	struct hci_dev *dev;
+
+	dev = dev_lookup(index);
+	if (!dev)
+		return;
+
+	dev->ctrl_close++;
+}
+
+static void ctrl_cmd(struct timeval *tv, uint16_t index,
+					const void *data, uint16_t size)
+{
+	struct hci_dev *dev;
+
+	dev = dev_lookup(index);
+	if (!dev)
+		return;
+
+	dev->ctrl_cmd++;
+}
+
+static void ctrl_evt(struct timeval *tv, uint16_t index,
+					const void *data, uint16_t size)
+{
+	struct hci_dev *dev;
+
+	dev = dev_lookup(index);
+	if (!dev)
+		return;
+
+	dev->ctrl_evt++;
+}
+
 static void unknown_opcode(struct timeval *tv, uint16_t index,
 					const void *data, uint16_t size)
 {
@@ -380,6 +436,18 @@ void analyze_trace(const char *path)
 		case BTSNOOP_OPCODE_USER_LOGGING:
 			user_log(&tv, index, buf, pktlen);
 			break;
+		case BTSNOOP_OPCODE_CTRL_OPEN:
+			ctrl_open(&tv, index, buf, pktlen);
+			break;
+		case BTSNOOP_OPCODE_CTRL_CLOSE:
+			ctrl_close(&tv, index, buf, pktlen);
+			break;
+		case BTSNOOP_OPCODE_CTRL_COMMAND:
+			ctrl_cmd(&tv, index, buf, pktlen);
+			break;
+		case BTSNOOP_OPCODE_CTRL_EVENT:
+			ctrl_evt(&tv, index, buf, pktlen);
+			break;
 		default:
 			fprintf(stderr, "Unknown opcode %u\n", opcode);
 			unknown_opcode(&tv, index, buf, pktlen);
-- 
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help