mirror of
https://github.com/rsmarples/dhcpcd.git
synced 2024-11-28 20:43:54 +08:00
8f008ca7f5
natural string based on content except as noted: * domain (RFC3397)/dname (string) is strict domain name allowance (ie, [alnum] with _- (but not at the start or end)) * string is now printable ascii (1-127) until invalid * ascii is all ascii (1-127) until invalid * raw is all chars (1-255) until NUL * binhex is a hex representation of the option including embedded NULs * ssid is still escpaed octal because it's expected to be human readable AND can technically be all NUL * everything else has strict option -> value encoding This removes all shell escaped encoding - dhcpcd will assume that IF the --script option is a shell, it will quote variables correctly. The stock dhcpcd-run-hooks does. dhcpcd -V now prints how the variables will be decoded. Changed some options in dhcpcd-definitions.conf to more sensible defaults.
531 lines
15 KiB
Plaintext
531 lines
15 KiB
Plaintext
# Copyright (c) 2006-2014 Roy Marples
|
|
# All rights reserved
|
|
|
|
# DHCP option definitions for dhcpcd(8)
|
|
# These are used to translate DHCP options into shell variables
|
|
# for use in dhcpcd-run-hooks(8)
|
|
# See dhcpcd.conf(5) for details
|
|
|
|
##############################################################################
|
|
# DHCP RFC2132 options unless otheriwse stated
|
|
define 1 request ipaddress subnet_mask
|
|
# RFC3442 states that the CSR has to come before all other routes
|
|
# For completeness we also specify static routes then routers
|
|
define 121 rfc3442 classless_static_routes
|
|
# Option 249 is an IANA assigned private number used by Windows DHCP servers
|
|
# to provide the exact same information as option 121, classless static routes
|
|
define 249 rfc3442 ms_classless_static_routes
|
|
define 33 request array ipaddress static_routes
|
|
define 3 request array ipaddress routers
|
|
define 2 uint32 time_offset
|
|
define 4 array ipaddress time_servers
|
|
define 5 array ipaddress ien116_name_servers
|
|
define 6 array ipaddress domain_name_servers
|
|
define 7 array ipaddress log_servers
|
|
define 8 array ipaddress cookie_servers
|
|
define 9 array ipaddress lpr_servers
|
|
define 10 array ipaddress impress_servers
|
|
define 11 array ipaddress resource_location_servers
|
|
define 12 dname host_name
|
|
define 13 uint16 boot_size
|
|
define 14 string merit_dump
|
|
# Technically domain_name is not an array, but many servers expect clients
|
|
# to treat it as one.
|
|
define 15 array dname domain_name
|
|
define 16 ipaddress swap_server
|
|
define 17 string root_path
|
|
define 18 string extensions_path
|
|
define 19 byte ip_forwarding
|
|
define 20 byte non_local_source_routing
|
|
define 21 array ipaddress policy_filter
|
|
define 22 int16 max_dgram_reassembly
|
|
define 23 uint16 default_ip_ttl
|
|
define 24 uint32 path_mtu_aging_timeout
|
|
define 25 array uint16 path_mtu_plateau_table
|
|
define 26 uint16 interface_mtu
|
|
define 27 byte all_subnets_local
|
|
define 28 request ipaddress broadcast_address
|
|
define 29 byte perform_mask_discovery
|
|
define 30 byte mask_supplier
|
|
define 31 byte router_discovery
|
|
define 32 ipaddress router_solicitation_address
|
|
define 34 byte trailer_encapsulation
|
|
define 35 uint32 arp_cache_timeout
|
|
define 36 uint16 ieee802_3_encapsulation
|
|
define 37 byte default_tcp_ttl
|
|
define 38 uint32 tcp_keepalive_interval
|
|
define 39 byte tcp_keepalive_garbage
|
|
define 40 string nis_domain
|
|
define 41 array ipaddress nis_servers
|
|
define 42 array ipaddress ntp_servers
|
|
define 43 binhex vendor_encapsulated_options
|
|
define 44 array ipaddress netbios_name_servers
|
|
define 45 ipaddress netbios_dd_server
|
|
define 46 byte netbios_node_type
|
|
define 47 string netbios_scope
|
|
define 48 array ipaddress font_servers
|
|
define 49 array ipaddress x_display_manager
|
|
define 50 ipaddress dhcp_requested_address
|
|
define 51 request uint32 dhcp_lease_time
|
|
define 52 byte dhcp_option_overload
|
|
define 53 byte dhcp_message_type
|
|
define 54 ipaddress dhcp_server_identifier
|
|
define 55 array byte dhcp_parameter_request_list
|
|
define 56 string dhcp_message
|
|
define 57 uint16 dhcp_max_message_size
|
|
define 58 request uint32 dhcp_renewal_time
|
|
define 59 request uint32 dhcp_rebinding_time
|
|
define 60 binhex vendor_class_identifier
|
|
define 61 binhex dhcp_client_identifier
|
|
define 64 string nisplus_domain
|
|
define 65 array ipaddress nisplus_servers
|
|
define 66 dname tftp_server_name
|
|
define 67 string bootfile_name
|
|
define 68 array ipaddress mobile_ip_home_agent
|
|
define 69 array ipaddress smtp_server
|
|
define 70 array ipaddress pop_server
|
|
define 71 array ipaddress nntp_server
|
|
define 72 array ipaddress www_server
|
|
define 73 array ipaddress finger_server
|
|
define 74 array ipaddress irc_server
|
|
define 75 array ipaddress streettalk_server
|
|
define 76 array ipaddress streettalk_directory_assistance_server
|
|
|
|
# DHCP User Class, RFC3004
|
|
define 77 binhex user_class
|
|
|
|
# DHCP SLP Directory Agent, RFC2610
|
|
define 78 embed slp_agent
|
|
embed byte mandatory
|
|
embed array ipaddress address
|
|
define 79 embed slp_service
|
|
embed byte mandatory
|
|
embed ascii scope_list
|
|
|
|
# DHCP Rapid Commit, RFC4039
|
|
define 80 norequest flag rapid_commit
|
|
|
|
# DHCP Fully Qualified Domain Name, RFC4702
|
|
define 81 embed fqdn
|
|
embed byte flags
|
|
embed byte rcode1
|
|
embed byte rcode2
|
|
embed domain fqdn
|
|
|
|
# Option 82 is for Relay Agents and DHCP servers
|
|
|
|
# Options 83 ad 84 are unused, RFC3679
|
|
|
|
# DHCP Novell Directory Services, RFC2241
|
|
define 85 array ipaddress nds_servers
|
|
define 86 raw nds_tree_name
|
|
define 87 raw nds_context
|
|
|
|
# DHCP Broadcast and Multicast Control Server, RFC4280
|
|
define 88 array domain bcms_controller_names
|
|
define 89 array ipaddress bcms_controller_address
|
|
|
|
# DHCP Authentication, RFC3118
|
|
define 90 embed auth
|
|
embed byte protocol
|
|
embed byte algorithm
|
|
embed byte rdm
|
|
embed binhex:8 replay
|
|
embed binhex information
|
|
|
|
# DHCP Leasequery, RFC4388
|
|
define 91 uint32 client_last_transaction_time
|
|
define 92 array ipaddress associated_ip
|
|
|
|
# DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
|
|
# Options 93, 94 and 97 are used but of no use to dhcpcd
|
|
|
|
# Option 95 used by Apple but never published RFC3679
|
|
# Option 96 is unused, RFC3679
|
|
|
|
# DHCP The Open Group's User Authentication Protocol, RFC2485
|
|
define 98 string uap_servers
|
|
|
|
# DHCP Civic Addresses Configuration Information, RFC4776
|
|
define 99 encap geoconf_civic
|
|
embed byte what
|
|
embed uint16 country_code
|
|
# The rest of this option is not supported
|
|
|
|
# DHCP Timezone, RFC4883
|
|
define 100 string posix_timezone
|
|
define 101 string tzdb_timezone
|
|
|
|
# Options 102-115 are unused, RFC3679
|
|
|
|
# DHCP Auto-Configuration, RFC2563
|
|
define 116 byte auto_configure
|
|
|
|
# DHCP Name Service Search, RFC2937
|
|
define 117 array uint16 name_service_search
|
|
|
|
# DHCP Subnet Selection, RFC3011
|
|
define 118 ipaddress subnet_selection
|
|
|
|
# DHCP Domain Search, RFC3397
|
|
define 119 array domain domain_search
|
|
|
|
# DHCP Session Initiated Protocol Servers, RFC3361
|
|
define 120 rfc3361 sip_server
|
|
|
|
# Option 121 is defined at the top of this file
|
|
|
|
# DHCP CableLabs Client, RFC3495
|
|
define 122 encap tsp
|
|
encap 1 ipaddress dhcp_server
|
|
encap 2 ipaddress dhcp_secondary_server
|
|
encap 3 rfc3361 provisioning_server
|
|
encap 4 embed as_req_as_rep_backoff
|
|
embed uint32 nominal
|
|
embed uint32 maximum
|
|
embed uint32 retry
|
|
encap 5 embed ap_req_ap_rep_backoff
|
|
embed uint32 nominal
|
|
embed uint32 maximum
|
|
embed uint32 retry
|
|
encap 6 domain kerberos_realm
|
|
encap 7 byte ticket_granting_server_utilization
|
|
encap 8 byte provisioning_timer
|
|
|
|
# DHCP Coordinate LCI, RFC6225
|
|
# We have no means of expressing 6 bit lengths
|
|
define 123 binhex geoconf
|
|
|
|
# DHCP Vendor-Identifying Vendor Options, RFC3925
|
|
define 124 binhex vivco
|
|
define 125 embed vivso
|
|
embed uint32 enterprise_number
|
|
# Vendor options are shared between DHCP/DHCPv6
|
|
# Their code is matched to the enterprise number defined above
|
|
# see the end of this file for an example
|
|
|
|
# Options 126 and 127 are unused, RFC3679
|
|
|
|
# DHCP Options for Intel Preboot eXecution Environent (PXE), RFC4578
|
|
# Options 128-135 are used but of no use to dhcpcd
|
|
|
|
# DHCP PANA Authentication Agent, RFC5192
|
|
define 136 array ipaddress pana_agent
|
|
|
|
# DHCP Lost Server, RFC5223
|
|
define 137 domain lost_server
|
|
|
|
# DHCP CAPWAP, RFC5417
|
|
define 138 array ipaddress capwap_ac
|
|
|
|
# DHCP Mobility Services, RFC5678
|
|
define 139 encap mos_ip
|
|
encap 1 array ipaddress is
|
|
encap 2 array ipaddress cs
|
|
encap 3 array ipaddress es
|
|
define 140 encap mos_domain
|
|
encap 1 domain is
|
|
encap 2 domain cs
|
|
encap 3 domain es
|
|
|
|
# DHCP SIP UA, RFC6011
|
|
define 141 array domain sip_ua_cs_list
|
|
|
|
# DHCP ANDSF, RFC6153
|
|
define 142 array ipaddress andsf
|
|
define 143 array ip6address andsf6
|
|
|
|
# DHCP Coordinate LCI, RFC6225
|
|
# We have no means of expressing 6 bit lengths
|
|
define 144 binhex geoloc
|
|
|
|
# DHCP FORCERENEW Nonce Capability, RFC6704
|
|
define 145 array byte forcerenew_nonce_capable
|
|
|
|
# DHCP RDNSS Selection for MIF Nodes, RFC6731
|
|
define 146 embed rdnss_selection
|
|
embed byte prf
|
|
embed ipaddress primary
|
|
embed ipaddress secondary
|
|
embed array domain domains
|
|
|
|
# Options 147, 148 and 149 are unused, RFC3942
|
|
|
|
# DHCP TFTP Server Address, RFC5859
|
|
define 150 array ipaddress tftp_servers
|
|
|
|
# Options 151-157 are used for Lease Query, RFC6926 and not for dhcpcd
|
|
# Options 158-174 are unused, RFC3942
|
|
# Options 175-177 are tentativel assigned for Etherboot
|
|
# Options 178-207 are unused, RFC3942
|
|
|
|
# DHCP PXELINUX, RFC5071
|
|
define 208 binhex pxelinux_magic
|
|
define 209 string config_file
|
|
define 210 string path_prefix
|
|
define 211 uint32 reboot_time
|
|
|
|
# DHCP IPv6 Rapid Deployment on IPv4 Infrastructures, RFC5969
|
|
define 212 rfc5969 sixrd
|
|
|
|
# DHCP Access Network Domain Name, RFC5986
|
|
define 213 domain access_domain
|
|
|
|
# Options 214-219 are unused, RFC3942
|
|
|
|
# DHCP Subnet Allocation, RFC6656
|
|
# Option 220 looks specific to Cisco hardware.
|
|
|
|
# DHCP Virtual Subnet Selection, RFC6607
|
|
define 221 encap vss
|
|
encap 0 string nvt
|
|
encap 1 binhex vpn_id
|
|
encap 255 flag global
|
|
|
|
# Options 222 and 223 are unused, RFC3942
|
|
# Options 224-254 are reserved for Private Use
|
|
# Option 255 End
|
|
|
|
##############################################################################
|
|
# DHCPv6 options, RFC3315
|
|
define6 1 binhex client_id
|
|
define6 2 binhex server_id
|
|
|
|
define6 3 norequest index embed ia_na
|
|
embed binhex:4 iaid
|
|
embed uint32 t1
|
|
embed uint32 t2
|
|
encap 5 option
|
|
encap 13 option
|
|
|
|
define6 4 norequest index embed ia_ta
|
|
embed uint32 iaid
|
|
encap 5 option
|
|
encap 13 option
|
|
|
|
define6 5 norequest index embed ia_addr
|
|
embed ip6address ia_addr
|
|
embed uint32 pltime
|
|
embed uint32 vltime
|
|
encap 13 option
|
|
|
|
define6 6 array uint16 option_request
|
|
define6 7 byte preference
|
|
define6 8 uint16 elased_time
|
|
define6 9 binhex dhcp_relay_msg
|
|
|
|
# Option 10 is unused
|
|
|
|
define6 11 embed auth
|
|
embed byte protocol
|
|
embed byte algorithm
|
|
embed byte rdm
|
|
embed binhex:8 replay
|
|
embed binhex information
|
|
|
|
define6 12 ip6address unicast
|
|
|
|
define6 13 norequest embed status_code
|
|
embed uint16 status_code
|
|
embed string message
|
|
|
|
define6 14 norequest flag rapid_commit
|
|
define6 15 binhex user_class
|
|
|
|
define6 16 binhex vivco
|
|
define6 17 embed vivso
|
|
embed uint32 enterprise_number
|
|
# Vendor options are shared between DHCP/DHCPv6
|
|
# Their code is matched to the enterprise number defined above
|
|
# See the end of this file for an example
|
|
|
|
define6 18 binhex interface_id
|
|
define6 19 byte reconfigure_msg
|
|
define6 20 flag reconfigure_accept
|
|
|
|
# DHCPv6 Session Initiation Protocol Options, RFC3319
|
|
define6 21 array domain sip_servers_names
|
|
define6 22 array ip6address sip_servers_addresses
|
|
|
|
# DHCPv6 DNS Configuration Options, RFC3646
|
|
define6 23 array ip6address name_servers
|
|
define6 24 array domain domain_search
|
|
|
|
# DHCPv6 Prefix Options, RFC6603
|
|
define6 25 norequest index embed ia_pd
|
|
embed binhex:4 iaid
|
|
embed uint32 t1
|
|
embed uint32 t2
|
|
encap 26 option
|
|
define6 26 index embed prefix
|
|
embed uint32 pltime
|
|
embed uint32 vltime
|
|
embed byte length
|
|
embed ip6address prefix
|
|
encap 13 option
|
|
encap 67 option
|
|
|
|
# DHCPv6 Network Information Service Options, RFC3898
|
|
define6 27 array ip6address nis_servers
|
|
define6 28 array ip6address nisp_servers
|
|
define6 29 string nis_domain_name
|
|
define6 30 string nisp_domain_name
|
|
|
|
# DHCPv6 Simple Network Time Protocol Servers Option, RFC4075
|
|
define6 31 array ip6address sntp_servers
|
|
|
|
# DHCPv6 Information Refresh Time, RFC4242
|
|
define6 32 uint32 info_refresh_time
|
|
|
|
# DHCPv6 Broadcast and Multicast Control Server, RFC4280
|
|
define6 33 array domain bcms_server_d
|
|
define6 34 array ip6address bcms_server_a
|
|
|
|
# DHCP Civic Addresses Configuration Information, RFC4776
|
|
define6 36 encap geoconf_civic
|
|
embed byte what
|
|
embed uint16 country_code
|
|
# The rest of this option is not supported
|
|
|
|
# DHCP Relay Agent Remote-ID, RFC4649
|
|
define6 37 embed remote_id
|
|
embed uint32 enterprise_number
|
|
embed binhex remote_id
|
|
|
|
# DHCP Relay Agent Subscriber-ID, RFC4580
|
|
define6 38 binhex subscriber_id
|
|
|
|
# DHCPv6 Fully Qualified Domain Name, RFC4704
|
|
define6 39 embed fqdn
|
|
embed byte flags
|
|
embed domain fqdn
|
|
|
|
# DHCPv6 PANA Authentication Agnet, RC5192
|
|
define6 40 array ip6address pana_agent
|
|
|
|
# DHCPv6 Timezone options, RFC4883
|
|
define6 41 string posix_timezone
|
|
define6 42 string tzdb_timezone
|
|
|
|
# DHCPv6 Relay Agent Echo Request
|
|
define6 43 array uint16 ero
|
|
|
|
# Options 44-48 are used for Lease Query, RFC5007 and not for dhcpcd
|
|
|
|
# DHCPv6 Home Info Discovery in MIPv6, RFC6610
|
|
define6 49 domain mip6_hnidf
|
|
define6 50 encap mip6_vdinf
|
|
encap 71 option
|
|
encap 72 option
|
|
encap 73 option
|
|
|
|
# DHCPv6 Lost Server, RFC5223
|
|
define6 51 domain lost_server
|
|
|
|
# DHCPv6 CAPWAP, RFC5417
|
|
define6 52 array ip6address capwap_ac
|
|
|
|
# DHCPv6 Relay-ID, RFC5460
|
|
define6 53 binhex relay_id
|
|
|
|
# DHCP Mobility Services, RFC5678
|
|
define6 54 encap mos_ip
|
|
encap 1 array ip6address is
|
|
encap 2 array ip6address cs
|
|
encap 3 array ip6address es
|
|
define6 55 encap mos_domain
|
|
encap 1 domain is
|
|
encap 2 domain cs
|
|
encap 3 domain es
|
|
|
|
# DHCPv6 Network Time Protocol Server, RFC5908
|
|
define6 56 encap ntp_server
|
|
encap 1 ip6address addr
|
|
encap 2 ip6address mcast_addr
|
|
encap 3 ip6address fqdn
|
|
|
|
# DHCPv6 LIS Discovery, RFC5986
|
|
define6 57 domain access_domain
|
|
|
|
# DHCPv6 SIP UA, RFC6011
|
|
define6 58 array domain sip_ua_cs_list
|
|
|
|
# DHCPv6 Network Boot, RFC5970
|
|
define6 59 string bootfile_url
|
|
# We presently cannot decode bootfile_param
|
|
define6 60 binhex bootfile_param
|
|
define6 61 array uint16 architecture_types
|
|
define6 62 embed nii
|
|
embed byte type
|
|
embed byte major
|
|
embed byte minor
|
|
|
|
# DHCPv6 Coordinate LCI, RFC6225
|
|
# We have no means of expressing 6 bit lengths
|
|
define6 63 binhex geoloc
|
|
|
|
# DHCPv6 AFTR-Name, RFC6334
|
|
define6 64 domain aftr_name
|
|
|
|
# DHCPv6 Prefix Exclude Option, RFC6603
|
|
define6 67 embed pd_exclude
|
|
embed byte prefix_len
|
|
embed binhex subnetID
|
|
|
|
# DHCPv6 Home Info Discovery in MIPv6, RFC6610
|
|
define6 69 encap mip6_idinf
|
|
encap 71 option
|
|
encap 72 option
|
|
encap 73 option
|
|
define6 70 encap mip6_udinf
|
|
encap 71 option
|
|
encap 72 option
|
|
encap 73 option
|
|
define6 71 embed mip6_hnp
|
|
embed byte prefix_len
|
|
embed ip6address prefix
|
|
define6 72 ip6address mip6_haa
|
|
define6 73 domain mip6_haf
|
|
|
|
# DHCPv6 RDNSS Selection for MIF Nodes, RFC6731
|
|
define6 74 embed rdnss_selection
|
|
embed ip6address server
|
|
embed byte prf
|
|
embed array domain domains
|
|
|
|
# DHCPv6 Kerberos, RFC6784
|
|
define6 75 string krb_principal_name
|
|
define6 76 string krb_realm_name
|
|
define6 78 embed krb_kdc
|
|
embed uint16 priority
|
|
embed uint16 weight
|
|
embed byte transport_type
|
|
embed uint16 port
|
|
embed ip6address address
|
|
embed string realm_name
|
|
|
|
# DHCPv6 Client Link-Layer Address, RFC6939
|
|
# Section 7 states that clients MUST ignore the option 79
|
|
|
|
# DHCPv6 Relay-Triggered Reconfiguraion, RFC6977
|
|
define6 80 ip6address link_address
|
|
|
|
# DHCPv6 Radius, RFC7037
|
|
# Section 7 states that clients MUST ignore the option 81
|
|
|
|
# DHCPv6 SOL_MAX_RT, RFC7083
|
|
define6 82 request uint32 sol_max_rt
|
|
define6 83 request uint32 inf_max_rt
|
|
|
|
# DHCPv6 Address Selection Policy
|
|
# Currently not supported
|
|
|
|
# Options 86-65535 are unasssinged
|
|
|
|
##############################################################################
|
|
# Vendor-Identifying Vendor Options
|
|
# An example:
|
|
#vendopt 12345 encap frobozzco
|
|
#encap 1 string maze_location
|
|
#encap 2 byte grue_probability
|