I (Chander Ganesan) have enhanced NetPacket::Ethernet to allow for encoding/decoding of 802.3 packets (which was not originally working, though mentioned in the README), and as a result am re-releasing the NetPacket package with a new version (0.04). I would pass this on to Tim Potter, but have as yet been unable to reach him at his samba.org address. This version includes all the features and functionality listed below, in addition to the following: Decoding/encoding protocol support for: - LLC (Logical Link Control) - Spanning Tree (802.1D) and Rapid Spanning Tree (802.1w) - LACP decoding is present, but not complete (yet). For the LLC, ST, and LACP modules the following copyright notice applies: Copyright (c) 2002 Chander Ganesan. This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html) This software and all associated data and documentation ('Software') is available free of charge. You may make copies of the Software but you must include all of this notice on any copy. The Software was developed for research purposes does not warrant that it is error free or fit for any purpose. The author disclaims any liability for all claims, expenses, losses, damages and costs any user may incur as a result of using, copying or modifying the Software. Below is Tim Potters original readme file. --- This README file is in -*- text -*- mode, because Emacs likes it that way. This is the second release, actually numbered 0.03, of a whole bunch of Perl modules which I have named NetPacket::*. These modules do basic disassembly of network packets of various Internet protocols. NetPacket 0.01 contained hooks for assembly of packets which have been implemented in this version by Stephanie Wehner . I've used these scripts for a variety of little jobs such as snooping various TCP services, gathering network traffic statistics by source/destination/protocol, and for unpacking the contents of IP tunnels. They're actually pretty useful. I recommend fetching and installing the Net::Pcap module to actually gather packet data, and for writing small scripts based on packet capture, the Net::PcapUtils module is also useful. At present, decoding for the following protocols has been implemented. - Ethernet (802.3 and 802.2) - ARP - ICMP - IGMP - IP - UDP - TCP It's pretty easy to add new protocols. Just copy one of the existing modules and figure out an unpack string which will unpack the information in the packet and store the data into fields in the namespace of the NetPacket::whatever object. More information can be found in the NetPacket(3) manpage, which is the base class module. I'd be interested in receiving bug reports, comments or any improvements (especially additional protocols) to the NetPacket modules. Tim Potter 30th July, 2001 tpot@samba.org