Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
dhcpv6.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
11#ifndef ZEPHYR_INCLUDE_NET_DHCPV6_H_
12#define ZEPHYR_INCLUDE_NET_DHCPV6_H_
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
30enum net_dhcpv6_state {
31 NET_DHCPV6_DISABLED,
32 NET_DHCPV6_INIT,
33 NET_DHCPV6_SOLICITING,
34 NET_DHCPV6_REQUESTING,
35 NET_DHCPV6_CONFIRMING,
36 NET_DHCPV6_RENEWING,
37 NET_DHCPV6_REBINDING,
38 NET_DHCPV6_INFO_REQUESTING,
39 NET_DHCPV6_BOUND,
40} __packed;
41
42#define DHCPV6_TID_SIZE 3
43
44#ifndef CONFIG_NET_DHCPV6_DUID_MAX_LEN
45#define CONFIG_NET_DHCPV6_DUID_MAX_LEN 22
46#endif
47
48struct net_dhcpv6_duid_raw {
49 uint16_t type;
50 uint8_t buf[CONFIG_NET_DHCPV6_DUID_MAX_LEN];
51} __packed;
52
53struct net_dhcpv6_duid_storage {
54 struct net_dhcpv6_duid_raw duid;
55 uint8_t length;
56};
57
58struct net_if;
59
64 bool request_addr : 1;
65 bool request_prefix : 1;
66};
67
79void net_dhcpv6_start(struct net_if *iface, struct net_dhcpv6_params *params);
80
90void net_dhcpv6_stop(struct net_if *iface);
91
100void net_dhcpv6_restart(struct net_if *iface);
101
109const char *net_dhcpv6_state_name(enum net_dhcpv6_state state);
110
117#ifdef __cplusplus
118}
119#endif
120
121#endif /* ZEPHYR_INCLUDE_NET_DHCPV6_H_ */
void net_dhcpv6_restart(struct net_if *iface)
Restart DHCPv6 client on an iface.
void net_dhcpv6_start(struct net_if *iface, struct net_dhcpv6_params *params)
Start DHCPv6 client on an iface.
void net_dhcpv6_stop(struct net_if *iface)
Stop DHCPv6 client on an iface.
state
Definition parser_state.h:29
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
DHCPv6 client configuration parameters.
Definition dhcpv6.h:63
bool request_addr
Request IPv6 address.
Definition dhcpv6.h:64
bool request_prefix
Request IPv6 prefix.
Definition dhcpv6.h:65
Network Interface structure.
Definition net_if.h:680