NAME

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

VERSION

version 0.003

SYNOPSIS

use Net::DHCPv6::Constants;

print $CLIENT_ARCH_X86_UEFI;    # 6
print $DUID_LLT;                # 1
print $LINK_TYPE_ETHERNET;      # 1
print $SOLICIT;                 # 1
print $OPTION_CLIENTID;         # 1
print $CLIENT_FQDN_S;           # 1
print $STATUS_SUCCESS;          # 0

print arch_name(6);             # X86_UEFI
print is_valid_message_type(1); # 1
print link_type_name(1);        # ETHERNET
print message_type_name(1);     # SOLICIT
print option_name(23);          # DNS_SERVERS
print status_name(0);           # SUCCESS

DESCRIPTION

Defines all DHCPv6 numeric constants as read-only package variables: message types, option codes, status codes, DUID types, client architecture types per RFC 8415 and RFC 5970, and link-layer types from the IANA ARP Hardware Type registry. 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)

Client Architecture Types (RFC 5970)

$CLIENT_ARCH_X86_BIOS (0)
$CLIENT_ARCH_NEC_PC98 (1) -- DEPRECATED
$CLIENT_ARCH_ITANIUM (2)
$CLIENT_ARCH_DEC_ALPHA (3) -- DEPRECATED
$CLIENT_ARCH_ARC_X86 (4) -- DEPRECATED
$CLIENT_ARCH_INTEL_LEAN_CLIENT (5) -- DEPRECATED
$CLIENT_ARCH_X86_UEFI (6)
$CLIENT_ARCH_X64_UEFI (7)
$CLIENT_ARCH_EFI_XSCALE (8) -- DEPRECATED
$CLIENT_ARCH_EBC (9)
$CLIENT_ARCH_ARM_32_UEFI (10)
$CLIENT_ARCH_ARM_64_UEFI (11)
$CLIENT_ARCH_PPC_OPEN_FIRMWARE (12)
$CLIENT_ARCH_PPC_EPAPR (13)
$CLIENT_ARCH_POWER_OPAL_V3 (14)
$CLIENT_ARCH_X86_UEFI_HTTP (15)
$CLIENT_ARCH_X64_UEFI_HTTP (16)
$CLIENT_ARCH_EBC_HTTP (17)
$CLIENT_ARCH_ARM_32_UEFI_HTTP (18)
$CLIENT_ARCH_ARM_64_UEFI_HTTP (19)
$CLIENT_ARCH_PC_AT_BIOS_HTTP (20)
$CLIENT_ARCH_ARM_32_UBOOT (21)
$CLIENT_ARCH_ARM_64_UBOOT (22)
$CLIENT_ARCH_ARM_UBOOT_32_HTTP (23)
$CLIENT_ARCH_ARM_UBOOT_64_HTTP (24)
$CLIENT_ARCH_RISCV_32_UEFI (25)
$CLIENT_ARCH_RISCV_32_UEFI_HTTP (26)
$CLIENT_ARCH_RISCV_64_UEFI (27)
$CLIENT_ARCH_RISCV_64_UEFI_HTTP (28)
$CLIENT_ARCH_RISCV_128_UEFI (29)
$CLIENT_ARCH_RISCV_128_UEFI_HTTP (30)
$CLIENT_ARCH_S390_BASIC (31)
$CLIENT_ARCH_S390_EXTENDED (32)
$CLIENT_ARCH_MIPS_32_UEFI (33)
$CLIENT_ARCH_MIPS_64_UEFI (34)
$CLIENT_ARCH_SUNWAY_32_UEFI (35)
$CLIENT_ARCH_SUNWAY_64_UEFI (36)
$CLIENT_ARCH_LOONGARCH_32_UEFI (37)
$CLIENT_ARCH_LOONGARCH_32_UEFI_HTTP (38)
$CLIENT_ARCH_LOONGARCH_64_UEFI (39)
$CLIENT_ARCH_LOONGARCH_64_UEFI_HTTP (40)
$CLIENT_ARCH_ARM_RPIBOOT (41)

Client FQDN Flags (RFC 4704 §4)

$CLIENT_FQDN_S (0x01) -- Server should NOT update DNS
$CLIENT_FQDN_O (0x02) -- Server override
$CLIENT_FQDN_N (0x04) -- Server should update DNS

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.

arch_name($code)

Returns the client architecture type name string (e.g. X86_UEFI) for a numeric code, or undef if unknown.

Returns the link-layer type name string (e.g. ETHERNET) for a numeric code, or undef if unknown.

REVERSE HASHES

The following package hashes are available for direct lookup:

%REV_MESSAGE_TYPE
%REV_OPTION_CODE
%REV_STATUS_CODE
%REV_DUID_TYPE
%REV_CLIENT_ARCH

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