#
# $Id: Consts.pm,v 1.2.2.11 2006/11/15 19:28:13 gomor Exp $
#
package Net::Packet::Consts;
use strict;
use warnings;
require Exporter;
our @ISA = qw(Exporter);
our %EXPORT_TAGS = (
desc => [qw(
NP_DESC_IPPROTO_IP
NP_DESC_IPPROTO_ICMPv4
NP_DESC_IPPROTO_TCP
NP_DESC_IPPROTO_UDP
NP_DESC_IPPROTO_IPv6
NP_DESC_IPPROTO_RAW
NP_DESC_IP_HDRINCL
NP_DESC_L2
NP_DESC_L3
NP_DESC_L4
)],
dump => [qw(
NP_DUMP_LINK_NULL
NP_DUMP_LINK_EN10MB
NP_DUMP_LINK_RAW
NP_DUMP_LINK_SLL
NP_DUMP_LINK_PPP
NP_DUMP_MODE_OFFLINE
NP_DUMP_MODE_ONLINE
NP_DUMP_MODE_WRITER
)],
layer => [qw(
NP_LAYER
NP_LAYER_ETH
NP_LAYER_NULL
NP_LAYER_RAW
NP_LAYER_SLL
NP_LAYER_ARP
NP_LAYER_IPv4
NP_LAYER_IPv6
NP_LAYER_VLAN
NP_LAYER_TCP
NP_LAYER_UDP
NP_LAYER_ICMPv4
NP_LAYER_7
NP_LAYER_NONE
NP_LAYER_UNKNOWN
NP_LAYER_PPPoE
NP_LAYER_PPP
NP_LAYER_LLC
NP_LAYER_PPPLCP
NP_LAYER_CDP
NP_LAYER_STP
NP_LAYER_OSPF
NP_LAYER_IGMPv4
NP_LAYER_N_2
NP_LAYER_N_3
NP_LAYER_N_4
NP_LAYER_N_7
NP_LAYER_N_UNKNOWN
)],
eth => [qw(
NP_ETH_HDR_LEN
NP_ETH_ADDR_BROADCAST
NP_ETH_TYPE_IPv4
NP_ETH_TYPE_IPv6
NP_ETH_TYPE_VLAN
NP_ETH_TYPE_ARP
NP_ETH_TYPE_PPPoE
)],
null => [qw(
NP_NULL_HDR_LEN
NP_NULL_TYPE_IPv4
NP_NULL_TYPE_IPv6
)],
sll => [qw(
NP_SLL_HDR_LEN
NP_SLL_PACKET_TYPE_SENT_BY_US
NP_SLL_PACKET_TYPE_UNICAST_TO_US
NP_SLL_ADDRESS_TYPE_512
NP_SLL_PROTOCOL_IPv4
NP_SLL_PROTOCOL_IPv6
NP_SLL_PROTOCOL_ARP
NP_SLL_PROTOCOL_VLAN
)],
vlan => [qw(
NP_VLAN_HDR_LEN
NP_VLAN_TYPE_ARP
NP_VLAN_TYPE_IPv4
NP_VLAN_TYPE_IPv6
NP_VLAN_TYPE_VLAN
)],
arp => [qw(
NP_ARP_HDR_LEN
NP_ARP_HTYPE_ETH
NP_ARP_PTYPE_IPv4
NP_ARP_HSIZE_ETH
NP_ARP_PSIZE_IPv4
NP_ARP_OPCODE_REQUEST
NP_ARP_OPCODE_REPLY
NP_ARP_ADDR_BROADCAST
)],
ipv4 => [qw(
NP_IPv4_HDR_LEN
NP_IPv4_V4
NP_IPv4_PROTOCOL_TCP
NP_IPv4_PROTOCOL_UDP
NP_IPv4_PROTOCOL_ICMPv4
NP_IPv4_PROTOCOL_IPv6
NP_IPv4_PROTOCOL_OSPF
NP_IPv4_PROTOCOL_IGMPv4
NP_IPv4_MORE_FRAGMENT
NP_IPv4_DONT_FRAGMENT
NP_IPv4_RESERVED_FRAGMENT
)],
ipv6 => [qw(
NP_IPv6_HDR_LEN
NP_IPv6_V6
NP_IPv6_PROTOCOL_TCP
NP_IPv6_PROTOCOL_UDP
)],
pppoe => [qw(
NP_PPPoE_HDR_LEN
NP_PPPoE_PPP_PROTOCOL_IPv4
NP_PPPoE_PPP_PROTOCOL_PPPLCP
)],
ppp => [qw(
NP_PPP_HDR_LEN
NP_PPP_PROTOCOL_IPv4
NP_PPP_PROTOCOL_PPPLCP
)],
llc => [qw(
NP_LLC_HDR_LEN
NP_LLC_OUI_CISCO
NP_LLC_PID_CDP
NP_LLC_PID_STP
NP_LLC_DSAP_SNAP
NP_LLC_SSAP_SNAP
)],
ppplcp => [qw(
NP_PPPLCP_HDR_LEN
NP_PPPLCP_CODE_ECHO_REQUEST
NP_PPPLCP_CODE_ECHO_REPLY
)],
cdp => [qw(
NP_CDP_HDR_LEN
NP_CDP_TYPE_DEVICE_ID
NP_CDP_TYPE_ADDRESSES
NP_CDP_TYPE_PORT_ID
NP_CDP_TYPE_CAPABILITIES
NP_CDP_TYPE_SOFTWARE_VERSION
NP_CDP_TYPE_PLATFORM
NP_CDP_TYPE_UNKNOWN_0007
NP_CDP_TYPE_UNKNOWN_0008
NP_CDP_TYPE_VTP_MANAGEMENT_DOMAIN
NP_CDP_TYPE_UNKNOWN_000a
NP_CDP_TYPE_DUPLEX
NP_CDP_TYPE_UNKNOWN_000c
NP_CDP_TYPE_UNKNOWN_000d
NP_CDP_TYPE_VOIP_VLAN_REPLY
NP_CDP_TYPE_UNKNOWN_000f
NP_CDP_TYPE_UNKNOWN_0010
NP_CDP_TYPE_UNKNOWN_0011
NP_CDP_TYPE_TRUST_BITMAP
NP_CDP_TYPE_UNTRUSTED_PORT_COS
NP_CDP_TYPE_SYSTEM_NAME
NP_CDP_TYPE_SYSTEM_OBJECT_ID
NP_CDP_TYPE_UNKNOWN_0016
NP_CDP_TYPE_LOCATION
NP_CDP_ADDRESS_PROTOCOL_TYPE_NLPID
NP_CDP_ADDRESS_PROTOCOL_LENGTH_NLPID
NP_CDP_ADDRESS_PROTOCOL_IP
NP_CDP_ADDRESS_ADDRESS_LENGTH_IP
)],
stp => [qw(
NP_STP_HDR_LEN
NP_STP_PROTOCOL_IDENTIFIER_STP
)],
ospf => [qw(
NP_OSPF_HDR_LEN
NP_OSPF_AUTH_TYPE_NULL
)],
igmpv4 => [qw(
NP_IGMPv4_HDR_LEN
NP_IGMPv4_v1_TYPE_QUERY
NP_IGMPv4_v1_TYPE_REPORT
NP_IGMPv4_v2_TYPE_QUERY
NP_IGMPv4_v2_TYPE_QUERY_v1
NP_IGMPv4_v2_TYPE_REPORT
NP_IGMPv4_v2_TYPE_LEAVE_GROUP
NP_IGMPv4_GROUP_ADDRESS_NO_HOSTS
NP_IGMPv4_GROUP_ADDRESS_ALL_HOSTS
NP_IGMPv4_GROUP_ADDRESS_ALL_ROUTERS
)],
tcp => [qw(
NP_TCP_HDR_LEN
NP_TCP_FLAG_FIN
NP_TCP_FLAG_SYN
NP_TCP_FLAG_RST
NP_TCP_FLAG_PSH
NP_TCP_FLAG_ACK
NP_TCP_FLAG_URG
NP_TCP_FLAG_ECE
NP_TCP_FLAG_CWR
)],
udp => [qw(
NP_UDP_HDR_LEN
)],
icmpv4 => [qw(
NP_ICMPv4_HDR_LEN
NP_ICMPv4_CODE_ZERO
NP_ICMPv4_TYPE_DESTINATION_UNREACHABLE
NP_ICMPv4_CODE_NETWORK
NP_ICMPv4_CODE_HOST
NP_ICMPv4_CODE_PROTOCOL
NP_ICMPv4_CODE_PORT
NP_ICMPv4_CODE_FRAGMENTATION_NEEDED
NP_ICMPv4_CODE_SOURCE_ROUTE_FAILED
NP_ICMPv4_TYPE_REDIRECT
NP_ICMPv4_CODE_FOR_NETWORK
NP_ICMPv4_CODE_FOR_HOST
NP_ICMPv4_CODE_FOR_TOS_AND_NETWORK
NP_ICMPv4_CODE_FOR_TOS_AND_HOST
NP_ICMPv4_TYPE_TIME_EXCEEDED
NP_ICMPv4_CODE_TTL_IN_TRANSIT
NP_ICMPv4_CODE_FRAGMENT_REASSEMBLY
NP_ICMPv4_TYPE_ECHO_REQUEST
NP_ICMPv4_TYPE_ECHO_REPLY
NP_ICMPv4_TYPE_TIMESTAMP_REQUEST
NP_ICMPv4_TYPE_TIMESTAMP_REPLY
NP_ICMPv4_TYPE_INFORMATION_REQUEST
NP_ICMPv4_TYPE_INFORMATION_REPLY
NP_ICMPv4_TYPE_ADDRESS_MASK_REQUEST
NP_ICMPv4_TYPE_ADDRESS_MASK_REPLY
)],
);
our @EXPORT_OK = (
@{$EXPORT_TAGS{desc}},
@{$EXPORT_TAGS{dump}},
@{$EXPORT_TAGS{layer}},
@{$EXPORT_TAGS{eth}},
@{$EXPORT_TAGS{ipv4}},
@{$EXPORT_TAGS{ipv6}},
@{$EXPORT_TAGS{null}},
@{$EXPORT_TAGS{sll}},
@{$EXPORT_TAGS{vlan}},
@{$EXPORT_TAGS{arp}},
@{$EXPORT_TAGS{tcp}},
@{$EXPORT_TAGS{udp}},
@{$EXPORT_TAGS{icmpv4}},
@{$EXPORT_TAGS{pppoe}},
@{$EXPORT_TAGS{ppp}},
@{$EXPORT_TAGS{llc}},
@{$EXPORT_TAGS{ppplcp}},
@{$EXPORT_TAGS{cdp}},
@{$EXPORT_TAGS{stp}},
@{$EXPORT_TAGS{ospf}},
@{$EXPORT_TAGS{igmpv4}},
);
use constant NP_DESC_IPPROTO_IP => 0;
use constant NP_DESC_IPPROTO_ICMPv4 => 1;
use constant NP_DESC_IPPROTO_TCP => 6;
use constant NP_DESC_IPPROTO_UDP => 17;
use constant NP_DESC_IPPROTO_IPv6 => 41;
use constant NP_DESC_IPPROTO_RAW => 255;
use constant NP_DESC_IP_HDRINCL => 2;
use constant NP_DESC_L2 => 'DescL2';
use constant NP_DESC_L3 => 'DescL3';
use constant NP_DESC_L4 => 'DescL4';
use constant NP_DUMP_LINK_NULL => 0;
use constant NP_DUMP_LINK_EN10MB => 1;
use constant NP_DUMP_LINK_PPP => 9;
use constant NP_DUMP_LINK_RAW => 12;
use constant NP_DUMP_LINK_SLL => 113;
use constant NP_DUMP_MODE_ONLINE => 0;
use constant NP_DUMP_MODE_OFFLINE => 1;
use constant NP_DUMP_MODE_WRITER => 2;
use constant NP_LAYER => 'Net::Packet::';
use constant NP_LAYER_ETH => 'ETH';
use constant NP_LAYER_NULL => 'NULL';
use constant NP_LAYER_RAW => 'RAW';
use constant NP_LAYER_SLL => 'SLL';
use constant NP_LAYER_ARP => 'ARP';
use constant NP_LAYER_IPv4 => 'IPv4';
use constant NP_LAYER_IPv6 => 'IPv6';
use constant NP_LAYER_VLAN => 'VLAN';
use constant NP_LAYER_TCP => 'TCP';
use constant NP_LAYER_UDP => 'UDP';
use constant NP_LAYER_ICMPv4 => 'ICMPv4';
use constant NP_LAYER_7 => 'Layer7';
use constant NP_LAYER_NONE => 'NONE';
use constant NP_LAYER_UNKNOWN => 'UNKNOWN';
use constant NP_LAYER_PPPoE => 'PPPoE';
use constant NP_LAYER_PPP => 'PPP';
use constant NP_LAYER_LLC => 'LLC';
use constant NP_LAYER_PPPLCP => 'PPPLCP';
use constant NP_LAYER_CDP => 'CDP';
use constant NP_LAYER_STP => 'STP';
use constant NP_LAYER_OSPF => 'OSPF';
use constant NP_LAYER_IGMPv4 => 'IGMPv4';
use constant NP_LAYER_N_2 => 'L2';
use constant NP_LAYER_N_3 => 'L3';
use constant NP_LAYER_N_4 => 'L4';
use constant NP_LAYER_N_7 => 'L7';
use constant NP_LAYER_N_UNKNOWN => 'L?';
use constant NP_ETH_HDR_LEN => 14;
use constant NP_ETH_ADDR_BROADCAST => 'ff:ff:ff:ff:ff:ff';
use constant NP_ETH_TYPE_IPv4 => 0x0800;
use constant NP_ETH_TYPE_ARP => 0x0806;
use constant NP_ETH_TYPE_VLAN => 0x8100;
use constant NP_ETH_TYPE_IPv6 => 0x86dd;
use constant NP_ETH_TYPE_PPPoE => 0x8864;
use constant NP_NULL_HDR_LEN => 4;
use constant NP_NULL_TYPE_IPv4 => 0x02000000;
use constant NP_NULL_TYPE_IPv6 => 0x1c000000;
use constant NP_SLL_HDR_LEN => 16;
use constant NP_SLL_PACKET_TYPE_SENT_BY_US => 4;
use constant NP_SLL_PACKET_TYPE_UNICAST_TO_US => 0;
use constant NP_SLL_ADDRESS_TYPE_512 => 512;
use constant NP_SLL_PROTOCOL_IPv4 => NP_ETH_TYPE_IPv4;
use constant NP_SLL_PROTOCOL_IPv6 => NP_ETH_TYPE_IPv6;
use constant NP_SLL_PROTOCOL_ARP => NP_ETH_TYPE_ARP;
use constant NP_SLL_PROTOCOL_VLAN => NP_ETH_TYPE_VLAN;
use constant NP_VLAN_HDR_LEN => 4;
use constant NP_VLAN_TYPE_ARP => NP_ETH_TYPE_ARP;
use constant NP_VLAN_TYPE_IPv4 => NP_ETH_TYPE_IPv4;
use constant NP_VLAN_TYPE_IPv6 => NP_ETH_TYPE_IPv6;
use constant NP_VLAN_TYPE_VLAN => NP_ETH_TYPE_VLAN;
use constant NP_ARP_HDR_LEN => 28;
use constant NP_ARP_HTYPE_ETH => 0x0001;
use constant NP_ARP_PTYPE_IPv4 => NP_ETH_TYPE_IPv4;
use constant NP_ARP_HSIZE_ETH => 0x06;
use constant NP_ARP_PSIZE_IPv4 => 0x04;
use constant NP_ARP_OPCODE_REQUEST => 0x0001;
use constant NP_ARP_OPCODE_REPLY => 0x0002;
use constant NP_ARP_ADDR_BROADCAST => '00:00:00:00:00:00';
use constant NP_IPv4_HDR_LEN => 20;
use constant NP_IPv4_V4 => 4;
use constant NP_IPv4_PROTOCOL_ICMPv4 => 1;
use constant NP_IPv4_PROTOCOL_TCP => 6;
use constant NP_IPv4_PROTOCOL_UDP => 17;
use constant NP_IPv4_PROTOCOL_IPv6 => 41;
use constant NP_IPv4_PROTOCOL_OSPF => 0x59;
use constant NP_IPv4_PROTOCOL_IGMPv4 => 0x02;
use constant NP_IPv4_MORE_FRAGMENT => 1;
use constant NP_IPv4_DONT_FRAGMENT => 2;
use constant NP_IPv4_RESERVED_FRAGMENT => 4;
use constant NP_IPv6_HDR_LEN => 40;
use constant NP_IPv6_V6 => 6;
use constant NP_IPv6_PROTOCOL_TCP => NP_IPv4_PROTOCOL_TCP();
use constant NP_IPv6_PROTOCOL_UDP => NP_IPv4_PROTOCOL_UDP();
use constant NP_PPP_HDR_LEN => 4;
use constant NP_PPP_PROTOCOL_IPv4 => 0x0021;
use constant NP_PPP_PROTOCOL_PPPLCP => 0xc021;
use constant NP_PPPoE_HDR_LEN => 8;
use constant NP_PPPoE_PPP_PROTOCOL_IPv4 => NP_PPP_PROTOCOL_IPv4;
use constant NP_PPPoE_PPP_PROTOCOL_PPPLCP => NP_PPP_PROTOCOL_PPPLCP;
use constant NP_LLC_HDR_LEN => 8;
use constant NP_LLC_OUI_CISCO => 0x00000c;
use constant NP_LLC_PID_CDP => 0x2000;
use constant NP_LLC_PID_STP => 0x010b;
use constant NP_LLC_DSAP_SNAP => 0x2a;
use constant NP_LLC_SSAP_SNAP => NP_LLC_DSAP_SNAP();
use constant NP_PPPLCP_HDR_LEN => 8;
use constant NP_PPPLCP_CODE_ECHO_REQUEST => 0x09;
use constant NP_PPPLCP_CODE_ECHO_REPLY => 0x0a;
use constant NP_CDP_HDR_LEN => 4;
use constant NP_CDP_TYPE_DEVICE_ID => 0x0001;
use constant NP_CDP_TYPE_ADDRESSES => 0x0002;
use constant NP_CDP_TYPE_PORT_ID => 0x0003;
use constant NP_CDP_TYPE_CAPABILITIES => 0x0004;
use constant NP_CDP_TYPE_SOFTWARE_VERSION => 0x0005;
use constant NP_CDP_TYPE_PLATFORM => 0x0006;
use constant NP_CDP_TYPE_UNKNOWN_0007 => 0x0007;
use constant NP_CDP_TYPE_UNKNOWN_0008 => 0x0008;
use constant NP_CDP_TYPE_VTP_MANAGEMENT_DOMAIN => 0x0009;
use constant NP_CDP_TYPE_UNKNOWN_000a => 0x000a;
use constant NP_CDP_TYPE_DUPLEX => 0x000b;
use constant NP_CDP_TYPE_UNKNOWN_000c => 0x000c;
use constant NP_CDP_TYPE_UNKNOWN_000d => 0x000d;
use constant NP_CDP_TYPE_VOIP_VLAN_REPLY => 0x000e;
use constant NP_CDP_TYPE_UNKNOWN_000f => 0x000f;
use constant NP_CDP_TYPE_UNKNOWN_0010 => 0x0010;
use constant NP_CDP_TYPE_UNKNOWN_0011 => 0x0011;
use constant NP_CDP_TYPE_TRUST_BITMAP => 0x0012;
use constant NP_CDP_TYPE_UNTRUSTED_PORT_COS => 0x0013;
use constant NP_CDP_TYPE_SYSTEM_NAME => 0x0014;
use constant NP_CDP_TYPE_SYSTEM_OBJECT_ID => 0x0015;
use constant NP_CDP_TYPE_UNKNOWN_0016 => 0x0016;
use constant NP_CDP_TYPE_LOCATION => 0x0017;
use constant NP_CDP_ADDRESS_PROTOCOL_TYPE_NLPID => 0x01;
use constant NP_CDP_ADDRESS_PROTOCOL_LENGTH_NLPID => 0x01;
use constant NP_CDP_ADDRESS_PROTOCOL_IP => 0xcc;
use constant NP_CDP_ADDRESS_ADDRESS_LENGTH_IP => 0x0004;
use constant NP_STP_HDR_LEN => 42;
use constant NP_STP_PROTOCOL_IDENTIFIER_STP => 0x0000;
use constant NP_OSPF_HDR_LEN => 24;
use constant NP_OSPF_AUTH_TYPE_NULL => 0x0000;
use constant NP_IGMPv4_HDR_LEN => 8;
use constant NP_IGMPv4_v1_TYPE_QUERY => 1;
use constant NP_IGMPv4_v1_TYPE_REPORT => 2;
use constant NP_IGMPv4_v2_TYPE_QUERY => 0x11;
use constant NP_IGMPv4_v2_TYPE_QUERY_v1 => 0x12;
use constant NP_IGMPv4_v2_TYPE_REPORT => 0x16;
use constant NP_IGMPv4_v2_TYPE_LEAVE_GROUP => 0x17;
use constant NP_IGMPv4_GROUP_ADDRESS_NO_HOSTS => '224.0.0.0';
use constant NP_IGMPv4_GROUP_ADDRESS_ALL_HOSTS => '224.0.0.1';
use constant NP_IGMPv4_GROUP_ADDRESS_ALL_ROUTERS => '224.0.0.2';
use constant NP_TCP_HDR_LEN => 20;
use constant NP_TCP_FLAG_FIN => 0x01;
use constant NP_TCP_FLAG_SYN => 0x02;
use constant NP_TCP_FLAG_RST => 0x04;
use constant NP_TCP_FLAG_PSH => 0x08;
use constant NP_TCP_FLAG_ACK => 0x10;
use constant NP_TCP_FLAG_URG => 0x20;
use constant NP_TCP_FLAG_ECE => 0x40;
use constant NP_TCP_FLAG_CWR => 0x80;
use constant NP_UDP_HDR_LEN => 8;
use constant NP_ICMPv4_HDR_LEN => 8;
use constant NP_ICMPv4_CODE_ZERO => 0;
use constant NP_ICMPv4_TYPE_DESTINATION_UNREACHABLE => 3;
use constant NP_ICMPv4_CODE_NETWORK => 0;
use constant NP_ICMPv4_CODE_HOST => 1;
use constant NP_ICMPv4_CODE_PROTOCOL => 2;
use constant NP_ICMPv4_CODE_PORT => 3;
use constant NP_ICMPv4_CODE_FRAGMENTATION_NEEDED => 4;
use constant NP_ICMPv4_CODE_SOURCE_ROUTE_FAILED => 5;
use constant NP_ICMPv4_TYPE_TIME_EXCEEDED => 11;
use constant NP_ICMPv4_CODE_TTL_IN_TRANSIT => 0;
use constant NP_ICMPv4_CODE_FRAGMENT_REASSEMBLY => 1;
use constant NP_ICMPv4_TYPE_PARAMETER_PROBLEM => 12;
use constant NP_ICMPv4_CODE_POINTER => 0;
use constant NP_ICMPv4_TYPE_SOURCE_QUENCH => 4;
use constant NP_ICMPv4_TYPE_REDIRECT => 5;
use constant NP_ICMPv4_CODE_FOR_NETWORK => 0;
use constant NP_ICMPv4_CODE_FOR_HOST => 1;
use constant NP_ICMPv4_CODE_FOR_TOS_AND_NETWORK => 2;
use constant NP_ICMPv4_CODE_FOR_TOS_AND_HOST => 3;
use constant NP_ICMPv4_TYPE_ECHO_REQUEST => 8;
use constant NP_ICMPv4_TYPE_ECHO_REPLY => 0;
use constant NP_ICMPv4_TYPE_TIMESTAMP_REQUEST => 13;
use constant NP_ICMPv4_TYPE_TIMESTAMP_REPLY => 14;
use constant NP_ICMPv4_TYPE_INFORMATION_REQUEST => 15;
use constant NP_ICMPv4_TYPE_INFORMATION_REPLY => 16;
use constant NP_ICMPv4_TYPE_ADDRESS_MASK_REQUEST => 17; # RFC 950
use constant NP_ICMPv4_TYPE_ADDRESS_MASK_REPLY => 18; # RFC 950
1;
__END__
=head1 NAME
Net::Packet::Consts - all constants used in Net::Packet framework
=head1 SYNPOSIS
# Load IPv4 layer constants
use Net::Packet::Consts qw(:ipv4);
# Load Ethernet layer constants
use Net::Packet::Consts qw(:eth);
# Load Ethernet, IPv6 and TCP layers constants
use Net::Packet::Consts qw(:eth :ipv6 :tcp);
=head1 DESCRIPTION
This module is the place to store all useful constants. If you want to see them all, simply `perldoc -m Net::Packet::Consts'.
=head1 AUTHOR
Patrice E<lt>GomoRE<gt> Auffret
=head1 COPYRIGHT AND LICENSE
Copyright (c) 2004-2006, Patrice E<lt>GomoRE<gt> Auffret
You may distribute this module under the terms of the Artistic license.
See LICENSE.Artistic file in the source distribution archive.
=head1 RELATED MODULES
L<NetPacket>, L<Net::RawIP>, L<Net::RawSock>
=cut
syntax highlighted by Code2HTML, v. 0.9.1