From Scott Renfro: correctly handle merging multiple files with
[obnox/wireshark/wip.git] / doc / mergecap.pod
1
2 =head1 NAME
3
4 mergecap - Merges two capture files into one
5
6 =head1 SYNOPSYS
7
8 B<mergecap>
9 S<[ B<-hva> ]>
10 S<[ B<-s> I<snaplen> ]>
11 S<[ B<-F> I<file format> ]>
12 S<[ B<-T> I<encapsulation type> ]>
13 S<B<-w> I<outfile>>
14 I<infile>
15 I<...>
16
17 =head1 DESCRIPTION
18
19 B<Mergecap> is a program that combines multiple saved capture files into
20 a single output file specified by the B<-w> argument. B<Mergecap> knows
21 how to read B<libpcap> capture files, including those of B<tcpdump>.  In
22 addition, B<Mergecap> can read capture files from B<snoop> (including
23 B<Shomiti>) and B<atmsnoop>, B<LanAlyzer>, B<Sniffer> (compressed or
24 uncompressed), Microsoft B<Network Monitor>, AIX's B<iptrace>,
25 B<NetXray>, B<Sniffer Pro>, B<RADCOM>'s WAN/LAN analyzer,
26 B<Lucent/Ascend> router debug output, HP-UX's B<nettl>, and the dump
27 output from B<Toshiba's> ISDN routers.  There is no need to tell
28 B<Mergecap> what type of file you are reading; it will determine the
29 file type by itself.  B<Mergecap> is also capable of reading any of
30 these file formats if they are compressed using gzip.  B<Mergecap>
31 recognizes this directly from the file; the '.gz' extension is not
32 required for this purpose.
33
34 By default, it writes the capture file in B<libpcap> format, and writes
35 all of the packets in both input capture files to the output file.  The
36 B<-F> flag can be used to specify the format in which to write the
37 capture file; it can write the file in B<libpcap> format (standard
38 B<libpcap> format, a modified format used by some patched versions of
39 B<libpcap>, the format used by Red Hat Linux 6.1, or the format used by
40 SuSE Linux 6.3), B<snoop> format, uncompressed B<Sniffer> format,
41 Microsoft B<Network Monitor> 1.x format, and the format used by
42 Windows-based versions of the B<Sniffer> software.
43
44 Packets from the input files are merged in chronological order based on
45 each frame's timestamp, unless the B<-a> flag is specified.  B<Mergecap>
46 assumes that frames within a single capture file are already stored in
47 chronological order.  When the B<-a> flag is specified, packets are
48 copied directly from each input file to the output file, independent of
49 each frame's timestamp.
50
51 If the B<-s> flag is used to specify a snapshot length, frames in the
52 input file with more captured data than the specified snapshot length
53 will have only the amount of data specified by the snapshot length
54 written to the output file.  This may be useful if the program that is
55 to read the output file cannot handle packets larger than a certain size
56 (for example, the versions of snoop in Solaris 2.5.1 and Solaris 2.6
57 appear to reject Ethernet frames larger than the standard Ethernet MTU,
58 making them incapable of handling gigabit Ethernet captures if jumbo
59 frames were used).
60
61 The output file frame encapsulation type is set to the type of the input
62 files, if all input files have the same type.  If not all of the input
63 files have the same frame encapsulation type, the output file type is
64 set to WTAP_ENCAP_PER_PACKET.  Note that some capture file formats, most
65 notably B<libpcap>, do not currently support WTAP_ENCAP_PER_PACKET.
66 This combination will cause the output file creation to fail.
67
68 If the B<-T> flag is used to specify a frame encapsulation type, the
69 encapsulation type of the output capture file will be forced to the
70 specified type, rather than being the type appropriate to the
71 encapsulation type of the input capture files.  Note that this merely
72 forces the encapsulation type of the output file to be the specified
73 type; the packet headers of the packets will not be translated from the
74 encapsulation type of the input capture file to the specified
75 encapsulation type (for example, it will not translate an Ethernet
76 capture to an FDDI capture if an Ethernet capture is read and 'B<-T
77 fddi>' is specified).
78
79 =head1 OPTIONS
80
81 =over 4
82
83 =item -w
84
85 Sets the output filename.
86
87 =item -F
88
89 Sets the file format of the output capture file.
90
91 =item -T
92
93 Sets the packet encapsulation type of the output capture file.
94
95 =item -a
96
97 Causes the frame timestamps to be ignored, writing all packets from the
98 first input file followed by all packets from the second input file.  By
99 default, when B<-a> is not specified, the contents of the input files
100 are merged in chronological order based on each frame's timestamp.
101 Note: when merging, B<mergecap> assumes that packets within a capture
102 file are already in chronological order.
103
104 =item -v
105
106 Causes B<mergecap> to print a number of messages while it's working.
107
108 =item -s
109
110 Sets the snapshot length to use when writing the data.
111
112 =item -h
113
114 Prints the version and options and exits.
115
116 =head1 SEE ALSO
117
118 L<tcpdump(8)>, L<pcap(3)>, L<ethereal(1)>, L<editcap(1)>
119
120 =head1 NOTES
121
122 B<Mergecap> is based heavily upon B<editcap> by Richard Sharpe
123 <sharpe@ns.aus.com> and Guy Harris <guy@alum.mit.edu>.
124
125 B<Mergecap> is part of the B<Ethereal> distribution.  The latest version
126 of B<Ethereal> can be found at B<http://www.ethereal.com>.
127
128 =head1 AUTHORS
129
130   Original Author
131   -------- ------
132   Scott Renfro             <scott@renfro.org>
133
134
135   Contributors
136   ------------