The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::DHCP::Constants - Constants for DHCP codes and options

VERSION

version 0.7

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

As mentioned above, 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) BOOTREPLY
  • htype_codes

    Imports all HTYPE (hardware address type) codes.

      (01) HTYPE_ETHER
      (06) HTYPE_IEEE802
      (08) HTYPE_FDDI

    Most 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) DHCPLEASEACTIVE

    Nb. 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.

  • 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_END
  • ccc_codes

    Import all CableLabs Client Configuration

      (001) CCC_PRIMARY_DHCP_SERVER
      (002) CCC_SECONDARY_DHCP_SERVER
      (003) CCC_PROVISIONING_SERVER
      (004) CCC_AS_REQ_AS_REP_BACKOFFRETRY
      (005) CCC_AP_REQ_AS_REP_BACKOFFRETRY
      (006) CCC_KERBEROS_REALM
      (007) CCC_TICKET_SERVER_UTILIZATION
      (008) CCC_PROVISIONING_TIMER
      (009) CCC_SECURITY_TICKET_CONTROL
      (010) CCC_KDC_SERVER
  • ra_codes

    Import all DHCP Agenet (aka Relay Agent) Codes

      (001) RAI_CIRCUIT_ID
      (002) RAI_REMOTE_ID
      (004) RAI_DOCSIS_CLASS
      (005) RAI_LINK_SELECTION
      (006) RAI_SUBSCRIBER_ID
      (007) RAI_RADIUS_ATTRIBUTES
      (008) RAI_AUTHENTICATION
      (009) RAI_VENDOR_INFO
      (010) RAI_FLAGS
      (011) RAI_SERVER_ID_OVERRIDE
      (151) RAI_DHCPV4_VIRTUAL_SUBNET_SELECTION
      (152) RAI_DHCPV4_VIRTUAL_SUBNET_SELECTION_CONTROL
  • CABLELABS_OPTION43

     (002) DEVICE_TYPE
    3 ECM
    4 SERIAL_NUMBER
    5 HW_VERSION
    6 SW_VERSION
    7 BOOT_ROM_VERSION
    8 OUI
    9 MODEL_NUMBER
    10 VENDOR_NAME
    11 PS_WAN_MAN_DATA
    12 CM_PS_SYSTEM_DESCRIPTION
    13 CM_PS_FIRMWARE_REV
    14 FIREWALL_POLICY_FILE_VERSION
    15 ESAFES
    16 DEVICE_TPID
    17 DEVICE SMID
    18 VIDEOSECURITYELEMENT
    31 MTA_MAC_ADDRESS
    32 MTA_CORRELATION_ID
    51 CARD_VENDOR_NAME
    52 CARD_CAPABILITY
    53 CARD_VENDOR_DEVICE_ID
    54 CARD_ID

TO DO, LIMITATIONS

Automatic parsing of DHO_VENDOR_ENCAPSULATED_OPTIONS (code 43) is unsupported.

Automatic parsing of DHO_NWIP_SUBOPTIONS (code 63 - rfc 2242) is unsupported.

Automatic parsing of DHO_USER_CLASS (code 77 - rfc 3004) is unsupported.

Automatic parsing of DHO_CCC (code 122 - rfc 3495) is unsupported.

Automatic parsing of DHO_PACKETCABLE_DEPRECATED (code 177 - rfc 3495) is unsupported.

SEE ALSO

Net::DHCP::Packet, Net::DHCP::Options

AUTHOR

Dean Hamstead <dean@fragfest.com.au>

COPYRIGHT AND LICENSE

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

This is free software, licensed under:

  The MIT (X11) License