package dhcpv6

// All DHCPv6 options.
const (
	OptionClientID    OptionCode = 1
	OptionServerID    OptionCode = 2
	OptionIANA        OptionCode = 3
	OptionIATA        OptionCode = 4
	OptionIAAddr      OptionCode = 5
	OptionORO         OptionCode = 6
	OptionPreference  OptionCode = 7
	OptionElapsedTime OptionCode = 8
	OptionRelayMsg    OptionCode = 9
	// skip 10
	OptionAuth                           OptionCode = 11
	OptionUnicast                        OptionCode = 12
	OptionStatusCode                     OptionCode = 13
	OptionRapidCommit                    OptionCode = 14
	OptionUserClass                      OptionCode = 15
	OptionVendorClass                    OptionCode = 16
	OptionVendorOpts                     OptionCode = 17
	OptionInterfaceID                    OptionCode = 18
	OptionReconfMessage                  OptionCode = 19
	OptionReconfAccept                   OptionCode = 20
	OptionSIPServersDomainNameList       OptionCode = 21
	OptionSIPServersIPv6AddressList      OptionCode = 22
	OptionDNSRecursiveNameServer         OptionCode = 23
	OptionDomainSearchList               OptionCode = 24
	OptionIAPD                           OptionCode = 25
	OptionIAPrefix                       OptionCode = 26
	OptionNISServers                     OptionCode = 27
	OptionNISPServers                    OptionCode = 28
	OptionNISDomainName                  OptionCode = 29
	OptionNISPDomainName                 OptionCode = 30
	OptionSNTPServerList                 OptionCode = 31
	OptionInformationRefreshTime         OptionCode = 32
	OptionBCMCSControllerDomainNameList  OptionCode = 33
	OptionBCMCSControllerIPv6AddressList OptionCode = 34
	// skip 35
	OptionGeoConfCivic                            OptionCode = 36
	OptionRemoteID                                OptionCode = 37
	OptionRelayAgentSubscriberID                  OptionCode = 38
	OptionFQDN                                    OptionCode = 39
	OptionPANAAuthenticationAgent                 OptionCode = 40
	OptionNewPOSIXTimezone                        OptionCode = 41
	OptionNewTZDBTimezone                         OptionCode = 42
	OptionEchoRequest                             OptionCode = 43
	OptionLQQuery                                 OptionCode = 44
	OptionClientData                              OptionCode = 45
	OptionCLTTime                                 OptionCode = 46
	OptionLQRelayData                             OptionCode = 47
	OptionLQClientLink                            OptionCode = 48
	OptionMIPv6HomeNetworkIDFQDN                  OptionCode = 49
	OptionMIPv6VisitedHomeNetworkInformation      OptionCode = 50
	OptionLoSTServer                              OptionCode = 51
	OptionCAPWAPAccessControllerAddresses         OptionCode = 52
	OptionRelayID                                 OptionCode = 53
	OptionIPv6AddressMOS                          OptionCode = 54
	OptionIPv6FQDNMOS                             OptionCode = 55
	OptionNTPServer                               OptionCode = 56
	OptionV6AccessDomain                          OptionCode = 57
	OptionSIPUACSList                             OptionCode = 58
	OptionBootfileURL                             OptionCode = 59
	OptionBootfileParam                           OptionCode = 60
	OptionClientArchType                          OptionCode = 61
	OptionNII                                     OptionCode = 62
	OptionGeolocation                             OptionCode = 63
	OptionAFTRName                                OptionCode = 64
	OptionERPLocalDomainName                      OptionCode = 65
	OptionRSOO                                    OptionCode = 66
	OptionPDExclude                               OptionCode = 67
	OptionVirtualSubnetSelection                  OptionCode = 68
	OptionMIPv6IdentifiedHomeNetworkInformation   OptionCode = 69
	OptionMIPv6UnrestrictedHomeNetworkInformation OptionCode = 70
	OptionMIPv6HomeNetworkPrefix                  OptionCode = 71
	OptionMIPv6HomeAgentAddress                   OptionCode = 72
	OptionMIPv6HomeAgentFQDN                      OptionCode = 73
)

// OptionCodeToString maps DHCPv6 OptionCodes to human-readable strings.
var OptionCodeToString = map[OptionCode]string{
	OptionClientID:                                "OPTION_CLIENTID",
	OptionServerID:                                "OPTION_SERVERID",
	OptionIANA:                                    "OPTION_IA_NA",
	OptionIATA:                                    "OPTION_IA_TA",
	OptionIAAddr:                                  "OPTION_IAADDR",
	OptionORO:                                     "OPTION_ORO",
	OptionPreference:                              "OPTION_PREFERENCE",
	OptionElapsedTime:                             "OPTION_ELAPSED_TIME",
	OptionRelayMsg:                                "OPTION_RELAY_MSG",
	OptionAuth:                                    "OPTION_AUTH",
	OptionUnicast:                                 "OPTION_UNICAST",
	OptionStatusCode:                              "OPTION_STATUS_CODE",
	OptionRapidCommit:                             "OPTION_RAPID_COMMIT",
	OptionUserClass:                               "OPTION_USER_CLASS",
	OptionVendorClass:                             "OPTION_VENDOR_CLASS",
	OptionVendorOpts:                              "OPTION_VENDOR_OPTS",
	OptionInterfaceID:                             "OPTION_INTERFACE_ID",
	OptionReconfMessage:                           "OPTION_RECONF_MSG",
	OptionReconfAccept:                            "OPTION_RECONF_ACCEPT",
	OptionSIPServersDomainNameList:                "SIP Servers Domain Name List",
	OptionSIPServersIPv6AddressList:               "SIP Servers IPv6 Address List",
	OptionDNSRecursiveNameServer:                  "DNS Recursive Name Server",
	OptionDomainSearchList:                        "Domain Search List",
	OptionIAPD:                                    "OPTION_IA_PD",
	OptionIAPrefix:                                "OPTION_IAPREFIX",
	OptionNISServers:                              "OPTION_NIS_SERVERS",
	OptionNISPServers:                             "OPTION_NISP_SERVERS",
	OptionNISDomainName:                           "OPTION_NIS_DOMAIN_NAME",
	OptionNISPDomainName:                          "OPTION_NISP_DOMAIN_NAME",
	OptionSNTPServerList:                          "SNTP Server List",
	OptionInformationRefreshTime:                  "Information Refresh Time",
	OptionBCMCSControllerDomainNameList:           "BCMCS Controller Domain Name List",
	OptionBCMCSControllerIPv6AddressList:          "BCMCS Controller IPv6 Address List",
	OptionGeoConfCivic:                            "OPTION_GEOCONF",
	OptionRemoteID:                                "OPTION_REMOTE_ID",
	OptionRelayAgentSubscriberID:                  "Relay-Agent Subscriber ID",
	OptionFQDN:                                    "FQDN",
	OptionPANAAuthenticationAgent:                 "PANA Authentication Agent",
	OptionNewPOSIXTimezone:                        "OPTION_NEW_POSIX_TIME_ZONE",
	OptionNewTZDBTimezone:                         "OPTION_NEW_TZDB_TIMEZONE",
	OptionEchoRequest:                             "Echo Request",
	OptionLQQuery:                                 "OPTION_LQ_QUERY",
	OptionClientData:                              "OPTION_CLIENT_DATA",
	OptionCLTTime:                                 "OPTION_CLT_TIME",
	OptionLQRelayData:                             "OPTION_LQ_RELAY_DATA",
	OptionLQClientLink:                            "OPTION_LQ_CLIENT_LINK",
	OptionMIPv6HomeNetworkIDFQDN:                  "MIPv6 Home Network ID FQDN",
	OptionMIPv6VisitedHomeNetworkInformation:      "MIPv6 Visited Home Network Information",
	OptionLoSTServer:                              "LoST Server",
	OptionCAPWAPAccessControllerAddresses:         "CAPWAP Access Controller Addresses",
	OptionRelayID:                                 "RELAY_ID",
	OptionIPv6AddressMOS:                          "OPTION-IPv6_Address-MoS",
	OptionIPv6FQDNMOS:                             "OPTION-IPv6-FQDN-MoS",
	OptionNTPServer:                               "OPTION_NTP_SERVER",
	OptionV6AccessDomain:                          "OPTION_V6_ACCESS_DOMAIN",
	OptionSIPUACSList:                             "OPTION_SIP_UA_CS_LIST",
	OptionBootfileURL:                             "OPT_BOOTFILE_URL",
	OptionBootfileParam:                           "OPT_BOOTFILE_PARAM",
	OptionClientArchType:                          "OPTION_CLIENT_ARCH_TYPE",
	OptionNII:                                     "OPTION_NII",
	OptionGeolocation:                             "OPTION_GEOLOCATION",
	OptionAFTRName:                                "OPTION_AFTR_NAME",
	OptionERPLocalDomainName:                      "OPTION_ERP_LOCAL_DOMAIN_NAME",
	OptionRSOO:                                    "OPTION_RSOO",
	OptionPDExclude:                               "OPTION_PD_EXCLUDE",
	OptionVirtualSubnetSelection:                  "Virtual Subnet Selection",
	OptionMIPv6IdentifiedHomeNetworkInformation:   "MIPv6 Identified Home Network Information",
	OptionMIPv6UnrestrictedHomeNetworkInformation: "MIPv6 Unrestricted Home Network Information",
	OptionMIPv6HomeNetworkPrefix:                  "MIPv6 Home Network Prefix",
	OptionMIPv6HomeAgentAddress:                   "MIPv6 Home Agent Address",
	OptionMIPv6HomeAgentFQDN:                      "MIPv6 Home Agent FQDN",
}