---
name: "Net::Frame::Layer::ETH"
section: "3pm"
platform: "linux"
package: "libnet-frame-perl"
version: "1.21-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::Frame::Layer::ETH"
---

# Net::Frame::Layer::ETH(3pm)

Ethernet/802.3 layer object

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