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