Net::Packet::PPPoE(3)

NAME
Net::Packet::PPPoE - PPP-over-Ethernet layer 3 object

SYNOPSIS
   use Net::Packet::Consts qw(:pppoe);
   require Net::Packet::PPPoE;

   # Build a layer
   my $layer = Net::Packet::PPPoE->new(
      version       => 1,
      type          => 1,
      code          => 0,
      sessionId     => 1,
      payloadLength => 0,
      pppProtocol   => NP_PPPoE_PPP_PROTOCOL_IPv4,
   );
   $layer->pack;

   print 'RAW: '.unpack('H*', $layer->raw)."\n";

   # Read a raw layer
   my $layer = Net::Packet::PPPoE->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 PPP-over-Ethernet layer.

See also Net::Packet::Layer and Net::Packet::Layer3 for other attributes and methods.

ATTRIBUTES

version - 4 bits
code - 4 bits
type - 8 bits
sessionId - 16 bits
payloadLength - 16 bits
pppProtocol - 16 bits
    For this last attribute, we can note that it is included in the computation of payloadLength.

METHODS

new Object constructor. You can pass attributes that will overwrite default ones. Default values:

    version: 1

    type: 1

    code: 0

    sessionId: 1

    payloadLength: 0

    pppProtocol: NP_PPPoE_PPP_PROTOCOL_IPv4

pack
    Packs all attributes into a raw format, in order to inject to network. Returns 1 on success, undef otherwise.

unpack
    Unpacks raw data from network and stores attributes into the object. Returns 1 on success, undef otherwise.

CONSTANTS
Load them: use Net::Packet::Consts qw(:pppoe);

NP_PPPoE_HDR_LEN
    PPPoE header length.

NP_PPPoE_PPP_PROTOCOL_IPv4
NP_PPPoE_PPP_PROTOCOL_PPPLCP
    Various supported encapsulated PPP protocols.

AUTHOR
Patrice <GomoR> Auffret

COPYRIGHT AND LICENSE
Copyright (c) 2004-2009, Patrice <GomoR> Auffret

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

RELATED MODULES
NetPacket, Net::RawIP, Net::RawSock