44#define DHCPV6_ALL_RELAY_AGENTS_AND_SERVERS { 0xff, 0x02, 0x00, 0x00, \ 
   45                                              0x00, 0x00, 0x00, 0x00, \ 
   46                                              0x00, 0x00, 0x00, 0x00, \ 
   47                                              0x00, 0x01, 0x00, 0x02  \ 
 
   57#define DHCPV6_SOL_MAX_DELAY        (1U)     
   58#define DHCPV6_SOL_TIMEOUT          (1U)     
   59#define DHCPV6_SOL_MAX_RT           (3600U)  
   61#define DHCPV6_REQ_TIMEOUT          (1U)     
   62#define DHCPV6_REQ_MAX_RT           (30U)    
   63#define DHCPV6_REQ_MAX_RC           (10U)    
   65#define DHCPV6_REN_TIMEOUT          (10U)    
   66#define DHCPV6_REN_MAX_RT           (600U)   
   68#define DHCPV6_REB_TIMEOUT          (10U)    
   69#define DHCPV6_REB_MAX_RT           (600U)   
   71#define DHCPV6_INF_MAX_DELAY        (1U)     
   72#define DHCPV6_INF_TIMEOUT          (1U)     
   73#define DHCPV6_INF_MAX_RT           (3600U)  
   75#define DHCPV6_IRT_DEFAULT          (86400U)  
   76#define DHCPV6_IRT_MINIMUM          (600U)    
   80#define DHCPV6_DUID_MAX_LEN         (128U)   
   91typedef struct __attribute__((packed)) {
 
 
  101typedef struct __attribute__((packed)) {
 
 
  134typedef struct __attribute__((packed)) {
 
 
  147typedef struct __attribute__((packed)) {
 
 
  159typedef struct __attribute__((packed)) {
 
 
  173typedef struct __attribute__((packed)) {
 
 
  187typedef struct __attribute__((packed)) {
 
 
  198typedef struct __attribute__((packed)) {
 
 
  210typedef struct __attribute__((packed)) {
 
 
  224typedef struct __attribute__((packed)) {
 
 
  235typedef struct __attribute__((packed)) {
 
 
  247typedef struct __attribute__((packed)) {
 
 
  259typedef struct __attribute__((packed)) {
 
 
  272typedef struct __attribute__((packed)) {
 
 
  286typedef struct __attribute__((packed)) {
 
 
  301typedef struct __attribute__((packed)) {
 
 
  313typedef struct __attribute__((packed)) {
 
 
  324typedef struct __attribute__((packed)) {
 
 
  335typedef struct __attribute__((packed)) {
 
 
#define DHCPV6_DUID_MAX_LEN
maximum length of DUID
 
void dhcpv6_client_dns_rns_conf(const dhcpv6_opt_dns_rns_t *opt, uint16_t netif)
Configures a DNS recursive name server provided by the server.
 
Functions to work with different byte orders.
 
be_uint32_t network_uint32_t
A 32 bit integer in network byte order.
 
be_uint16_t network_uint16_t
A 16 bit integer in network byte order.
 
Definitions for IPv6 addresses.
 
DUID based on link-layer address plus time.
 
Client/Server message header.
 
uint8_t tid[3]
transaction ID
 
uint8_t type
message type (see DHCPv6 messeg types )
 
DHCPv6 DNS recursive name server option.
 
network_uint16_t type
DHCPV6_OPT_DNS_RNS
 
ipv6_addr_t dns_rns[]
addresses of DNS recursive name servers in order of preference
 
network_uint16_t len
length of dhcpv6_opt_status_t::dns_rns in byte
 
DHCPv6 client or server identifier option format.
 
uint8_t duid[]
the DUID of the client or server
 
network_uint16_t type
DHCPV6_OPT_CID or DHCPV6_OPT_SID
 
network_uint16_t len
length of dhcpv6_opt_t::duid in byte
 
DHCPv6 elapsed time option format.
 
network_uint16_t len
always 2
 
network_uint16_t elapsed_time
amount of time since client began current DHCPv6 transaction (in cs)
 
network_uint16_t type
DHCPV6_OPT_ELAPSED_TIME
 
DHCPv6 identity association for non-temporary addresses (IA_NA) option format.
 
uint8_t opts[]
IA_NA options.
 
network_uint32_t t2
DHCPv6 T2 time (in sec)
 
network_uint32_t t1
DHCPv6 T1 time (in sec)
 
network_uint16_t type
DHCPV6_OPT_IA_NA
 
network_uint32_t ia_id
Unique ID for this IA_NA.
 
network_uint16_t len
12 + length of dhcpv6_opt_ia_na_t::opts in byte
 
DHCPv6 identity association for prefix delegation option (IA_PD) format.
 
network_uint32_t ia_id
Unique ID for this IA_PD.
 
network_uint16_t len
12 + length of dhcpv6_opt_ia_pd_t::opts in byte
 
network_uint32_t t2
DHCPv6 T2 time (in sec)
 
uint8_t opts[]
IA_PD options.
 
network_uint32_t t1
DHCPv6 T1 time (in sec)
 
network_uint16_t type
DHCPV6_OPT_IA_PD
 
DHCPv6 IA address option format.
 
network_uint32_t pref
preferred lifetime (in sec)
 
network_uint16_t type
DHCPV6_OPT_IAADDR
 
network_uint16_t len
25 + length of dhcpv6_opt_iapfx_t::opts in byte
 
uint8_t opts[]
IAprefix options.
 
network_uint32_t valid
valid lifetime (in sec)
 
ipv6_addr_t addr
the address
 
DHCPv6 IA prefix option format.
 
uint8_t pfx_len
length of dhcpv6_opt_iapfx_t::pfx in bits
 
network_uint16_t type
DHCPV6_OPT_IAPFX
 
network_uint32_t pref
preferred lifetime (in sec)
 
uint8_t opts[]
IAprefix options.
 
network_uint16_t len
25 + length of dhcpv6_opt_iapfx_t::opts in byte
 
ipv6_addr_t pfx
the prefix
 
network_uint32_t valid
valid lifetime (in sec)
 
DHCPv6 interface-id option.
 
uint8_t iid[]
opaque interface identifier
 
network_uint16_t len
length of dhcpv6_opt_iid_t::iid in byte
 
network_uint16_t type
DHCPV6_OPT_IID
 
DHCPv6 INF_MAX_RT option format.
 
network_uint16_t len
always 4
 
network_uint16_t type
DHCPV6_OPT_IMR
 
network_uint32_t value
overriding value for INF_MAX_RT (in sec)
 
DHCPv6 Information Refresh Time option format.
 
network_uint16_t type
DHCPV6_OPT_IRT
 
network_uint32_t value
Time duration relative to the current time (in sec)
 
network_uint16_t len
always 4
 
MUD URL DHCPv6 option format.
 
network_uint16_t type
DHCPV6_OPT_MUD_URL
 
network_uint16_t len
length of the mud_string in octets.
 
char mud_string[]
MUD URL using the "https" scheme.
 
DHCPv6 option request option format.
 
network_uint16_t opt_codes[]
option-code for an option requested by the client
 
network_uint16_t type
DHCPV6_OPT_ORO
 
network_uint16_t len
2 * number of dhcpv6_opt_oro_t::opt_codes
 
DHCPv6 preference option format.
 
network_uint16_t len
always 1
 
uint8_t value
preference value for the server
 
network_uint16_t type
DHCPV6_OPT_PREF
 
DHCPv6 relay message option.
 
network_uint16_t len
length of dhcpv6_opt_iid_t::msg in byte
 
uint16_t msg[]
the relayed message
 
network_uint16_t type
DHCPV6_OPT_RELAY_MSG
 
DHCPv6 SOL_MAX_RT option format.
 
network_uint32_t value
overriding value for SOL_MAX_RT (in sec)
 
network_uint16_t len
always 4
 
network_uint16_t type
DHCPV6_OPT_SMR
 
DHCPv6 status code option format.
 
network_uint16_t code
status code
 
char msg[]
UTF-8 encoded text string (not 0-terminated!)
 
network_uint16_t len
2 + length of dhcpv6_opt_status_t::msg in byte
 
network_uint16_t type
DHCPV6_OPT_STATUS
 
General DHCPv6 option format.
 
network_uint16_t type
option code
 
uint8_t data[]
option data
 
network_uint16_t len
length of dhcpv6_opt_t::data in byte
 
Relay Agents/Server message format.
 
uint8_t type
message type (see DHCPv6 messeg types )
 
ipv6_addr_t peer_address
The address of the client or relay agent from which the message to be relayed was received.
 
uint8_t hop_count
number of relays that have already relayed the message
 
ipv6_addr_t link_address
optional address to identify the link on which the client is located.
 
dhcpv6_duid_l2_t duid_l2
DUID-L2 type.
 
uint8_t u8[DHCPV6_DUID_MAX_LEN]
array representation
 
Data type to represent an IPv6 address.