diff --git a/monitor/analyze.c b/monitor/analyze.c
index 94f0c57..da0e851 100644
--- a/monitor/analyze.c
+++ b/monitor/analyze.c
unsigned long vendor_diag;
unsigned long system_note;
unsigned long user_log;
+ unsigned long unknown;
uint16_t manufacturer;
};
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 unknown opcodes\n", dev->unknown);
printf("\n");
free(dev);
dev->user_log++;
}
+static void unknown_opcode(struct timeval *tv, uint16_t index,
+ const void *data, uint16_t size)
+{
+ struct hci_dev *dev;
+
+ dev = dev_lookup(index);
+ if (!dev)
+ return;
+
+ dev->unknown++;
+}
+
void analyze_trace(const char *path)
{
struct btsnoop *btsnoop_file;
user_log(&tv, index, buf, pktlen);
break;
default:
- fprintf(stderr, "Wrong opcode %u\n", opcode);
- goto done;
+ fprintf(stderr, "Unknown opcode %u\n", opcode);
+ unknown_opcode(&tv, index, buf, pktlen);
+ break;
}
num_packets++;