summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dhcpv4/dhcpv4.go10
-rw-r--r--dhcpv4/types.go301
-rw-r--r--dhcpv6/duid.go8
-rw-r--r--dhcpv6/option_archtype.go20
-rw-r--r--dhcpv6/option_nii.go12
-rw-r--r--dhcpv6/option_types.go147
-rw-r--r--dhcpv6/types.go35
7 files changed, 268 insertions, 265 deletions
diff --git a/dhcpv4/dhcpv4.go b/dhcpv4/dhcpv4.go
index 49eeae1..7ad7c79 100644
--- a/dhcpv4/dhcpv4.go
+++ b/dhcpv4/dhcpv4.go
@@ -5,10 +5,11 @@ import (
"encoding/binary"
"errors"
"fmt"
- "github.com/insomniacslk/dhcp/iana"
"log"
"net"
"strings"
+
+ "github.com/insomniacslk/dhcp/iana"
)
// HeaderSize is the DHCPv4 header size in bytes.
@@ -109,7 +110,12 @@ func NewDiscoveryForInterface(ifname string) (*DHCPv4, error) {
})
d.AddOption(Option{
Code: OptionParameterRequestList,
- Data: []byte{OptionSubnetMask, OptionRouter, OptionDomainName, OptionDomainNameServer},
+ Data: []byte{
+ byte(OptionSubnetMask),
+ byte(OptionRouter),
+ byte(OptionDomainName),
+ byte(OptionDomainNameServer),
+ },
})
// the End option has to be added explicitly
d.AddOption(Option{Code: OptionEnd})
diff --git a/dhcpv4/types.go b/dhcpv4/types.go
index e8a71f5..95bd00d 100644
--- a/dhcpv4/types.go
+++ b/dhcpv4/types.go
@@ -8,9 +8,8 @@ type OpcodeType uint8
// constants that represent valid values for OpcodeType
const (
- _ OpcodeType = iota // skip 0
- OpcodeBootRequest
- OpcodeBootReply
+ OpcodeBootRequest OpcodeType = 1
+ OpcodeBootReply OpcodeType = 2
)
// OpcodeToString maps an OpcodeType to its mnemonic name
@@ -22,165 +21,165 @@ var OpcodeToString = map[OpcodeType]string{
// DHCPv4 Options
const (
OptionPad OptionCode = 0
- OptionSubnetMask = 1
- OptionTimeOffset = 2
- OptionRouter = 3
- OptionTimeServer = 4
- OptionNameServer = 5
- OptionDomainNameServer = 6
- OptionLogServer = 7
- OptionQuoteServer = 8
- OptionLPRServer = 9
- OptionImpressServer = 10
- OptionResourceLocationServer = 11
- OptionHostName = 12
- OptionBootFileSize = 13
- OptionMeritDumpFile = 14
- OptionDomainName = 15
- OptionSwapServer = 16
- OptionRootPath = 17
- OptionExtensionsPath = 18
- OptionIPForwarding = 19
- OptionNonLocalSourceRouting = 20
- OptionPolicyFilter = 21
- OptionMaximumDatagramAssemblySize = 22
- OptionDefaultIPTTL = 23
- OptionPathMTUAgingTimeout = 24
- OptionPathMTUPlateauTable = 25
- OptionInterfaceMTU = 26
- OptionAllSubnetsAreLocal = 27
- OptionBroadcastAddress = 28
- OptionPerformMaskDiscovery = 29
- OptionMaskSupplier = 30
- OptionPerformRouterDiscovery = 31
- OptionRouterSolicitationAddress = 32
- OptionStaticRoutingTable = 33
- OptionTrailerEncapsulation = 34
- OptionArpCacheTimeout = 35
- OptionEthernetEncapsulation = 36
- OptionDefaulTCPTTL = 37
- OptionTCPKeepaliveInterval = 38
- OptionTCPKeepaliveGarbage = 39
- OptionNetworkInformationServiceDomain = 40
- OptionNetworkInformationServers = 41
- OptionNTPServers = 42
- OptionVendorSpecificInformation = 43
- OptionNetBIOSOverTCPIPNameServer = 44
- OptionNetBIOSOverTCPIPDatagramDistributionServer = 45
- OptionNetBIOSOverTCPIPNodeType = 46
- OptionNetBIOSOverTCPIPScope = 47
- OptionXWindowSystemFontServer = 48
- OptionXWindowSystemDisplayManger = 49
- OptionRequestedIPAddress = 50
- OptionIPAddressLeaseTime = 51
- OptionOptionOverload = 52
- OptionDHCPMessageType = 53
- OptionServerIdentifier = 54
- OptionParameterRequestList = 55
- OptionMessage = 56
- OptionMaximumDHCPMessageSize = 57
- OptionRenewTimeValue = 58
- OptionRebindingTimeValue = 59
- OptionClassIdentifier = 60
- OptionClientIdentifier = 61
- OptionNetWareIPDomainName = 62
- OptionNetWareIPInformation = 63
- OptionNetworkInformationServicePlusDomain = 64
- OptionNetworkInformationServicePlusServers = 65
- OptionTFTPServerName = 66
- OptionBootfileName = 67
- OptionMobileIPHomeAgent = 68
- OptionSimpleMailTransportProtocolServer = 69
- OptionPostOfficeProtocolServer = 70
- OptionNetworkNewsTransportProtocolServer = 71
- OptionDefaultWorldWideWebServer = 72
- OptionDefaultFingerServer = 73
- OptionDefaultInternetRelayChatServer = 74
- OptionStreetTalkServer = 75
- OptionStreetTalkDirectoryAssistanceServer = 76
- OptionUserClassInformation = 77
- OptionSLPDirectoryAgent = 78
- OptionSLPServiceScope = 79
- OptionRapidCommit = 80
- OptionFQDN = 81
- OptionRelayAgentInformation = 82
- OptionInternetStorageNameService = 83
+ OptionSubnetMask OptionCode = 1
+ OptionTimeOffset OptionCode = 2
+ OptionRouter OptionCode = 3
+ OptionTimeServer OptionCode = 4
+ OptionNameServer OptionCode = 5
+ OptionDomainNameServer OptionCode = 6
+ OptionLogServer OptionCode = 7
+ OptionQuoteServer OptionCode = 8
+ OptionLPRServer OptionCode = 9
+ OptionImpressServer OptionCode = 10
+ OptionResourceLocationServer OptionCode = 11
+ OptionHostName OptionCode = 12
+ OptionBootFileSize OptionCode = 13
+ OptionMeritDumpFile OptionCode = 14
+ OptionDomainName OptionCode = 15
+ OptionSwapServer OptionCode = 16
+ OptionRootPath OptionCode = 17
+ OptionExtensionsPath OptionCode = 18
+ OptionIPForwarding OptionCode = 19
+ OptionNonLocalSourceRouting OptionCode = 20
+ OptionPolicyFilter OptionCode = 21
+ OptionMaximumDatagramAssemblySize OptionCode = 22
+ OptionDefaultIPTTL OptionCode = 23
+ OptionPathMTUAgingTimeout OptionCode = 24
+ OptionPathMTUPlateauTable OptionCode = 25
+ OptionInterfaceMTU OptionCode = 26
+ OptionAllSubnetsAreLocal OptionCode = 27
+ OptionBroadcastAddress OptionCode = 28
+ OptionPerformMaskDiscovery OptionCode = 29
+ OptionMaskSupplier OptionCode = 30
+ OptionPerformRouterDiscovery OptionCode = 31
+ OptionRouterSolicitationAddress OptionCode = 32
+ OptionStaticRoutingTable OptionCode = 33
+ OptionTrailerEncapsulation OptionCode = 34
+ OptionArpCacheTimeout OptionCode = 35
+ OptionEthernetEncapsulation OptionCode = 36
+ OptionDefaulTCPTTL OptionCode = 37
+ OptionTCPKeepaliveInterval OptionCode = 38
+ OptionTCPKeepaliveGarbage OptionCode = 39
+ OptionNetworkInformationServiceDomain OptionCode = 40
+ OptionNetworkInformationServers OptionCode = 41
+ OptionNTPServers OptionCode = 42
+ OptionVendorSpecificInformation OptionCode = 43
+ OptionNetBIOSOverTCPIPNameServer OptionCode = 44
+ OptionNetBIOSOverTCPIPDatagramDistributionServer OptionCode = 45
+ OptionNetBIOSOverTCPIPNodeType OptionCode = 46
+ OptionNetBIOSOverTCPIPScope OptionCode = 47
+ OptionXWindowSystemFontServer OptionCode = 48
+ OptionXWindowSystemDisplayManger OptionCode = 49
+ OptionRequestedIPAddress OptionCode = 50
+ OptionIPAddressLeaseTime OptionCode = 51
+ OptionOptionOverload OptionCode = 52
+ OptionDHCPMessageType OptionCode = 53
+ OptionServerIdentifier OptionCode = 54
+ OptionParameterRequestList OptionCode = 55
+ OptionMessage OptionCode = 56
+ OptionMaximumDHCPMessageSize OptionCode = 57
+ OptionRenewTimeValue OptionCode = 58
+ OptionRebindingTimeValue OptionCode = 59
+ OptionClassIdentifier OptionCode = 60
+ OptionClientIdentifier OptionCode = 61
+ OptionNetWareIPDomainName OptionCode = 62
+ OptionNetWareIPInformation OptionCode = 63
+ OptionNetworkInformationServicePlusDomain OptionCode = 64
+ OptionNetworkInformationServicePlusServers OptionCode = 65
+ OptionTFTPServerName OptionCode = 66
+ OptionBootfileName OptionCode = 67
+ OptionMobileIPHomeAgent OptionCode = 68
+ OptionSimpleMailTransportProtocolServer OptionCode = 69
+ OptionPostOfficeProtocolServer OptionCode = 70
+ OptionNetworkNewsTransportProtocolServer OptionCode = 71
+ OptionDefaultWorldWideWebServer OptionCode = 72
+ OptionDefaultFingerServer OptionCode = 73
+ OptionDefaultInternetRelayChatServer OptionCode = 74
+ OptionStreetTalkServer OptionCode = 75
+ OptionStreetTalkDirectoryAssistanceServer OptionCode = 76
+ OptionUserClassInformation OptionCode = 77
+ OptionSLPDirectoryAgent OptionCode = 78
+ OptionSLPServiceScope OptionCode = 79
+ OptionRapidCommit OptionCode = 80
+ OptionFQDN OptionCode = 81
+ OptionRelayAgentInformation OptionCode = 82
+ OptionInternetStorageNameService OptionCode = 83
// Option 84 returned in RFC 3679
- OptionNDSServers = 85
- OptionNDSTreeName = 86
- OptionNDSContext = 87
- OptionBCMCSControllerDomainNameList = 88
- OptionBCMCSControllerIPv4AddressList = 89
- OptionAuthentication = 90
- OptionClientLastTransactionTime = 91
- OptionAssociatedIP = 92
- OptionClientSystemArchitectureType = 93
- OptionClientNetworkInterfaceIdentifier = 94
- OptionLDAP = 95
+ OptionNDSServers OptionCode = 85
+ OptionNDSTreeName OptionCode = 86
+ OptionNDSContext OptionCode = 87
+ OptionBCMCSControllerDomainNameList OptionCode = 88
+ OptionBCMCSControllerIPv4AddressList OptionCode = 89
+ OptionAuthentication OptionCode = 90
+ OptionClientLastTransactionTime OptionCode = 91
+ OptionAssociatedIP OptionCode = 92
+ OptionClientSystemArchitectureType OptionCode = 93
+ OptionClientNetworkInterfaceIdentifier OptionCode = 94
+ OptionLDAP OptionCode = 95
// Option 96 returned in RFC 3679
- OptionClientMachineIdentifier = 97
- OptionOpenGroupUserAuthentication = 98
- OptionGeoConfCivic = 99
- OptionIEEE10031TZString = 100
- OptionReferenceToTZDatabase = 101
+ OptionClientMachineIdentifier OptionCode = 97
+ OptionOpenGroupUserAuthentication OptionCode = 98
+ OptionGeoConfCivic OptionCode = 99
+ OptionIEEE10031TZString OptionCode = 100
+ OptionReferenceToTZDatabase OptionCode = 101
// Options 102-111 returned in RFC 3679
- OptionNetInfoParentServerAddress = 112
- OptionNetInfoParentServerTag = 113
- OptionURL = 114
+ OptionNetInfoParentServerAddress OptionCode = 112
+ OptionNetInfoParentServerTag OptionCode = 113
+ OptionURL OptionCode = 114
// Option 115 returned in RFC 3679
- OptionAutoConfigure = 116
- OptionNameServiceSearch = 117
- OptionSubnetSelection = 118
- OptionDNSDomainSearchList = 119
- OptionSIPServersDHCPOption = 120
- OptionClasslessStaticRouteOption = 121
- OptionCCC = 122
- OptionGeoConf = 123
- OptionVendorIdentifyingVendorClass = 124
- OptionVendorIdentifyingVendorSpecific = 125
+ OptionAutoConfigure OptionCode = 116
+ OptionNameServiceSearch OptionCode = 117
+ OptionSubnetSelection OptionCode = 118
+ OptionDNSDomainSearchList OptionCode = 119
+ OptionSIPServersDHCPOption OptionCode = 120
+ OptionClasslessStaticRouteOption OptionCode = 121
+ OptionCCC OptionCode = 122
+ OptionGeoConf OptionCode = 123
+ OptionVendorIdentifyingVendorClass OptionCode = 124
+ OptionVendorIdentifyingVendorSpecific OptionCode = 125
// Options 126-127 returned in RFC 3679
- OptionTFTPServerIPAddress = 128
- OptionCallServerIPAddress = 129
- OptionDiscriminationString = 130
- OptionRemoteStatisticsServerIPAddress = 131
- Option8021PVLANID = 132
- Option8021QL2Priority = 133
- OptionDiffservCodePoint = 134
- OptionHTTPProxyForPhoneSpecificApplications = 135
- OptionPANAAuthenticationAgent = 136
- OptionLoSTServer = 137
- OptionCAPWAPAccessControllerAddresses = 138
- OptionOPTIONIPv4AddressMoS = 139
- OptionOPTIONIPv4FQDNMoS = 140
- OptionSIPUAConfigurationServiceDomains = 141
- OptionOPTIONIPv4AddressANDSF = 142
- OptionOPTIONIPv6AddressANDSF = 143
+ OptionTFTPServerIPAddress OptionCode = 128
+ OptionCallServerIPAddress OptionCode = 129
+ OptionDiscriminationString OptionCode = 130
+ OptionRemoteStatisticsServerIPAddress OptionCode = 131
+ Option8021PVLANID OptionCode = 132
+ Option8021QL2Priority OptionCode = 133
+ OptionDiffservCodePoint OptionCode = 134
+ OptionHTTPProxyForPhoneSpecificApplications OptionCode = 135
+ OptionPANAAuthenticationAgent OptionCode = 136
+ OptionLoSTServer OptionCode = 137
+ OptionCAPWAPAccessControllerAddresses OptionCode = 138
+ OptionOPTIONIPv4AddressMoS OptionCode = 139
+ OptionOPTIONIPv4FQDNMoS OptionCode = 140
+ OptionSIPUAConfigurationServiceDomains OptionCode = 141
+ OptionOPTIONIPv4AddressANDSF OptionCode = 142
+ OptionOPTIONIPv6AddressANDSF OptionCode = 143
// Options 144-149 returned in RFC 3679
- OptionTFTPServerAddress = 150
- OptionStatusCode = 151
- OptionBaseTime = 152
- OptionStartTimeOfState = 153
- OptionQueryStartTime = 154
- OptionQueryEndTime = 155
- OptionDHCPState = 156
- OptionDataSource = 157
+ OptionTFTPServerAddress OptionCode = 150
+ OptionStatusCode OptionCode = 151
+ OptionBaseTime OptionCode = 152
+ OptionStartTimeOfState OptionCode = 153
+ OptionQueryStartTime OptionCode = 154
+ OptionQueryEndTime OptionCode = 155
+ OptionDHCPState OptionCode = 156
+ OptionDataSource OptionCode = 157
// Options 158-174 returned in RFC 3679
- OptionEtherboot = 175
- OptionIPTelephone = 176
- OptionEtherbootPacketCableAndCableHome = 177
+ OptionEtherboot OptionCode = 175
+ OptionIPTelephone OptionCode = 176
+ OptionEtherbootPacketCableAndCableHome OptionCode = 177
// Options 178-207 returned in RFC 3679
- OptionPXELinuxMagicString = 208
- OptionPXELinuxConfigFile = 209
- OptionPXELinuxPathPrefix = 210
- OptionPXELinuxRebootTime = 211
- OptionOPTION6RD = 212
- OptionOPTIONv4AccessDomain = 213
+ OptionPXELinuxMagicString OptionCode = 208
+ OptionPXELinuxConfigFile OptionCode = 209
+ OptionPXELinuxPathPrefix OptionCode = 210
+ OptionPXELinuxRebootTime OptionCode = 211
+ OptionOPTION6RD OptionCode = 212
+ OptionOPTIONv4AccessDomain OptionCode = 213
// Options 214-219 returned in RFC 3679
- OptionSubnetAllocation = 220
- OptionVirtualSubnetAllocation = 221
+ OptionSubnetAllocation OptionCode = 220
+ OptionVirtualSubnetAllocation OptionCode = 221
// Options 222-223 returned in RFC 3679
// Options 224-254 are reserved for private use
- OptionEnd = 255
+ OptionEnd OptionCode = 255
)
// OptionCodeToString maps an OptionCode to its mnemonic name
diff --git a/dhcpv6/duid.go b/dhcpv6/duid.go
index e3da8ff..112412d 100644
--- a/dhcpv6/duid.go
+++ b/dhcpv6/duid.go
@@ -3,16 +3,16 @@ package dhcpv6
import (
"encoding/binary"
"fmt"
+
"github.com/insomniacslk/dhcp/iana"
)
type DuidType uint16
const (
- _ DuidType = iota
- DUID_LLT
- DUID_EN
- DUID_LL
+ DUID_LLT DuidType = 1
+ DUID_EN DuidType = 2
+ DUID_LL DuidType = 3
)
var DuidTypeToString = map[DuidType]string{
diff --git a/dhcpv6/option_archtype.go b/dhcpv6/option_archtype.go
index 71f67ff..734d89e 100644
--- a/dhcpv6/option_archtype.go
+++ b/dhcpv6/option_archtype.go
@@ -12,16 +12,16 @@ type ArchType uint16
// see rfc4578
const (
- INTEL_X86PC ArchType = iota
- NEC_PC98
- EFI_ITANIUM
- DEC_ALPHA
- ARC_X86
- INTEL_LEAN_CLIENT
- EFI_IA32
- EFI_BC
- EFI_XSCALE
- EFI_X86_64
+ INTEL_X86PC ArchType = 0
+ NEC_PC98 ArchType = 1
+ EFI_ITANIUM ArchType = 2
+ DEC_ALPHA ArchType = 3
+ ARC_X86 ArchType = 4
+ INTEL_LEAN_CLIENT ArchType = 5
+ EFI_IA32 ArchType = 6
+ EFI_BC ArchType = 7
+ EFI_XSCALE ArchType = 8
+ EFI_X86_64 ArchType = 9
)
var ArchTypeToStringMap = map[ArchType]string{
diff --git a/dhcpv6/option_nii.go b/dhcpv6/option_nii.go
index 85c9d4b..3a838ee 100644
--- a/dhcpv6/option_nii.go
+++ b/dhcpv6/option_nii.go
@@ -10,12 +10,12 @@ import (
// see rfc4578
const (
- NII_LANDESK_NOPXE = iota
- NII_PXE_GEN_I
- NII_PXE_GEN_II
- NII_UNDI_NOEFI
- NII_UNDI_EFI_GEN_I
- NII_UNDI_EFI_GEN_II
+ NII_LANDESK_NOPXE = 0
+ NII_PXE_GEN_I = 1
+ NII_PXE_GEN_II = 2
+ NII_UNDI_NOEFI = 3
+ NII_UNDI_EFI_GEN_I = 4
+ NII_UNDI_EFI_GEN_II = 5
)
var NIIToStringMap = map[uint8]string{
diff --git a/dhcpv6/option_types.go b/dhcpv6/option_types.go
index 0229b86..d3b9d7f 100644
--- a/dhcpv6/option_types.go
+++ b/dhcpv6/option_types.go
@@ -2,80 +2,79 @@ package dhcpv6
// FIXME: rename all the options to have a consistent name, e.g. OPT_<NAME>
const (
- _ OptionCode = iota // skip 0
- OPTION_CLIENTID
- OPTION_SERVERID
- OPTION_IA_NA
- OPTION_IA_TA
- OPTION_IAADDR
- OPTION_ORO
- OPTION_PREFERENCE
- OPTION_ELAPSED_TIME
- OPTION_RELAY_MSG
- _ // skip 10
- OPTION_AUTH
- OPTION_UNICAST
- OPTION_STATUS_CODE
- OPTION_RAPID_COMMIT
- OPTION_USER_CLASS
- OPTION_VENDOR_CLASS
- OPTION_VENDOR_OPTS
- OPTION_INTERFACE_ID
- OPTION_RECONF_MSG
- OPTION_RECONF_ACCEPT
- SIP_SERVERS_DOMAIN_NAME_LIST
- SIP_SERVERS_IPV6_ADDRESS_LIST
- DNS_RECURSIVE_NAME_SERVER
- DOMAIN_SEARCH_LIST
- OPTION_IA_PD
- OPTION_IAPREFIX
- OPTION_NIS_SERVERS
- OPTION_NISP_SERVERS
- OPTION_NIS_DOMAIN_NAME
- OPTION_NISP_DOMAIN_NAME
- SNTP_SERVER_LIST
- INFORMATION_REFRESH_TIME
- BCMCS_CONTROLLER_DOMAIN_NAME_LIST
- BCMCS_CONTROLLER_IPV6_ADDRESS_LIST
- _ // skip 35
- OPTION_GEOCONF_CIVIC
- OPTION_REMOTE_ID
- RELAY_AGENT_SUBSCRIBER_ID
- FQDN
- PANA_AUTHENTICATION_AGENT
- OPTION_NEW_POSIX_TIMEZONE
- OPTION_NEW_TZDB_TIMEZONE
- ECHO_REQUEST
- OPTION_LQ_QUERY
- OPTION_CLIENT_DATA
- OPTION_CLT_TIME
- OPTION_LQ_RELAY_DATA
- OPTION_LQ_CLIENT_LINK
- MIPV6_HOME_NETWORK_ID_FQDN
- MIPV6_VISITED_HOME_NETWORK_INFORMATION
- LOST_SERVER
- CAPWAP_ACCESS_CONTROLLER_ADDRESSES
- RELAY_ID
- OPTION_IPV6_ADDRESS_MOS
- OPTION_IPV6_FQDN_MOS
- OPTION_NTP_SERVER
- OPTION_V6_ACCESS_DOMAIN
- OPTION_SIP_UA_CS_LIST
- OPT_BOOTFILE_URL
- OPT_BOOTFILE_PARAM
- OPTION_CLIENT_ARCH_TYPE
- OPTION_NII
- OPTION_GEOLOCATION
- OPTION_AFTR_NAME
- OPTION_ERP_LOCAL_DOMAIN_NAME
- OPTION_RSOO
- OPTION_PD_EXCLUDE
- VIRTUAL_SUBNET_SELECTION
- MIPV6_IDENTIFIED_HOME_NETWORK_INFORMATION
- MIPV6_UNRESTRICTED_HOME_NETWORK_INFORMATION
- MIPV6_HOME_NETWORK_PREFIX
- MIPV6_HOME_AGENT_ADDRESS
- MIPV6_HOME_AGENT_FQDN
+ OPTION_CLIENTID OptionCode = 1
+ OPTION_SERVERID OptionCode = 2
+ OPTION_IA_NA OptionCode = 3
+ OPTION_IA_TA OptionCode = 4
+ OPTION_IAADDR OptionCode = 5
+ OPTION_ORO OptionCode = 6
+ OPTION_PREFERENCE OptionCode = 7
+ OPTION_ELAPSED_TIME OptionCode = 8
+ OPTION_RELAY_MSG OptionCode = 9
+ _ // skip 10
+ OPTION_AUTH OptionCode = 11
+ OPTION_UNICAST OptionCode = 12
+ OPTION_STATUS_CODE OptionCode = 13
+ OPTION_RAPID_COMMIT OptionCode = 14
+ OPTION_USER_CLASS OptionCode = 15
+ OPTION_VENDOR_CLASS OptionCode = 16
+ OPTION_VENDOR_OPTS OptionCode = 17
+ OPTION_INTERFACE_ID OptionCode = 18
+ OPTION_RECONF_MSG OptionCode = 19
+ OPTION_RECONF_ACCEPT OptionCode = 20
+ SIP_SERVERS_DOMAIN_NAME_LIST OptionCode = 21
+ SIP_SERVERS_IPV6_ADDRESS_LIST OptionCode = 22
+ DNS_RECURSIVE_NAME_SERVER OptionCode = 23
+ DOMAIN_SEARCH_LIST OptionCode = 24
+ OPTION_IA_PD OptionCode = 25
+ OPTION_IAPREFIX OptionCode = 26
+ OPTION_NIS_SERVERS OptionCode = 27
+ OPTION_NISP_SERVERS OptionCode = 28
+ OPTION_NIS_DOMAIN_NAME OptionCode = 29
+ OPTION_NISP_DOMAIN_NAME OptionCode = 30
+ SNTP_SERVER_LIST OptionCode = 31
+ INFORMATION_REFRESH_TIME OptionCode = 32
+ BCMCS_CONTROLLER_DOMAIN_NAME_LIST OptionCode = 33
+ BCMCS_CONTROLLER_IPV6_ADDRESS_LIST OptionCode = 34
+ _ // skip 35
+ OPTION_GEOCONF_CIVIC OptionCode = 36
+ OPTION_REMOTE_ID OptionCode = 37
+ RELAY_AGENT_SUBSCRIBER_ID OptionCode = 38
+ FQDN OptionCode = 39
+ PANA_AUTHENTICATION_AGENT OptionCode = 40
+ OPTION_NEW_POSIX_TIMEZONE OptionCode = 41
+ OPTION_NEW_TZDB_TIMEZONE OptionCode = 42
+ ECHO_REQUEST OptionCode = 43
+ OPTION_LQ_QUERY OptionCode = 44
+ OPTION_CLIENT_DATA OptionCode = 45
+ OPTION_CLT_TIME OptionCode = 46
+ OPTION_LQ_RELAY_DATA OptionCode = 47
+ OPTION_LQ_CLIENT_LINK OptionCode = 48
+ MIPV6_HOME_NETWORK_ID_FQDN OptionCode = 49
+ MIPV6_VISITED_HOME_NETWORK_INFORMATION OptionCode = 50
+ LOST_SERVER OptionCode = 51
+ CAPWAP_ACCESS_CONTROLLER_ADDRESSES OptionCode = 52
+ RELAY_ID OptionCode = 53
+ OPTION_IPV6_ADDRESS_MOS OptionCode = 54
+ OPTION_IPV6_FQDN_MOS OptionCode = 55
+ OPTION_NTP_SERVER OptionCode = 56
+ OPTION_V6_ACCESS_DOMAIN OptionCode = 57
+ OPTION_SIP_UA_CS_LIST OptionCode = 58
+ OPT_BOOTFILE_URL OptionCode = 59
+ OPT_BOOTFILE_PARAM OptionCode = 60
+ OPTION_CLIENT_ARCH_TYPE OptionCode = 61
+ OPTION_NII OptionCode = 62
+ OPTION_GEOLOCATION OptionCode = 63
+ OPTION_AFTR_NAME OptionCode = 64
+ OPTION_ERP_LOCAL_DOMAIN_NAME OptionCode = 65
+ OPTION_RSOO OptionCode = 66
+ OPTION_PD_EXCLUDE OptionCode = 67
+ VIRTUAL_SUBNET_SELECTION OptionCode = 68
+ MIPV6_IDENTIFIED_HOME_NETWORK_INFORMATION OptionCode = 69
+ MIPV6_UNRESTRICTED_HOME_NETWORK_INFORMATION OptionCode = 70
+ MIPV6_HOME_NETWORK_PREFIX OptionCode = 71
+ MIPV6_HOME_AGENT_ADDRESS OptionCode = 72
+ MIPV6_HOME_AGENT_FQDN OptionCode = 73
)
var OptionCodeToString = map[OptionCode]string{
diff --git a/dhcpv6/types.go b/dhcpv6/types.go
index e0ea6f0..bbe4c5b 100644
--- a/dhcpv6/types.go
+++ b/dhcpv6/types.go
@@ -5,24 +5,23 @@ package dhcpv6
type MessageType uint8
const (
- _ MessageType = iota // skip 0
- SOLICIT
- ADVERTISE
- REQUEST
- CONFIRM
- RENEW
- REBIND
- REPLY
- RELEASE
- DECLINE
- RECONFIGURE
- INFORMATION_REQUEST
- RELAY_FORW
- RELAY_REPL
- LEASEQUERY
- LEASEQUERY_REPLY
- LEASEQUERY_DONE
- LEASEQUERY_DATA
+ SOLICIT MessageType = 1
+ ADVERTISE MessageType = 2
+ REQUEST MessageType = 3
+ CONFIRM MessageType = 4
+ RENEW MessageType = 5
+ REBIND MessageType = 6
+ REPLY MessageType = 7
+ RELEASE MessageType = 8
+ DECLINE MessageType = 9
+ RECONFIGURE MessageType = 10
+ INFORMATION_REQUEST MessageType = 11
+ RELAY_FORW MessageType = 12
+ RELAY_REPL MessageType = 13
+ LEASEQUERY MessageType = 14
+ LEASEQUERY_REPLY MessageType = 15
+ LEASEQUERY_DONE MessageType = 16
+ LEASEQUERY_DATA MessageType = 17
)
func MessageTypeToString(t MessageType) string {