1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
4 #include "sd-dhcp6-client.h"
6 #include "conf-parser.h"
9 typedef enum DHCP6ClientStartMode
{
10 DHCP6_CLIENT_START_MODE_NO
,
11 DHCP6_CLIENT_START_MODE_INFORMATION_REQUEST
,
12 DHCP6_CLIENT_START_MODE_SOLICIT
,
13 _DHCP6_CLIENT_START_MODE_MAX
,
14 _DHCP6_CLIENT_START_MODE_INVALID
= -EINVAL
,
15 } DHCP6ClientStartMode
;
17 typedef struct Link Link
;
18 typedef struct Manager Manager
;
20 typedef struct DHCP6DelegatedPrefix
{
21 struct in6_addr prefix
; /* Prefix assigned to the link */
22 struct in6_addr pd_prefix
; /* PD prefix provided by DHCP6 lease */
24 } DHCP6DelegatedPrefix
;
26 DHCP6DelegatedPrefix
*dhcp6_pd_free(DHCP6DelegatedPrefix
*p
);
27 DEFINE_TRIVIAL_CLEANUP_FUNC(DHCP6DelegatedPrefix
*, dhcp6_pd_free
);
29 bool link_dhcp6_with_address_enabled(Link
*link
);
30 bool link_dhcp6_pd_is_enabled(Link
*link
);
31 int dhcp6_pd_remove(Link
*link
);
32 int dhcp6_configure(Link
*link
);
33 int dhcp6_update_mac(Link
*link
);
34 int dhcp6_start(Link
*link
);
35 int dhcp6_request_information(Link
*link
, int ir
);
36 int dhcp6_request_prefix_delegation(Link
*link
);
38 int link_serialize_dhcp6_client(Link
*link
, FILE *f
);
40 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_pd_hint
);
41 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_mud_url
);
42 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_client_start_mode
);
43 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_pd_subnet_id
);
45 const char* dhcp6_client_start_mode_to_string(DHCP6ClientStartMode i
) _const_
;
46 DHCP6ClientStartMode
dhcp6_client_start_mode_from_string(const char *s
) _pure_
;