dhcpcd/dhcpcd-definitions.conf
Roy Marples 8f008ca7f5 Remove vis based encoding - instead expand the DHCP option encoding to a
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.
2014-10-01 18:32:03 +00:00

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