Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
28enum net_dhcpv6_state {
29 NET_DHCPV6_DISABLED,
30 NET_DHCPV6_INIT,
31 NET_DHCPV6_SOLICITING,
32 NET_DHCPV6_REQUESTING,
33 NET_DHCPV6_CONFIRMING,
34 NET_DHCPV6_RENEWING,
35 NET_DHCPV6_REBINDING,
36 NET_DHCPV6_INFO_REQUESTING,
37 NET_DHCPV6_BOUND,
38} __packed;
39
40#define DHCPV6_TID_SIZE 3
41#define DHCPV6_DUID_MAX_SIZE 20
42
43struct net_dhcpv6_duid_raw {
44 uint16_t type;
45 uint8_t buf[DHCPV6_DUID_MAX_SIZE];
46} __packed;
47
48struct net_dhcpv6_duid_storage {
49 struct net_dhcpv6_duid_raw duid;
50 uint8_t length;
51};
52
53struct net_if;
54
59 bool request_addr : 1;
60 bool request_prefix : 1;
61};
62
74void net_dhcpv6_start(struct net_if *iface, struct net_dhcpv6_params *params);
75
85void net_dhcpv6_stop(struct net_if *iface);
86
95void net_dhcpv6_restart(struct net_if *iface);
96
104const char *net_dhcpv6_state_name(enum net_dhcpv6_state state);
105
112#ifdef __cplusplus
113}
114#endif
115
116#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:58
bool request_addr
Request IPv6 address.
Definition: dhcpv6.h:59
bool request_prefix
Request IPv6 prefix.
Definition: dhcpv6.h:60
Network Interface structure.
Definition: net_if.h:595