---
name: "Net::Frame::Layer::IPv6::Routing"
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::Routing"
---

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

Internet Protocol v6 Routing Extension Header layer object

## NAME

Net::Frame::Layer::IPv6::Routing - Internet Protocol v6 Routing Extension Header layer object

## SYNOPSIS

```
   use Net::Frame::Simple;
   use Net::Frame::Layer::IPv6::Routing;
   my $icmp = Net::Frame::Layer::IPv6::Routing->new(
      nextHeader   => NF_IPv6_PROTOCOL_TCP
      hdrExtLen    => 2
      routingType  => 0,
      segmentsLeft => 1,
      reserved     => 0,
      addresses    => ['::1']
   );
   #
   # Read a raw layer
   #
   my $layer = Net::Frame::Layer::IPv6::Routing->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 Routing Extension Header layer.

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

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

## ATTRIBUTES

- **nextHeader**

  Protocol number of the next header after the Routing header.

- **hdrExtLen**

  The length of the Routing header in 8-byte units, not including the first 8 bytes of the header. For a Routing Type of 0, this value is thus two times the number addresses embedded in the header.

- **routingType**

  This field allows multiple routing types to be defined; at present, the only value used is 0.

- **segmentsLeft**

  Specifies the number of explicitly-named nodes remaining in the route until the destination.

- **reserved**

  Not used; set to zeroes.

- **addresses**

  A set of IPv6 addresses that specify the route to be used.

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

  Computes **hdrExtLen** and **segmentsLeft** based on number of **addresses**.

- **computeSegmentsLeft** (0 \| 1)

  Disable (0) or enable (1) automatic computing of **segmentsLeft** by the **computeLengths** method.  Default is enabled.

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

No constants here.

## SEE ALSO

Net::Frame::Layer

## AUTHOR

Michael Vincent

## COPYRIGHT AND LICENSE

Copyright (c) 2012-2017, Michael Vincent

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