From f05b6b18bb54c6c3e5b5b2c224ec0933c6005262 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 5 Apr 2012 19:47:45 +0300 Subject: [PATCH] Add script to convert wpa_supplicant debug output to pcap For debugging I needed to look at the frames in a wpa_supplicant debug log. Looking at the hexdump is a bit tedious, so I wrote a quick script to convert the nl80211 debugging output to a PCAP file that can be opened in wireshark. I've polished the initial raw script a bit to add error messages and to also record the timestamps to the pcap file. Hopefully it's useful to somebody else as well. Signed-off-by: Johannes Berg --- wpa_supplicant/utils/log2pcap.py | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 wpa_supplicant/utils/log2pcap.py diff --git a/wpa_supplicant/utils/log2pcap.py b/wpa_supplicant/utils/log2pcap.py new file mode 100755 index 000000000..65e2fa109 --- /dev/null +++ b/wpa_supplicant/utils/log2pcap.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# +# Copyright (c) 2012, Intel Corporation +# +# Author: Johannes Berg +# +# This software may be distributed under the terms of the BSD license. +# See README for more details. + +import sys, struct, re + +def write_pcap_header(pcap_file): + pcap_file.write( + struct.pack(' " % sys.argv[0] + sys.exit(2) + + input_file = open(input, 'r') + pcap_file = open(pcap, 'w') + frame_re = re.compile(r'(([0-9]+.[0-9]{6}):\s*)?nl80211: MLME event frame - hexdump\(len=[0-9]*\):((\s*[0-9a-fA-F]{2})*)') + + write_pcap_header(pcap_file) + + for line in input_file: + m = frame_re.match(line) + if m is None: + continue + if m.group(2): + ts = float(m.group(2)) + else: + ts = 0 + hexdata = m.group(3) + hexdata = hexdata.split() + data = ''.join([chr(int(x, 16)) for x in hexdata]) + pcap_addpacket(pcap_file, ts, data) + + input_file.close() + pcap_file.close()