Ethereal-dev: RE: [Ethereal-dev] non-ethernet use of ethereal
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Ray Rizzuto" <Ray_Rizzuto@xxxxxxx>
Date: Tue, 14 Sep 2004 15:30:47 -0400
I'd like to use an existing file format, if possible. I have control of creating the output file from another application. Do you know where I can get documentation on the libpcap format to see if I can use that to contain non-ethernet data? The data I'm saving is similar to HDLC. The HDLC frames can either be supervisory frames, or data frames that encapsulate other protocol(s) already decoded by Ethereal. I think I understand the tasks for creating a disector for the hdlc frame and calling the existing disector for the payload of data frames. Thanks for your help. -----Original Message----- From: ethereal-dev-bounces@xxxxxxxxxxxx [mailto:ethereal-dev-bounces@xxxxxxxxxxxx] On Behalf Of Guy Harris Sent: Monday, September 13, 2004 2:23 PM To: Ethereal development Subject: Re: [Ethereal-dev] non-ethernet use of ethereal Ray Rizzuto wrote: > I would like to create a disector that will decode packets that have > NO ethernet or IP headers. My disector will decode a proprietary link > level, then make use of existing disectors to decode the payload. Is > this possible? Yes. We certainly support link layers other than Ethernet, and support protocols running atop Ethernet - or other link layers - other than IP. > Any hints on where to get started? For starters, you will have to be able to read some capture file format that encapsulates your packets. If you're not using an existing capture file format, you will have to add to Wiretap (the library Ethereal, Tethereal, etc. use to read and write capture files; it's in the "wiretap" subdirectory of the source) the ability to read that file format, if it's not a format it already reads. If your link-layer protocol is the lowest-layer protocol that will be in the capture file, you will need a WTAP_ENCAP value to "wiretap/wtap.h" for that type, and will need to have the code in Wiretap that reads your capture files recognize captures with your protocol and use that encapsulation type. Note that if this is going to be a private version of Ethereal not supplied outside your organization, you can use one of the WTAP_ENCAP_USER{N} types - they were added specifically for this purpose, i.e. private encapsulation types. If you'll be making your changes to Ethereal publicly available, you should add a new WTAP_ENCAP value, and send your changes to us to make them part of the standard Ethereal release. You will then make your dissector for your protocol register itself as the handler for that WTAP_ENCAP value with a call to "dissector_add()", using "wtap_encap" as the dissector table name and the WTAP_ENCAP value name as the value. See other calls to "dissector_add()" for examples. If your protocol *isn't* the lowest-layer protocol, you'd have to arrange that your dissector be called by the dissector for the protocol below it. How that'd be done depends on that dissector; it might be possible to have your dissector register itself as the handler for some value. Your dissector would then have to arrange to call dissectors for the protocol running atop it. We'd have to know how that'd be done - for example, if there's a "protocol type" value in your link-layer protocol, you might have to add a dissector table for that value and modify the other dissectors to register in your table, or, if the table has the same values as some other protocol's protocol type field (e.g., Ethernet types), you might be able to use that protocol's dissector table. _______________________________________________ Ethereal-dev mailing list Ethereal-dev@xxxxxxxxxxxx http://www.ethereal.com/mailman/listinfo/ethereal-dev
- Follow-Ups:
- RE: [Ethereal-dev] non-ethernet use of ethereal
- From: Guy Harris
- RE: [Ethereal-dev] non-ethernet use of ethereal
- Prev by Date: Re: [Ethereal-dev] Gtk-CRITICAL errors with dual display
- Next by Date: RE: [Ethereal-dev] non-ethernet use of ethereal
- Previous by thread: Re: [Ethereal-dev] non-ethernet use of ethereal
- Next by thread: RE: [Ethereal-dev] non-ethernet use of ethereal
- Index(es):