On Apr 5, 2011, at 11:41 AM, Darren Reed wrote:

> My reading of your list of tradeoffs is that even for pcap-NG, LINKTYPE_TEXT 
> is required as it has no other way to record text (no comment fields, for 
> example, attached to packet blocks.)

Actually, yes, it does - just about every block can have options attached to 
it, including Enhanced Packet Blocks:

        http://www.winpcap.org/ntar/draft/PCAP-DumpFileFormat.html#sectionepb

(but not Simple Packet Blocks, but those don't even have timestamps, so they 
can't be used if your goal is to have a superset of pcap format's 
capabilities), and one of the options supported by all blocks that allow 
options is the Comment option:

        http://www.winpcap.org/ntar/draft/PCAP-DumpFileFormat.html#sectionopt

which allows you to attach a UTF-8 string to the block.

> The handling of the presence of LINKTYPE_TEXT will be the same for any other 
> link type that is unknown to the tools that encounter it, so there's nothing 
> new or special about that.

Nothing special, but tcpdump's handling of link types it doesn't understand is 
to reject the entire file - and LINKTYPE_PPI is one of the link types it 
doesn't understand, and I suspect that few if any other programs that read pcap 
files handle more types than tcpdump.  A Google Code search for DLT_PPI didn't 
find anything, and a search for LINKTYPE_PPI found LINKTYPE_PPI_HDR in 
aircrack-ng, but the code appears to assume that *every* packet in a 
LINKTYPE_PPI file is an 802.11 packet preceded by a PPI header, without even 
looking at the LINKTYPE_ value in the PPI header; there's a comment referring 
to Kismet, so it might be able to read and write PPI, but it might also just be 
using it as an 802.11 metadata header rather than as a "meta-packet" header.

> For that matter, it may be worthwhile improving the failure modes of tcpdump, 
> if only in dealing with LINKTYPE_PPI.

There's not much you can do about the failure mode for handling an unknown 
link-layer header type; the only way to improve tcpdump's handling of 
LINKTYPE_PPI would be to add support for decoding and printing it, which might 
be a good idea, but note that you're not going to have much success with using 
filters on those files without the significant - and a bit ugly - changes to 
the way filtering is done.

> So I'll ask, does anyone think that LINKTYPE_TEXT should not be added?

I think it should only be added if the goal is to quickly get something that 
Wireshark can sort-of handle and nobody cares whether any other tools will be 
able to read the files that have comments any time soon (and if I don't have to 
do any of the work, as, if I'm going to work on comment support in capture 
files, I'd rather work on adding a new API to libpcap that can let applications 
get the entire contents of all block types in a pcap-NG file and modifying 
tcpdump to use it if available).  Otherwise, I'd vote for adding support for 
comments to Wireshark, adding the new APIs to libpcap, and modifying tcpdump to 
use them if available, complete with either always printing the comments or 
having an option to request the comments (although *that* change means we might 
want to consider another change, namely converting tcpdump to use getopt_long() 
- 1973 called, it wants its command-line flag conventions back).-
This is the tcpdump-workers list.
Visit https://cod.sandelman.ca/ to unsubscribe.

Reply via email to