add a simple pcap file writer
diff --git a/src/python/oftest/pcap_writer.py b/src/python/oftest/pcap_writer.py
new file mode 100644
index 0000000..33918c0
--- /dev/null
+++ b/src/python/oftest/pcap_writer.py
@@ -0,0 +1,43 @@
+"""
+Pcap file writer
+"""
+
+import struct
+
+PcapHeader = struct.Struct("<LHHLLLL")
+PcapPktHeader = struct.Struct("<LLLL")
+
+class PcapWriter(object):
+ def __init__(self, filename):
+ """
+ Open a pcap file
+ """
+ self.stream = file(filename, 'w')
+
+ self.stream.write(PcapHeader.pack(
+ 0xa1b2c3d4, # magic
+ 2, # major
+ 4, # minor
+ 0, # timezone offset
+ 0, # timezone accuracy
+ 65535, # snapshot length
+ 1 # ethernet linktype
+ ))
+
+ def write(self, data, timestamp):
+ """
+ Write a packet to a pcap file
+
+ 'data' should be a string containing the packet data.
+ 'timestamp' should be a float.
+ """
+ self.stream.write(PcapPktHeader.pack(
+ int(timestamp), # timestamp seconds
+ int((timestamp - int(timestamp)) * 10**6), # timestamp microseconds
+ len(data), # truncated length
+ len(data) # un-truncated length
+ ))
+ self.stream.write(data)
+
+ def close(self):
+ self.stream.close()