Kea  2.3.1-git
dhcp6.h File Reference
#include <stdint.h>
+ Include dependency graph for dhcp6.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ALL_DHCP_RELAY_AGENTS_AND_SERVERS   "ff02::1:2"
 
#define ALL_DHCP_SERVERS   "ff05::1:3"
 
#define CNF_MAX_DELAY   1
 
#define CNF_MAX_RD   10
 
#define CNF_MAX_RT   4
 
#define CNF_TIMEOUT   1
 
#define DEC_MAX_RC   5
 
#define DEC_TIMEOUT   1
 
#define DHCPV4_QUERY_FLAGS_UNICAST   (1 << 23)
 
#define DUID_TIME_EPOCH   946684800
 
#define HOP_COUNT_LIMIT   32
 
#define INF_MAX_DELAY   1
 
#define INF_MAX_RT   120
 
#define INF_TIMEOUT   1
 
#define IRT_DEFAULT   86400
 
#define IRT_MINIMUM   600
 
#define LQ6_MAX_RC   5
 
#define LQ6_MAX_RT   10
 
#define LQ6_TIMEOUT   1
 
#define LQ6QT_BY_ADDRESS   1
 
#define LQ6QT_BY_CLIENTID   2
 
#define REB_MAX_RT   600
 
#define REB_TIMEOUT   10
 
#define REC_MAX_RC   8
 
#define REC_TIMEOUT   2
 
#define REL_MAX_RC   5
 
#define REL_TIMEOUT   1
 
#define REN_MAX_RT   600
 
#define REN_TIMEOUT   10
 
#define REQ_MAX_RC   10
 
#define REQ_MAX_RT   30
 
#define REQ_TIMEOUT   1
 
#define RSASSA_PKCS1v1_5   1
 
#define SHA_256   1
 
#define SHA_512   2
 
#define SOL_MAX_DELAY   1
 
#define SOL_MAX_RT   120
 
#define SOL_TIMEOUT   1
 

Enumerations

enum  DHCPv6MessageType {
  DHCPV6_NOTYPE = 0, DHCPV6_SOLICIT = 1, DHCPV6_ADVERTISE = 2, DHCPV6_REQUEST = 3,
  DHCPV6_CONFIRM = 4, DHCPV6_RENEW = 5, DHCPV6_REBIND = 6, DHCPV6_REPLY = 7,
  DHCPV6_RELEASE = 8, DHCPV6_DECLINE = 9, DHCPV6_RECONFIGURE = 10, DHCPV6_INFORMATION_REQUEST = 11,
  DHCPV6_RELAY_FORW = 12, DHCPV6_RELAY_REPL = 13, DHCPV6_LEASEQUERY = 14, DHCPV6_LEASEQUERY_REPLY = 15,
  DHCPV6_LEASEQUERY_DONE = 16, DHCPV6_LEASEQUERY_DATA = 17, DHCPV6_RECONFIGURE_REQUEST = 18, DHCPV6_RECONFIGURE_REPLY = 19,
  DHCPV6_DHCPV4_QUERY = 20, DHCPV6_DHCPV4_RESPONSE = 21, DHCPV6_ACTIVELEASEQUERY = 22, DHCPV6_STARTTLS = 23,
  DHCPV6_BNDUPD = 24, DHCPV6_BNDREPLY = 25, DHCPV6_POOLREQ = 26, DHCPV6_POOLRESP = 27,
  DHCPV6_UPDREQ = 28, DHCPV6_UPDREQALL = 29, DHCPV6_UPDDONE = 30, DHCPV6_CONNECT = 31,
  DHCPV6_CONNECTREPLY = 32, DHCPV6_DISCONNECT = 33, DHCPV6_STATE = 34, DHCPV6_CONTACT = 35,
  DHCPV6_TYPES_EOF
}
 
enum  DHCPv6OptionType {
  D6O_CLIENTID = 1, D6O_SERVERID = 2, D6O_IA_NA = 3, D6O_IA_TA = 4,
  D6O_IAADDR = 5, D6O_ORO = 6, D6O_PREFERENCE = 7, D6O_ELAPSED_TIME = 8,
  D6O_RELAY_MSG = 9, D6O_AUTH = 11, D6O_UNICAST = 12, D6O_STATUS_CODE = 13,
  D6O_RAPID_COMMIT = 14, D6O_USER_CLASS = 15, D6O_VENDOR_CLASS = 16, D6O_VENDOR_OPTS = 17,
  D6O_INTERFACE_ID = 18, D6O_RECONF_MSG = 19, D6O_RECONF_ACCEPT = 20, D6O_SIP_SERVERS_DNS = 21,
  D6O_SIP_SERVERS_ADDR = 22, D6O_NAME_SERVERS = 23, D6O_DOMAIN_SEARCH = 24, D6O_IA_PD = 25,
  D6O_IAPREFIX = 26, D6O_NIS_SERVERS = 27, D6O_NISP_SERVERS = 28, D6O_NIS_DOMAIN_NAME = 29,
  D6O_NISP_DOMAIN_NAME = 30, D6O_SNTP_SERVERS = 31, D6O_INFORMATION_REFRESH_TIME = 32, D6O_BCMCS_SERVER_D = 33,
  D6O_BCMCS_SERVER_A = 34, D6O_GEOCONF_CIVIC = 36, D6O_REMOTE_ID = 37, D6O_SUBSCRIBER_ID = 38,
  D6O_CLIENT_FQDN = 39, D6O_PANA_AGENT = 40, D6O_NEW_POSIX_TIMEZONE = 41, D6O_NEW_TZDB_TIMEZONE = 42,
  D6O_ERO = 43, D6O_LQ_QUERY = 44, D6O_CLIENT_DATA = 45, D6O_CLT_TIME = 46,
  D6O_LQ_RELAY_DATA = 47, D6O_LQ_CLIENT_LINK = 48, D6O_V6_LOST = 51, D6O_CAPWAP_AC_V6 = 52,
  D6O_RELAY_ID = 53, D6O_V6_ACCESS_DOMAIN = 57, D6O_SIP_UA_CS_LIST = 58, D6O_BOOTFILE_URL = 59,
  D6O_BOOTFILE_PARAM = 60, D6O_CLIENT_ARCH_TYPE = 61, D6O_NII = 62, D6O_AFTR_NAME = 64,
  D6O_ERP_LOCAL_DOMAIN_NAME = 65, D6O_RSOO = 66, D6O_PD_EXCLUDE = 67, D6O_RDNSS_SELECTION = 74,
  D6O_CLIENT_LINKLAYER_ADDR = 79, D6O_LINK_ADDRESS = 80, D6O_SOL_MAX_RT = 82, D6O_INF_MAX_RT = 83,
  D6O_DHCPV4_MSG = 87, D6O_DHCPV4_O_DHCPV6_SERVER = 88, D6O_S46_RULE = 89, D6O_S46_BR = 90,
  D6O_S46_DMR = 91, D6O_S46_V4V6BIND = 92, D6O_S46_PORTPARAMS = 93, D6O_S46_CONT_MAPE = 94,
  D6O_S46_CONT_MAPT = 95, D6O_S46_CONT_LW = 96, D6O_V6_CAPTIVE_PORTAL = 103, D6O_RELAY_SOURCE_PORT = 135,
  D6O_IPV6_ADDRESS_ANDSF = 143
}
 
enum  DHCPv6StatusCode {
  STATUS_Success = 0, STATUS_UnspecFail = 1, STATUS_NoAddrsAvail = 2, STATUS_NoBinding = 3,
  STATUS_NotOnLink = 4, STATUS_UseMulticast = 5, STATUS_NoPrefixAvail = 6, STATUS_UnknownQueryType = 7,
  STATUS_MalformedQuery = 8, STATUS_NotConfigured = 9, STATUS_NotAllowed = 10, STATUS_AlgorithmNotSupported = 705,
  STATUS_AuthenticationFail = 706, STATUS_TimestampFail = 707, STATUS_SignatureFail = 708
}
 

Variables

const int dhcpv6_type_name_max
 
const char * dhcpv6_type_names []
 

Macro Definition Documentation

◆ ALL_DHCP_RELAY_AGENTS_AND_SERVERS

#define ALL_DHCP_RELAY_AGENTS_AND_SERVERS   "ff02::1:2"

Definition at line 295 of file dhcp6.h.

Referenced by isc::dhcp::PktFilterInet6::openSocket().

◆ ALL_DHCP_SERVERS

#define ALL_DHCP_SERVERS   "ff05::1:3"

Definition at line 296 of file dhcp6.h.

◆ CNF_MAX_DELAY

#define CNF_MAX_DELAY   1

Definition at line 312 of file dhcp6.h.

◆ CNF_MAX_RD

#define CNF_MAX_RD   10

Definition at line 315 of file dhcp6.h.

◆ CNF_MAX_RT

#define CNF_MAX_RT   4

Definition at line 314 of file dhcp6.h.

◆ CNF_TIMEOUT

#define CNF_TIMEOUT   1

Definition at line 313 of file dhcp6.h.

◆ DEC_MAX_RC

#define DEC_MAX_RC   5

Definition at line 326 of file dhcp6.h.

◆ DEC_TIMEOUT

#define DEC_TIMEOUT   1

Definition at line 325 of file dhcp6.h.

◆ DHCPV4_QUERY_FLAGS_UNICAST

#define DHCPV4_QUERY_FLAGS_UNICAST   (1 << 23)

Definition at line 355 of file dhcp6.h.

◆ DUID_TIME_EPOCH

#define DUID_TIME_EPOCH   946684800

Definition at line 347 of file dhcp6.h.

Referenced by isc::dhcp::DUIDFactory::createLLT().

◆ HOP_COUNT_LIMIT

#define HOP_COUNT_LIMIT   32

◆ INF_MAX_DELAY

#define INF_MAX_DELAY   1

Definition at line 320 of file dhcp6.h.

◆ INF_MAX_RT

#define INF_MAX_RT   120

Definition at line 322 of file dhcp6.h.

◆ INF_TIMEOUT

#define INF_TIMEOUT   1

Definition at line 321 of file dhcp6.h.

◆ IRT_DEFAULT

#define IRT_DEFAULT   86400

Definition at line 351 of file dhcp6.h.

◆ IRT_MINIMUM

#define IRT_MINIMUM   600

Definition at line 352 of file dhcp6.h.

◆ LQ6_MAX_RC

#define LQ6_MAX_RC   5

Definition at line 332 of file dhcp6.h.

◆ LQ6_MAX_RT

#define LQ6_MAX_RT   10

Definition at line 331 of file dhcp6.h.

◆ LQ6_TIMEOUT

#define LQ6_TIMEOUT   1

Definition at line 330 of file dhcp6.h.

◆ LQ6QT_BY_ADDRESS

#define LQ6QT_BY_ADDRESS   1

Definition at line 336 of file dhcp6.h.

◆ LQ6QT_BY_CLIENTID

#define LQ6QT_BY_CLIENTID   2

Definition at line 337 of file dhcp6.h.

◆ REB_MAX_RT

#define REB_MAX_RT   600

Definition at line 319 of file dhcp6.h.

◆ REB_TIMEOUT

#define REB_TIMEOUT   10

Definition at line 318 of file dhcp6.h.

◆ REC_MAX_RC

#define REC_MAX_RC   8

Definition at line 328 of file dhcp6.h.

◆ REC_TIMEOUT

#define REC_TIMEOUT   2

Definition at line 327 of file dhcp6.h.

◆ REL_MAX_RC

#define REL_MAX_RC   5

Definition at line 324 of file dhcp6.h.

◆ REL_TIMEOUT

#define REL_TIMEOUT   1

Definition at line 323 of file dhcp6.h.

◆ REN_MAX_RT

#define REN_MAX_RT   600

Definition at line 317 of file dhcp6.h.

◆ REN_TIMEOUT

#define REN_TIMEOUT   10

Definition at line 316 of file dhcp6.h.

◆ REQ_MAX_RC

#define REQ_MAX_RC   10

Definition at line 311 of file dhcp6.h.

◆ REQ_MAX_RT

#define REQ_MAX_RT   30

Definition at line 310 of file dhcp6.h.

◆ REQ_TIMEOUT

#define REQ_TIMEOUT   1

Definition at line 309 of file dhcp6.h.

◆ RSASSA_PKCS1v1_5

#define RSASSA_PKCS1v1_5   1

Definition at line 266 of file dhcp6.h.

◆ SHA_256

#define SHA_256   1

Definition at line 264 of file dhcp6.h.

◆ SHA_512

#define SHA_512   2

Definition at line 265 of file dhcp6.h.

◆ SOL_MAX_DELAY

#define SOL_MAX_DELAY   1

Definition at line 306 of file dhcp6.h.

◆ SOL_MAX_RT

#define SOL_MAX_RT   120

Definition at line 308 of file dhcp6.h.

◆ SOL_TIMEOUT

#define SOL_TIMEOUT   1

Definition at line 307 of file dhcp6.h.

Enumeration Type Documentation

◆ DHCPv6MessageType

Enumerator
DHCPV6_NOTYPE 
DHCPV6_SOLICIT 
DHCPV6_ADVERTISE 
DHCPV6_REQUEST 
DHCPV6_CONFIRM 
DHCPV6_RENEW 
DHCPV6_REBIND 
DHCPV6_REPLY 
DHCPV6_RELEASE 
DHCPV6_DECLINE 
DHCPV6_RECONFIGURE 
DHCPV6_INFORMATION_REQUEST 
DHCPV6_RELAY_FORW 
DHCPV6_RELAY_REPL 
DHCPV6_LEASEQUERY 
DHCPV6_LEASEQUERY_REPLY 
DHCPV6_LEASEQUERY_DONE 
DHCPV6_LEASEQUERY_DATA 
DHCPV6_RECONFIGURE_REQUEST 
DHCPV6_RECONFIGURE_REPLY 
DHCPV6_DHCPV4_QUERY 
DHCPV6_DHCPV4_RESPONSE 
DHCPV6_ACTIVELEASEQUERY 
DHCPV6_STARTTLS 
DHCPV6_BNDUPD 
DHCPV6_BNDREPLY 
DHCPV6_POOLREQ 
DHCPV6_POOLRESP 
DHCPV6_UPDREQ 
DHCPV6_UPDREQALL 
DHCPV6_UPDDONE 
DHCPV6_CONNECT 
DHCPV6_CONNECTREPLY 
DHCPV6_DISCONNECT 
DHCPV6_STATE 
DHCPV6_CONTACT 
DHCPV6_TYPES_EOF 

Definition at line 203 of file dhcp6.h.

◆ DHCPv6OptionType

Note
Code points in comments are those assigned by IANA but not yet implemented in Kea. To implement a standard option, remove the comment characters, add an entry in std_option_defs.h, add a stdOptionDefs6 unit test in tests/libdhcp++_unittest.cc and update dhcp6-std-options-list in the dhcp6-srv.xml source file of the user guide.
Enumerator
D6O_CLIENTID 
D6O_SERVERID 
D6O_IA_NA 
D6O_IA_TA 
D6O_IAADDR 
D6O_ORO 
D6O_PREFERENCE 
D6O_ELAPSED_TIME 
D6O_RELAY_MSG 
D6O_AUTH 
D6O_UNICAST 
D6O_STATUS_CODE 
D6O_RAPID_COMMIT 
D6O_USER_CLASS 
D6O_VENDOR_CLASS 
D6O_VENDOR_OPTS 
D6O_INTERFACE_ID 
D6O_RECONF_MSG 
D6O_RECONF_ACCEPT 
D6O_SIP_SERVERS_DNS 
D6O_SIP_SERVERS_ADDR 
D6O_NAME_SERVERS 
D6O_DOMAIN_SEARCH 
D6O_IA_PD 
D6O_IAPREFIX 
D6O_NIS_SERVERS 
D6O_NISP_SERVERS 
D6O_NIS_DOMAIN_NAME 
D6O_NISP_DOMAIN_NAME 
D6O_SNTP_SERVERS 
D6O_INFORMATION_REFRESH_TIME 
D6O_BCMCS_SERVER_D 
D6O_BCMCS_SERVER_A 
D6O_GEOCONF_CIVIC 
D6O_REMOTE_ID 
D6O_SUBSCRIBER_ID 
D6O_CLIENT_FQDN 
D6O_PANA_AGENT 
D6O_NEW_POSIX_TIMEZONE 
D6O_NEW_TZDB_TIMEZONE 
D6O_ERO 
D6O_LQ_QUERY 
D6O_CLIENT_DATA 
D6O_CLT_TIME 
D6O_LQ_RELAY_DATA 
D6O_LQ_CLIENT_LINK 
D6O_V6_LOST 
D6O_CAPWAP_AC_V6 
D6O_RELAY_ID 
D6O_V6_ACCESS_DOMAIN 
D6O_SIP_UA_CS_LIST 
D6O_BOOTFILE_URL 
D6O_BOOTFILE_PARAM 
D6O_CLIENT_ARCH_TYPE 
D6O_NII 
D6O_AFTR_NAME 
D6O_ERP_LOCAL_DOMAIN_NAME 
D6O_RSOO 
D6O_PD_EXCLUDE 
D6O_RDNSS_SELECTION 
D6O_CLIENT_LINKLAYER_ADDR 
D6O_LINK_ADDRESS 
D6O_SOL_MAX_RT 
D6O_INF_MAX_RT 
D6O_DHCPV4_MSG 
D6O_DHCPV4_O_DHCPV6_SERVER 
D6O_S46_RULE 
D6O_S46_BR 
D6O_S46_DMR 
D6O_S46_V4V6BIND 
D6O_S46_PORTPARAMS 
D6O_S46_CONT_MAPE 
D6O_S46_CONT_MAPT 
D6O_S46_CONT_LW 
D6O_V6_CAPTIVE_PORTAL 
D6O_RELAY_SOURCE_PORT 
D6O_IPV6_ADDRESS_ANDSF 

Definition at line 20 of file dhcp6.h.

◆ DHCPv6StatusCode

Enumerator
STATUS_Success 
STATUS_UnspecFail 
STATUS_NoAddrsAvail 
STATUS_NoBinding 
STATUS_NotOnLink 
STATUS_UseMulticast 
STATUS_NoPrefixAvail 
STATUS_UnknownQueryType 
STATUS_MalformedQuery 
STATUS_NotConfigured 
STATUS_NotAllowed 
STATUS_AlgorithmNotSupported 
STATUS_AuthenticationFail 
STATUS_TimestampFail 
STATUS_SignatureFail 

Definition at line 163 of file dhcp6.h.

Variable Documentation

◆ dhcpv6_type_name_max

const int dhcpv6_type_name_max

◆ dhcpv6_type_names

const char* dhcpv6_type_names[]