NAME
Net::DHCP::Constants - Constants for DHCP codes and options
VERSION
version 0.9
SYNOPSIS
use Net::DHCP::Constants;
print "DHCP option SUBNET_MASK is ", DHO_SUBNET_MASK();
DESCRIPTION
Represents constants used in DHCP protocol, defined in RFC 1533, RFC 2132, RFC 2241, RFC 2485, RFC 2563, RFC 2937, RFC 3004, RFC 3011, RFC 3046.
TAGS
Constants can either be imported individually or in sets grouped by tag names. The tag names are:
bootp_codes
Imports all of the basic BOOTP constants.
(01) BOOTREQUEST (02) BOOTREPLYhtype_codes
Imports all HTYPE (hardware address type) codes.
(01) HTYPE_ETHER (06) HTYPE_IEEE802 (08) HTYPE_FDDIMost common value is HTYPE_ETHER for
Ethernet.dhcp_message
Import all DHCP Message codes.
(rfc2132)
(01) DHCPDISCOVER (02) DHCPOFFER (03) DHCPREQUEST (04) DHCPDECLINE (05) DHCPACK (06) DHCPNAK (07) DHCPRELEASE (08) DHCPINFORM (09) DHCPFORCERENEW(rfc4388)
(10) DHCPLEASEQUERY (11) DHCPLEASEUNASSIGNED (12) DHCPLEASEUNKNOWN (13) DHCPLEASEACTIVENb. Previously Cisco used 13 for DHCPLEASEQUERY. If you need to decode or encode packets to communicate with such a system, you might simply use the integer rather than the constant - or use the updated constant and comment in your code appropriately.
nwip_codes
Import all NWIP suboption codes for option 63 (rfc 2242). Format types are shown in parentheses.
(001) NWIP_DOES_NOT_EXIST (byte) (002) NWIP_EXIST_IN_OPTIONS_AREA (byte) (003) NWIP_EXIST_IN_SNAME_FILE (byte) (004) NWIP_EXIST_BUT_TOO_BIG (byte) (005) NWIP_NSQ_BROADCAST (byte) (006) NWIP_PREFERRED_DSS (inet) (007) NWIP_NEAREST_NWIP_SERVER (inet) (008) NWIP_AUTORETRIES (byte) (009) NWIP_AUTORETRY_SECS (byte) (010) NWIP_1_1 (byte) (011) NWIP_PRIMARY_DSS (inet)geoconf_codes
Import all GEOCONF suboption codes for option 123 (rfc 6225). Format types are shown in parentheses.
(001) GEO_METERS (int) (002) GEO_FLOORS (byte)dho_codes
Import all DHCP option codes.
(000) DHO_PAD (001) DHO_SUBNET_MASK (002) DHO_TIME_OFFSET (003) DHO_ROUTERS (004) DHO_TIME_SERVERS (005) DHO_NAME_SERVERS (006) DHO_DOMAIN_NAME_SERVERS (007) DHO_LOG_SERVERS (008) DHO_COOKIE_SERVERS (009) DHO_LPR_SERVERS (010) DHO_IMPRESS_SERVERS (011) DHO_RESOURCE_LOCATION_SERVERS (012) DHO_HOST_NAME (013) DHO_BOOT_SIZE (014) DHO_MERIT_DUMP (015) DHO_DOMAIN_NAME (016) DHO_SWAP_SERVER (017) DHO_ROOT_PATH (018) DHO_EXTENSIONS_PATH (019) DHO_IP_FORWARDING (020) DHO_NON_LOCAL_SOURCE_ROUTING (021) DHO_POLICY_FILTER (022) DHO_MAX_DGRAM_REASSEMBLY (023) DHO_DEFAULT_IP_TTL (024) DHO_PATH_MTU_AGING_TIMEOUT (025) DHO_PATH_MTU_PLATEAU_TABLE (026) DHO_INTERFACE_MTU (027) DHO_ALL_SUBNETS_LOCAL (028) DHO_BROADCAST_ADDRESS (029) DHO_PERFORM_MASK_DISCOVERY (030) DHO_MASK_SUPPLIER (031) DHO_ROUTER_DISCOVERY (032) DHO_ROUTER_SOLICITATION_ADDRESS (033) DHO_STATIC_ROUTES (034) DHO_TRAILER_ENCAPSULATION (035) DHO_ARP_CACHE_TIMEOUT (036) DHO_IEEE802_3_ENCAPSULATION (037) DHO_DEFAULT_TCP_TTL (038) DHO_TCP_KEEPALIVE_INTERVAL (039) DHO_TCP_KEEPALIVE_GARBAGE (040) DHO_NIS_DOMAIN (041) DHO_NIS_SERVERS (042) DHO_NTP_SERVERS (043) DHO_VENDOR_ENCAPSULATED_OPTIONS (044) DHO_NETBIOS_NAME_SERVERS (045) DHO_NETBIOS_DD_SERVER (046) DHO_NETBIOS_NODE_TYPE (047) DHO_NETBIOS_SCOPE (048) DHO_FONT_SERVERS (049) DHO_X_DISPLAY_MANAGER (050) DHO_DHCP_REQUESTED_ADDRESS (051) DHO_DHCP_LEASE_TIME (052) DHO_DHCP_OPTION_OVERLOAD (053) DHO_DHCP_MESSAGE_TYPE (054) DHO_DHCP_SERVER_IDENTIFIER (055) DHO_DHCP_PARAMETER_REQUEST_LIST (056) DHO_DHCP_MESSAGE (057) DHO_DHCP_MAX_MESSAGE_SIZE (058) DHO_DHCP_RENEWAL_TIME (059) DHO_DHCP_REBINDING_TIME (060) DHO_VENDOR_CLASS_IDENTIFIER (061) DHO_DHCP_CLIENT_IDENTIFIER (062) DHO_NWIP_DOMAIN_NAME (063) DHO_NWIP_SUBOPTIONS (064) DHO_NISV3_DOMAIN (065) DHO_NISV3_SERVER (066) DHO_TFTP_SERVER (067) DHO_BOOTFILE (068) DHO_MOBILE_IP_HOME_AGENT (069) DHO_SMTP_SERVER (070) DHO_POP3_SERVER (071) DHO_NNTP_SERVER (072) DHO_WWW_SERVER (073) DHO_FINGER_SERVER (074) DHO_IRC_SERVER (075) DHO_STREETTALK_SERVER (076) DHO_STDA_SERVER (077) DHO_USER_CLASS (078) DHO_DIRECTORY_AGENT (079) DHO_SERVICE_SCOPE (080) DHO_RAPID_COMMIT (081) DHO_FQDN (082) DHO_DHCP_AGENT_OPTIONS (083) DHO_ISNS (085) DHO_NDS_SERVERS (086) DHO_NDS_TREE_NAME (087) DHO_NDS_CONTEXT (088) DHO_BCMCS_CONTROLLER_DOMAIN_NAME_LIST (089) DHO_BCMCS_CONTROLLER_IPV4_ADDRESS (090) DHO_AUTHENTICATION (091) DHO_CLIENT_LAST_TRANSACTION_TIME (092) DHO_ASSOCIATED_IP (093) DHO_CLIENT_SYSTEM (094) DHO_CLIENT_NDI (095) DHO_LDAP (097) DHO_UUID_GUID (098) DHO_USER_AUTHENTICATION_PROTOCOL (099) DHO_GEOCONF_CIVIC (100) DHO_PCODE (101) DHO_TCODE (112) DHO_NETINFO_ADDRESS (113) DHO_NETINFO_TAG (114) DHO_URL (116) DHO_AUTO_CONFIGURE (117) DHO_NAME_SERVICE_SEARCH (118) DHO_SUBNET_SELECTION (119) DHO_DOMAIN_SEARCH (120) DHO_SIP_SERVERS (121) DHO_CLASSLESS_STATIC_ROUTE (122) DHO_CCC (123) DHO_GEOCONF (124) DHO_VI_VENDOR_CLASS (125) DHO_VI_VENDOR_SPECIFIC_INFOMATION (128) DHO_ETHERBOOT_SIGNATURE (129) DHO_CALL_SERVER_ADDRESS (130) DHO_DISCRIMINATION_STRING (131) DHO_REMOTE_STATISTICS_SERVER (132) DHO_VLAN_ID (133) DHO_L2_PRIORITY (134) DHO_DSCP (135) DHO_HTTP_PROXY_FORPHONES (136) DHO_OPTION_PANA_AGENT (137) DHO_OPTION_PANA_V4_LOST (138) DHO_OPTION_CAPWAP_AC_V4 (139) DHO_OPTION_IPV4_ADDRESS_MOS (140) DHO_OPTION_IPV4_FQDN_MOS (141) DHO_SIP_UA_CONFIGURATION_SERVICE_DOMAINS (150) DHO_ETHERBOOT (176) DHO_IP_TELEPHONE (177) DHO_PACKETCABLE_DEPRECATED (208) DHO_PXELINUX_MAGIC (209) DHO_CONFIGURATION_FILE (210) DHO_PATH_PREFIX (211) DHO_REBOOT_TIME (212) DHO_OPTION_6RD (213) DHO_OPTION_V4_ACCESS_DOMAIN (220) DHO_SUBNET_ALLOCATION (221) DHO_VIRTUAL_SUBNET (249) DHO_CLASSLESS_STATIC_ROUTE_MS (255) DHO_ENDccc_codes
Import all CableLabs Client Configuration (CCC) suboption codes for option 122. Format types are shown in parentheses.
(001) CCC_PRIMARY_DHCP_SERVER (inet) (002) CCC_SECONDARY_DHCP_SERVER (inet) (003) CCC_PROVISIONING_SERVER (inet) (004) CCC_AS_REQ_AS_REP_BACKOFFRETRY (hexa) (005) CCC_AP_REQ_AS_REP_BACKOFFRETRY (hexa) (006) CCC_KERBEROS_REALM (string) (007) CCC_TICKET_SERVER_UTILIZATION (byte) (008) CCC_PROVISIONING_TIMER (int) (009) CCC_SECURITY_TICKET_CONTROL (byte) (010) CCC_KDC_SERVER (inet)ra_codes
Import all DHCP Agent (Relay Agent) suboption codes for option 82. Format types are shown in parentheses.
(001) RAI_CIRCUIT_ID (circuit_id) (002) RAI_REMOTE_ID (remote_id) (003) RAI_AGENT_ID (hexa) (004) RAI_DOCSIS_CLASS (hexa) (005) RAI_LINK_SELECTION (inet) (006) RAI_SUBSCRIBER_ID (string) (007) RAI_RADIUS_ATTRIBUTES (hexa) (008) RAI_AUTHENTICATION (hexa) (009) RAI_VENDOR_INFO (hexa) (010) RAI_FLAGS (byte) (011) RAI_SERVER_ID_OVERRIDE (inet) (151) RAI_DHCPV4_VIRTUAL_SUBNET_SELECTION (hexa) (152) RAI_DHCPV4_VIRTUAL_SUBNET_SELECTION_CONTROL (hexa)vendor43_codes
Import all CableLabs DOCSIS suboption codes for option 43 (vendor encapsulated options). Format types are shown in parentheses.
(002) VENDOR43_DEVICE_TYPE (byte) (003) VENDOR43_ECM (byte) (004) VENDOR43_SERIAL_NUMBER (string) (005) VENDOR43_HW_VERSION (string) (006) VENDOR43_SW_VERSION (string) (007) VENDOR43_BOOT_ROM_VERSION (string) (008) VENDOR43_OUI (hexa) (009) VENDOR43_MODEL_NUMBER (string) (010) VENDOR43_VENDOR_NAME (string) (011) VENDOR43_PS_WAN_MAN_DATA (hexa) (012) VENDOR43_CM_PS_SYSTEM_DESC (string) (013) VENDOR43_CM_PS_FIRMWARE_REV(string) (014) VENDOR43_FIREWALL_POLICY_FILE(string) (015) VENDOR43_ESAFES (hexa) (016) VENDOR43_DEVICE_TPID (hexa) (017) VENDOR43_DEVICE_SMID (hexa) (018) VENDOR43_VIDEOSECURITYELEMENT(hexa) (031) VENDOR43_MTA_MAC_ADDRESS (hexa) (032) VENDOR43_MTA_CORRELATION_ID(string) (051) VENDOR43_CARD_VENDOR_NAME (string) (052) VENDOR43_CARD_CAPABILITY (hexa) (053) VENDOR43_CARD_VENDOR_DEVICE_ID(hexa) (054) VENDOR43_CARD_ID (string)
DHO_FORMATS
Format strings used by the option code to format mapping in %DHO_FORMATS. Each key is a DHCP option code; each value describes how that option is encoded on the wire.
The following formats are supported:
- userclass
-
Encodes/decodes option 77 (
DHO_USER_CLASS) per RFC 3004. Each[len][data]block represents one user class identifier.setOptionValueaccepts either a scalar (single class) or an arrayref (multiple classes):$packet->setOptionValue(77, 'ipxe'); # wire: \x04ipxe $packet->setOptionValue(77, ['ipxe', 'BIOS']); # wire: \x04ipxe\x04BIOSgetOptionValuereturns a comma-separated string of all decoded blocks.To supply pre-encoded RFC 3004 data, use
setOptionRaw.
TO DO, LIMITATIONS
DHO_AUTHENTICATION (code 90, rfc 3118) has a structured format (protocol/algorithm/RDM/replay/auth-info) and is not parsed — returns raw bytes.
SEE ALSO
Net::DHCP::Packet, Net::DHCP::Options
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