NAME

Net::DHCPv6::Constants - DHCPv6 numeric constants (message types, option codes, status codes, DUID types)

VERSION

version 0.001

SYNOPSIS

use Net::DHCPv6::Constants;

print $SOLICIT;                 # 1
print $OPTION_CLIENTID;         # 1
print $STATUS_SUCCESS;          # 0
print $DUID_LLT;                # 1

print message_type_name(1);     # SOLICIT
print option_name(23);          # DNS_SERVERS
print status_name(0);           # SUCCESS
print is_valid_message_type(1); # 1

DESCRIPTION

Defines all DHCPv6 numeric constants as read-only package variables: message types, option codes, status codes, and DUID types per RFC 8415. All constants are exported by default via Const::Fast::Exporter.

ALPHA STATUS

ALPHA SOFTWARE. This is an early release. The interface is experimental and subject to change without notice.

CONSTANTS

Message Types (RFC 8415 §14)

$SOLICIT (1)
$ADVERTISE (2)
$REQUEST (3)
$CONFIRM (4)
$RENEW (5)
$REBIND (6)
$REPLY (7)
$RELEASE (8)
$DECLINE (9)
$RECONFIGURE (10)
$INFORMATION_REQUEST (11)
$RELAY_FORW (12)
$RELAY_REPLY (13)

Option Codes (RFC 8415 §21)

$OPTION_CLIENTID (1)
$OPTION_SERVERID (2)
$OPTION_IA_NA (3)
$OPTION_IA_TA (4)
$OPTION_IAADDR (5)
$OPTION_ORO (6)
$OPTION_PREFERENCE (7)
$OPTION_ELAPSED_TIME (8)
$OPTION_RELAY_MSG (9)
$OPTION_AUTH (11)
$OPTION_UNICAST (12)
$OPTION_STATUS_CODE (13)
$OPTION_RAPID_COMMIT (14)
$OPTION_USER_CLASS (15)
$OPTION_VENDOR_CLASS (16)
$OPTION_VENDOR_OPTS (17)
$OPTION_INTERFACE_ID (18)
$OPTION_RECONF_MSG (19)
$OPTION_RECONF_ACCEPT (20)
$OPTION_SIP_SERVER_D (21)
$OPTION_SIP_SERVER_A (22)
$OPTION_DNS_SERVERS (23)
$OPTION_DOMAIN_LIST (24)
$OPTION_IA_PD (25)
$OPTION_IAPREFIX (26)
$OPTION_NIS_SERVERS (27)
$OPTION_NISP_SERVERS (28)
$OPTION_NIS_DOMAIN_NAME (29)
$OPTION_NISP_DOMAIN_NAME (30)
$OPTION_SNTP_SERVERS (31)
$OPTION_INFORMATION_REFRESH_TIME (32)
$OPTION_REMOTE_ID (37)
$OPTION_SUBSCRIBER_ID (38)
$OPTION_CLIENT_FQDN (39)
$OPTION_NEW_POSIX_TIMEZONE (41)
$OPTION_NEW_TZDB_TIMEZONE (42)
$OPTION_NTP_SERVER (56)
$OPTION_BOOTFILE_URL (59)
$OPTION_BOOTFILE_PARAM (60)
$OPTION_CLIENT_ARCH_TYPE (61)
$OPTION_AFTR_NAME (64)
$OPTION_RSOO (66)
$OPTION_PD_EXCLUDE (67)
$OPTION_CLIENT_LINKLAYER_ADDR (79)
$OPTION_SOL_MAX_RT (82)
$OPTION_INF_MAX_RT (83)
$OPTION_CAPTIVE_PORTAL (103)
$OPTION_MUD_URL (112)

NOTE: The constants above cover the most commonly used DHCPv6 option codes from RFC 8415 §21 and related RFCs. Approximately 85 additional option codes are registered with IANA (leasequery, MIP6, S46, ANI, KRB, bulk leasequery, and others). If you need a constant or subclass for one of those codes, either add it to your own code following the pattern in this module's source or file a feature request.

Status Codes (RFC 8415 §18.3)

$STATUS_SUCCESS (0)
$STATUS_UNSPEC_FAIL (1)
$STATUS_NO_ADDRS_AVAIL (2)
$STATUS_NO_BINDING (3)
$STATUS_USE_MULTICAST (5)
$STATUS_NO_PREFIX_AVAIL (6)

DUID Types (RFC 8415 §11)

$DUID_LLT (1)
$DUID_EN (2)
$DUID_LL (3)
$DUID_UUID (4)

LOOKUP HELPERS

message_type_name($code)

Returns the message type name string (e.g. SOLICIT) for a numeric code, or undef if unknown.

option_name($code)

Returns the option name string (e.g. CLIENTID) for a numeric code, or undef if unknown.

status_name($code)

Returns the status name string (e.g. SUCCESS) for a numeric code, or undef if unknown.

is_valid_message_type($code)

Returns true if the numeric code corresponds to a known message type.

REVERSE HASHES

The following package hashes are available for direct lookup:

%REV_MESSAGE_TYPE
%REV_OPTION_CODE
%REV_STATUS_CODE
%REV_DUID_TYPE

SEE ALSO

Net::DHCPv6, RFC 8415

AUTHOR

Dean Hamstead <dean@fragfest.com.au>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2026 by Dean Hamstead.

This is free software, licensed under:

The MIT (X11) License