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

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

Internet Protocol v6 layer object

## NAME

Net::Frame::Layer::IPv6 - Internet Protocol v6 layer object

## SYNOPSIS

```
   use Net::Frame::Layer::IPv6 qw(:consts);
   # Build a layer
   my $layer = Net::Frame::Layer::IPv6->new(
      version       => 6,
      trafficClass  => 0,
      flowLabel     => 0,
      nextHeader    => NF_IPv6_PROTOCOL_TCP,
      hopLimit      => 0xff,
      src           => '::1',
      dst           => '::1',
      payloadLength => 0,
   );
   $layer->pack;
   print 'RAW: '.$layer->dump."\n";
   # Read a raw layer
   my $layer = Net::Frame::Layer::IPv6->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 IPv6 layer.

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

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

## ATTRIBUTES

- **version** - 4 bits

  Version of Internet Protocol header.

- **trafficClass** - 8 bits

  Traffic class field. Was Type of Service in IPv4.

- **flowLabel** - 20 bits

  Flow label class field. Was IP ID in IPv4.

- **nextHeader** - 8 bits

  The type of next header. Was protocol in IPv4.

- **protocol**

  Is an alias for **nextHeader**.

- **payloadLength** - 16 bits

  Length in bytes of encapsulated layers (usually, that is layer 4 + layer 7).

- **hopLimit** - 8 bits

  Was TTL field in IPv4.

- **src** - 32 bits

  - **dst** - 32 bits

  Source and destination addresses.

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.

- **computeLengths** ({ payloadLength =\> VALUE })

  In order to compute lengths attributes within IPv6 header, you need to pass via a hashref the number of bytes contained in IPv6 payload (that is, the sum of all layers after the IPv6 one).

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

  - **pack**

  - **unpack**

  - **encapsulate**

  - **getLength**

  - **print**

  - **dump**

  ## CONSTANTS

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

- **NF\_IPv6\_PROTOCOL\_ICMPv4**

  - **NF\_IPv6\_PROTOCOL\_IGMP**

  - **NF\_IPv6\_PROTOCOL\_IPIP**

  - **NF\_IPv6\_PROTOCOL\_TCP**

  - **NF\_IPv6\_PROTOCOL\_EGP**

  - **NF\_IPv6\_PROTOCOL\_IGRP**

  - **NF\_IPv6\_PROTOCOL\_CHAOS**

  - **NF\_IPv6\_PROTOCOL\_UDP**

  - **NF\_IPv6\_PROTOCOL\_IDP**

  - **NF\_IPv6\_PROTOCOL\_DCCP**

  - **NF\_IPv6\_PROTOCOL\_IPv6**

  - **NF\_IPv6\_PROTOCOL\_IPv6ROUTING**

  - **NF\_IPv6\_PROTOCOL\_IPv6FRAGMENT**

  - **NF\_IPv6\_PROTOCOL\_IDRP**

  - **NF\_IPv6\_PROTOCOL\_RSVP**

  - **NF\_IPv6\_PROTOCOL\_GRE**

  - **NF\_IPv6\_PROTOCOL\_ESP**

  - **NF\_IPv6\_PROTOCOL\_AH**

  - **NF\_IPv6\_PROTOCOL\_ICMPv6**

  - **NF\_IPv6\_PROTOCOL\_EIGRP**

  - **NF\_IPv6\_PROTOCOL\_OSPF**

  - **NF\_IPv6\_PROTOCOL\_ETHERIP**

  - **NF\_IPv6\_PROTOCOL\_PIM**

  - **NF\_IPv6\_PROTOCOL\_VRRP**

  - **NF\_IPv6\_PROTOCOL\_STP**

  - **NF\_IPv6\_PROTOCOL\_SCTP**

  - **NF\_IPv6\_PROTOCOL\_UDPLITE**

  - **NF\_IPv6\_PROTOCOL\_IPv6HOPBYHOP**

  - **NF\_IPv6\_PROTOCOL\_GGP**

  - **NF\_IPv6\_PROTOCOL\_ST**

  - **NF\_IPv6\_PROTOCOL\_CBT**

  - **NF\_IPv6\_PROTOCOL\_PUP**

  - **NF\_IPv6\_PROTOCOL\_ARGUS**

  - **NF\_IPv6\_PROTOCOL\_EMCON**

  - **NF\_IPv6\_PROTOCOL\_XNET**

  - **NF\_IPv6\_PROTOCOL\_MUX**

  - **NF\_IPv6\_PROTOCOL\_DCNMEAS**

  - **NF\_IPv6\_PROTOCOL\_HMP**

  - **NF\_IPv6\_PROTOCOL\_PRM**

  - **NF\_IPv6\_PROTOCOL\_TRUNK1**

  - **NF\_IPv6\_PROTOCOL\_TRUNK2**

  - **NF\_IPv6\_PROTOCOL\_LEAF1**

  - **NF\_IPv6\_PROTOCOL\_LEAF2**

  - **NF\_IPv6\_PROTOCOL\_3PC**

  - **NF\_IPv6\_PROTOCOL\_IDPR**

  - **NF\_IPv6\_PROTOCOL\_XTP**

  - **NF\_IPv6\_PROTOCOL\_DDP**

  - **NF\_IPv6\_PROTOCOL\_IDPRCMTP**

  - **NF\_IPv6\_PROTOCOL\_TPPLUSPLUS**

  - **NF\_IPv6\_PROTOCOL\_IL**

  - **NF\_IPv6\_PROTOCOL\_SDRP**

  - **NF\_IPv6\_PROTOCOL\_IPv6NONEXT**

  - **NF\_IPv6\_PROTOCOL\_IPv6DESTINATION**

  - **NF\_IPv6\_PROTOCOL\_IPv6MOBILITY**

  Constants for **nextHeader** attribute.

## SEE ALSO

Net::Frame::Layer

## AUTHOR

Patrice \<GomoR\> Auffret

## COPYRIGHT AND LICENSE

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

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