NetPacket::LLC man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

LLC(3)		      User Contributed Perl Documentation		LLC(3)

NAME
       "NetPacket::LLC" - Assemble and disassemble IEEE 802.3 LLC protocol
       packets.

SYNOPSIS
	use NetPacket::LLC;
	use NetPacket::SpanningTree;

	$llc_data = NetPacket::Ethernet->strip($raw_packet);
	$st_data = NetPacket::LLC->strip($llc_data);
	$st_obj = NetPacket::SpanningTree->decode($st_data);

DESCRIPTION
       "NetPacket::LLC" provides a set of routines for assembling and
       disassembling packets using the IEEE standard LLC protocol layer.

   Methods
       "NetPacket::LLC->decode([ST DATA])"
	   Decode the LLC packet data and return an object containing instance
	   data.  This method will probably decode garbage input, but it won't
	   mean much.

       "NetPacket::SpanningTree->encode($st_hash)"
	   Encode the hash into a raw data stream that may be appended to
	   ethernet packet data.  This allows the user to create his/her own
	   LLC protocol packet and subsequently send it out on the wire
	   (though sending on the wire isn't a function of this module).

   Functions
       "NetPacket::LLC->strip([LLC DATA])"
	   Strip the LLC data from the packet, and return any underlying data.

   Instance data
       The instance data contains in the hash returned by the encode and
       decode methodsof the "NetPacket::LLC" module contain the following
       fields.	Note, please refer to the IEEE spec for a description of these
       fields.	They are not described in detail here unless relevant to
       encoding.

       max_age
       message_age
       bpdu_flags
       bridge_id

   Exports
       exportable
	   llc_strip

       tags
	   The following tags group together related exportable items.

	   ":strip"
	       Import the strip function "st_strip"

	   ":ALL"
	       All the above exportable items

EXAMPLE
       The following is a script that listens on device "eth1" for spanning
       tree packets.  It then decodes the packets, re-encodes them, and
       verifies that the both the original and re-encoded data are identical.
       It uses tLLC module to decode the LLC layer.

       #!/usr/bin/perl -w # # Perl script to verify that Spanning Tree packet
       intervals are correct # # #

       use strict; use Net::PcapUtils; use NetPacket::Ethernet; use
       NetPacket::LLC; use NetPacket::SpanningTree;

       {
	   my $iface = "eth1";
	   my $errmsg = Net::PcapUtils::loop(\&process_pkt,
					     DEV => $iface );
	   if (defined $errmsg) { die "$errmsg\n"; } }

       sub process_pkt {
	   my ($arg, $hdr, $pkt)  = @_;
	   my $eth_obj = NetPacket::Ethernet->decode($pkt);

	   if ((defined $eth_obj->{length}) &&
	       ($eth_obj->{dest_mac} =~ m/^0180c200000/)) { # Spanning Tree protocol
	       my $llc_obj = NetPacket::LLC->decode($eth_obj->{data});
	       my $st_obj = NetPacket::SpanningTree->decode($llc_obj->{data});
	       verifyEncoding($st_obj);

	       my $newdata = NetPacket::SpanningTree->encode($st_obj);
	       return;
	   }
	}

       # # Decode a packet and compare it to a hash of data to be encoded.  #
       # Input is a hash of data to be encoded.	 The subroutine encodes and #
       subsequently decodes the data and verifies the data matches.  #

       sub verifyEncoding {
	   my ($st_obj) = @_;
	   my $newdata =
	       NetPacket::SpanningTree->encode($st_obj);
	   my $st_obj1 =
	       NetPacket::SpanningTree->decode($newdata);
	   foreach my $key (keys %$st_obj) {
	       if ($key =~ m/data/i) { next; }
	       if ($key =~ m/frame/i) { next; }
	       if ($key =~ m/_parent/i) { next; }
	       if ($st_obj->{$key} eq $st_obj1->{$key}) {
		   print "$key is identical ($st_obj1->{$key})\n";
	       } else {
		   print
		       "$key is $st_obj->{$key} before $st_obj1->{$key}
       after\n";
	       }
	   }
	}

TODO
       Better documentation
       Clean up some code.

SEE ALSO
       "NetPacket::LLC"
	       Module to decode LLC packets (Logical Link Control)

       "NetPacket::Ethernet"
	       Module to decode Ethernet Packets

       "Net::RawIP"
	       Module to send encoded data out.

       "Net::PcapUtils"
	       Utility module to be used for packet capture.

COPYRIGHT
       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.

AUTHOR
       Chander Ganesan <cganesan@cpan.org<gt>

perl v5.14.0			  2003-01-29				LLC(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net