The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::Packet::SLL - Linux cooked capture layer 2 object

SYNOPSIS

   #
   # Usually, you do not use this module directly
   #
   use Net::Packet::Consts qw(:sll);
   require Net::Packet::SLL;

   # Build a layer
   my $layer = Net::Packet::SLL->new;
   $layer->pack;

   print 'RAW: '.unpack('H*', $layer->raw)."\n";

   # Read a raw layer
   my $layer = Net::Packet::SLL->new(raw => $raw);

   print $layer->print."\n";
   print 'PAYLOAD: '.unpack('H*', $layer->payload)."\n"
      if $layer->payload;

DESCRIPTION

This modules implements the encoding and decoding of the Linux cooked capture layer.

See also Net::Packet::Layer and Net::Packet::Layer2 for other attributes and methods.

ATTRIBUTES

packetType

Stores the packet type (unicast to us, sent by us ...).

addressType

The address type.

addressLength

The length of the previously specified address.

source

Source address.

protocol

Encapsulated protocol.

METHODS

new

Object constructor. You can pass attributes that will overwrite default ones. Default values:

packetType: NP_SLL_PACKET_TYPE_SENT_BY_US

addressType: NP_SLL_ADDRESS_TYPE_512

addressLength: 0

source: 0

protocol: NP_SLL_PROTOCOL_IPv4

pack

Packs all attributes into a raw format, in order to inject to network. Returns 1 on success, undef otherwise.

unpack

Unpacks raw data from network and stores attributes into the object. Returns 1 on success, undef otherwise.

isProtocolIpv4
isProtocolIpv6
isProtocolIp - is type IPv4 or IPv6

Helper methods. Return true is the encapsulated layer is of specified type, false otherwise.

CONSTANTS

Load them: use Net::Packet::Consts qw(:sll);

NP_SLL_PACKET_TYPE_SENT_BY_US
NP_SLL_PACKET_TYPE_UNICAST_TO_US

Various possible packet types.

NP_SLL_PROTOCOL_IPv4
NP_SLL_PROTOCOL_IPv6
NP_SLL_PROTOCOL_ARP
NP_SLL_PROTOCOL_VLAN

Various supported encapsulated layer types.

NP_SLL_HDR_LEN
NP_SLL_ADDRESS_TYPE_512

AUTHOR

Patrice <GomoR> Auffret

COPYRIGHT AND LICENSE

Copyright (c) 2004-2015, Patrice <GomoR> Auffret

You may distribute this module under the terms of the Artistic license. See LICENSE.Artistic file in the source distribution archive.

RELATED MODULES

NetPacket, Net::RawIP, Net::RawSock