]>
Commit | Line | Data |
---|---|---|
ca5ad760 YW |
1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
2 | #pragma once | |
3 | ||
4 | #include "sd-dhcp6-client.h" | |
5 | ||
6 | #include "conf-parser.h" | |
838d39af SS |
7 | #include "macro.h" |
8 | ||
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 = -1, | |
15 | } DHCP6ClientStartMode; | |
ca5ad760 YW |
16 | |
17 | typedef struct Link Link; | |
04ed9949 | 18 | typedef struct Manager Manager; |
ca5ad760 | 19 | |
1633c457 YW |
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 */ | |
23 | Link *link; | |
24 | } DHCP6DelegatedPrefix; | |
25 | ||
26 | DHCP6DelegatedPrefix *dhcp6_pd_free(DHCP6DelegatedPrefix *p); | |
27 | DEFINE_TRIVIAL_CLEANUP_FUNC(DHCP6DelegatedPrefix*, dhcp6_pd_free); | |
28 | ||
29 | bool link_dhcp6_pd_is_enabled(Link *link); | |
30 | int dhcp6_pd_remove(Link *link); | |
ca5ad760 YW |
31 | int dhcp6_configure(Link *link); |
32 | int dhcp6_request_address(Link *link, int ir); | |
1633c457 | 33 | int dhcp6_request_prefix_delegation(Link *link); |
c24dd739 YW |
34 | |
35 | CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_pd_hint); | |
36 | CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_mud_url); | |
838d39af | 37 | CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_client_start_mode); |
99e015e2 YW |
38 | CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_pd_subnet_id); |
39 | CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_pd_token); | |
838d39af SS |
40 | |
41 | const char* dhcp6_client_start_mode_to_string(DHCP6ClientStartMode i) _const_; | |
42 | DHCP6ClientStartMode dhcp6_client_start_mode_from_string(const char *s) _pure_; |