tcpdump mailing list archives
Re: where to get libpcap-ng?
From: alexander medvedev <alexm () pycckue org>
Date: Tue, 10 Jan 2006 10:40:29 -0600 (CST)
Hi, i am trying to figure out how seriously one should consider the new format and the extra useful information it supplies to the user. here is my understanding of the current state of pcap-ng. please, correct me, if i am wrong: - the format for pcap-ng is somewhat finalized and has not changed since March 2004 (almost 2 years); - there exists an implementation of pcap-ng called NTAR project, but that implementation is not quite complete (?); - pcap-ng will eventually be a part of the current libpcap,i.e. libpcap will be able to read both formats: current pcap and pcap-ng; NTAR will possibly be a back-end for libpcap's API to hide details; - there are no dates when pcap-ng functionality will be included in the current libpcap. thanks, -alexm 10:38 10/01/2006 On Tue, 10 Jan 2006, Guy Harris wrote:
Gianluca Varenni wrote:----- Original Message ----- From: "Guy Harris" <guy () alum mit edu> To: <tcpdump-workers () lists tcpdump org> Sent: Monday, January 09, 2006 12:09 PM Subject: Re: [tcpdump-workers] where to get libpcap-ng?...At least as I understand it, it's an implementation of *part* of that standard - it handles the general structure of pcap-ng files (the "general block structure"), but doesn't interpret anything in the blocks that's not part of the general structure.Uhm, it dependes on what you mean by "general structure".I mean "I don't see any APIs in NTAR that deal with specific types of blocks; I just see APIs that deal with blocks in general".I agree with you of having some basic support in libpcap to read and write pcap-ng files using the existing libpcap APIs. Instead, does it make sense to add new APIs on top of NTAR to support all the features exported by it? Whenever I think about this problem, I'm always struggling between two visions: - on one side, NTAR exports (or better, will exports) all the features of pcap-ng, so it gives you complete control over the file format.At least from the online documentation, it "exports" them in the sense that you can read or write any type of block (including ones that don't exist in the pcap-ng specification).Adding a libpcap layer on top of it means that every new feature in NTAR may need a corresponding new API in libpcap.What sort of new features are you thinking of? New block types? Or something else?This actually depends on how the new libpcap APIs are defined, they could be general enough to easily fit future enhancements of NTAR (or pcap-ng).At least some features of NTAR correspond to APIs for capturing (e.g., "capturing packets" corresponds to the Packet Block, "enumerating interfaces" corresponds to the Interface Description Block, "getting capture statistics" corresponds to the Interface Statistics Block), so, at minimum, I don't see a problem with libpcap having routines to write the data fetched by those operations, rather than requiring the application to create the block and put some of the information into it with ntar_create_block(), add the rest of the information to the block with ntar_add_block_option() calls, and then close the block with ntar_close_block() when it's done - that code would be done the same for all libpcap applications, so it could go into libpcap. In addition, as there'd already by data structures supplied by those capture APIs, routines to process particular types of blocks and fill in those structures would also be useful. There'd probably be an API to get the next record, which would just call ntar_get_next_block(), ntar_get_block_type(), and ntar_get_block_data() when reading pcap-ng files (and fake those values when reading regular libpcap files, claiming that it has a Packet Block), and APIs to convert the fixed data and options for a particular block into the data structure corresponding to that block. For all other block types, the application would have to process the fixed data and options itself, with ntar_get_block_options(). - This is the tcpdump-workers list. Visit https://lists.sandelman.ca/ to unsubscribe.
- This is the tcpdump-workers list. Visit https://lists.sandelman.ca/ to unsubscribe.
Current thread:
- where to get libpcap-ng? alexander medvedev (Jan 10)
- Re: where to get libpcap-ng? Gianluca Varenni (Jan 10)
- Re: where to get libpcap-ng? alexander medvedev (Jan 10)
- Re: where to get libpcap-ng? Guy Harris (Jan 10)
- Re: where to get libpcap-ng? Gianluca Varenni (Jan 10)
- Re: where to get libpcap-ng? Guy Harris (Jan 10)
- Re: where to get libpcap-ng? alexander medvedev (Jan 10)
- Re: where to get libpcap-ng? Gianluca Varenni (Jan 11)
- Re: where to get libpcap-ng? alexander medvedev (Jan 10)
- Re: where to get libpcap-ng? Gianluca Varenni (Jan 10)
- Re: where to get libpcap-ng? Michael Richardson (Jan 11)
- Re: where to get libpcap-ng? Gianluca Varenni (Jan 11)
- Re: where to get libpcap-ng? Michael Richardson (Jan 12)