Net::Packet::Layer(3)

NAME
Net::Packet::Layer - base class for all layer modules

DESCRIPTION
This is the base class for Net::Packet::Layer2, Net::Packet::Layer3, Net::Packet::Layer4 and Net::Packet::Layer7 modules.

It just provides those layers with inheritable attributes and methods.

ATTRIBUTES

raw Stores the raw layer (as captured from the network, or packed to send to network).

payload
    Stores what is not part of the layer, that is the encapsulated part to be decoded by upper layers.

METHODS

is  Returns the string describing the layer type (example: 'IPv4').

layer
    Returns the string describing the layer number (example: 'L3' for IPv4).

encapsulate
    Returns the next layer type (parsed from payload). This is the same string as returned by is method.

computeLengths
computeChecksums
    Generally, when a layer is built, some attributes are not yet known until the full Net::Packet::Frame is assembled. Those methods computes various lengths and checksums attributes found in a specific layer. Return 1 on success, undef otherwise.

print
    Just returns a string in a human readable format describing attributes found in the layer.

dump
    Just returns a string in hexadecimal format which is how the layer appears on the network.

getKey
getKeyReverse
    These methods are used to respectively store and retrieve analyzed frames respectively to and from a hashref. This is to make it quick to get possible responses from a probe.

pack
    Will pack all attributes into raw network format. This method MUST be implemented into each supported layers.

unpack
    Will unpack raw network format to respective attributes. This method MUST be implemented into each supported layers.

getLength
    Returns the layer length in bytes.

getPayloadLength
    Returns the total length of remaining raw data in bytes (without calling layer length).

isLayer2
isLayer3
isLayer4
isLayer7
    Returns true if the calling object is, respectively, layer 2, 3, 4 or 7.

CONSTANTS
Load them: use Net::Packet::Consts qw(:layer);

NP_LAYER
    Base layer string.

NP_LAYER_ETH
NP_LAYER_NULL
NP_LAYER_RAW
NP_LAYER_SLL
    Layer 2 strings.

NP_LAYER_ARP
NP_LAYER_IPv4
NP_LAYER_IPv6
NP_LAYER_VLAN
NP_LAYER_PPPoE
NP_LAYER_PPP
NP_LAYER_LLC
    Layer 3 strings.

NP_LAYER_TCP
NP_LAYER_UDP
NP_LAYER_ICMPv4
NP_LAYER_PPPLCP
NP_LAYER_CDP
    Layer 4 strings.

NP_LAYER_7
    Layer 7 string.

NP_LAYER_NONE
NP_LAYER_UNKNOWN
    Other strings.

NP_LAYER_N_2
NP_LAYER_N_3
NP_LAYER_N_4
NP_LAYER_N_7
NP_LAYER_N_UNKNOWN
    Layer number N strings.

AUTHOR
Patrice <GomoR> Auffret

COPYRIGHT AND LICENSE
Copyright (c) 2004-2009, 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