blob: ab4f98a74b15aed2dcdc4d07f66e60f188614411 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import os
from ..trex_stl_packet_builder_scapy import RawPcapReader, RawPcapWriter
def __ts_key (a):
return float(a[1][0]) + (float(a[1][1]) / 1e6)
def merge_cap_files (pcap_file_list, out_filename, delete_src = False):
if not all([os.path.exists(f) for f in pcap_file_list]):
print("failed to merge cap file list...\nnot all files exist\n")
return
out_pkts = []
for src in pcap_file_list:
pkts = RawPcapReader(src)
out_pkts += pkts
if delete_src:
os.unlink(src)
# sort by timestamp
out_pkts = sorted(out_pkts, key = __ts_key)
writer = RawPcapWriter(out_filename, linktype = 1)
writer._write_header(None)
for pkt in out_pkts:
writer._write_packet(pkt[0], sec=pkt[1][0], usec=pkt[1][1], caplen=pkt[1][2], wirelen=None)
|