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