The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::Frame::Layer::ETH - Ethernet/802.3 layer object

SYNOPSIS

use Net::Frame::Layer::ETH qw(:consts);

# Build a layer
my $layer = Net::Frame::Layer::ETH->new(
   src  => '00:00:00:00:00:00',
   dst  => NF_ETH_ADDR_BROADCAST,
   type => NF_ETH_TYPE_IPv4,
);
$layer->pack;

print 'RAW: '.$layer->dump."\n";

# Read a raw layer
my $layer = Net::Frame::Layer::ETH->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 Ethernet/802.3 layer.

RFC: ftp://ftp.rfc-editor.org/in-notes/rfc894.txt

See also Net::Frame::Layer for other attributes and methods.

ATTRIBUTES

src
dst

Source and destination MAC addresses, in classical format (00:11:22:33:44:55).

type

The encapsulated layer type (IPv4, IPv6 ...) for Ethernet. Values for Ethernet types are greater than 1500. If it is less than 1500 the layer is considered a 802.3 one. See http://www.iana.org/assignments/ethernet-numbers .

length

The length of the payload when this layer is a 802.3 one. This is the same attribute as type, but you cannot use it when calling new (you can only use it as an accessor after that).

The following are inherited attributes. See Net::Frame::Layer for more information.

raw
payload
nextLayer

METHODS

new
new (hash)

Object constructor. You can pass attributes that will overwrite default ones. See SYNOPSIS for default values.

The following are inherited methods. Some of them may be overridden in this layer, and some others may not be meaningful in this layer. See Net::Frame::Layer for more information.

layer
computeLengths
computeChecksums
pack
unpack
encapsulate
getLength
getPayloadLength
print
dump

CONSTANTS

Load them: use Net::Frame::Layer::ETH qw(:consts);

NF_ETH_ADDR_BROADCAST

Ethernet broadcast address.

NF_ETH_TYPE_IPv4
NF_ETH_TYPE_X25
NF_ETH_TYPE_ARP
NF_ETH_TYPE_CGMP
NF_ETH_TYPE_80211
NF_ETH_TYPE_PPPIPCP
NF_ETH_TYPE_RARP
NF_ETH_TYPE_DDP
NF_ETH_TYPE_AARP
NF_ETH_TYPE_PPPCCP
NF_ETH_TYPE_WCP
NF_ETH_TYPE_8021Q
NF_ETH_TYPE_IPX
NF_ETH_TYPE_STP
NF_ETH_TYPE_IPv6
NF_ETH_TYPE_WLCCP
NF_ETH_TYPE_MPLS
NF_ETH_TYPE_PPPoED
NF_ETH_TYPE_PPPoES
NF_ETH_TYPE_8021X
NF_ETH_TYPE_AoE
NF_ETH_TYPE_80211I
NF_ETH_TYPE_LLDP
NF_ETH_TYPE_LLTD
NF_ETH_TYPE_LOOP
NF_ETH_TYPE_VLAN
NF_ETH_TYPE_PPPPAP
NF_ETH_TYPE_PPPCHAP

Various supported Ethernet types.

SEE ALSO

Net::Frame::Layer

AUTHOR

Patrice <GomoR> Auffret

COPYRIGHT AND LICENSE

Copyright (c) 2006-2019, Patrice <GomoR> Auffret

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