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-2014, Patrice <GomoR> Auffret

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