Net::Packet::PPPoE.3pm

Langue: en

Version: 2006-11-23 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

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 (c) 2004-2006, Patrice <GomoR> Auffret

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

NetPacket, Net::RawIP, Net::RawSock