1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
4 #include "conf-parser.h"
5 #include "dhcp-identifier.h"
8 #define DHCP_ROUTE_METRIC 1024
10 typedef struct Link Link
;
11 typedef struct Manager Manager
;
12 typedef struct Network Network
;
14 typedef enum DHCPUseDomains
{
17 DHCP_USE_DOMAINS_ROUTE
,
18 _DHCP_USE_DOMAINS_MAX
,
19 _DHCP_USE_DOMAINS_INVALID
= -1,
22 typedef enum DHCPOptionDataType
{
23 DHCP_OPTION_DATA_UINT8
,
24 DHCP_OPTION_DATA_UINT16
,
25 DHCP_OPTION_DATA_UINT32
,
26 DHCP_OPTION_DATA_STRING
,
27 DHCP_OPTION_DATA_IPV4ADDRESS
,
28 DHCP_OPTION_DATA_IPV6ADDRESS
,
29 _DHCP_OPTION_DATA_MAX
,
30 _DHCP_OPTION_DATA_INVALID
,
34 /* Value of Type in [DHCP] section */
38 uint8_t raw_data
[MAX_DUID_LEN
];
42 bool link_dhcp_enabled(Link
*link
, int family
);
43 static inline bool link_dhcp4_enabled(Link
*link
) {
44 return link_dhcp_enabled(link
, AF_INET
);
46 static inline bool link_dhcp6_enabled(Link
*link
) {
47 return link_dhcp_enabled(link
, AF_INET6
);
50 void network_adjust_dhcp(Network
*network
);
52 DUID
* link_get_duid(Link
*link
);
53 int link_configure_duid(Link
*link
);
54 int manager_request_product_uuid(Manager
*m
, Link
*link
);
56 const char* dhcp_use_domains_to_string(DHCPUseDomains p
) _const_
;
57 DHCPUseDomains
dhcp_use_domains_from_string(const char *s
) _pure_
;
59 const char *dhcp_option_data_type_to_string(DHCPOptionDataType d
) _const_
;
60 DHCPOptionDataType
dhcp_option_data_type_from_string(const char *d
) _pure_
;
62 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp
);
63 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_route_metric
);
64 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_use_dns
);
65 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_use_domains
);
66 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_use_ntp
);
67 CONFIG_PARSER_PROTOTYPE(config_parse_iaid
);
68 CONFIG_PARSER_PROTOTYPE(config_parse_section_route_table
);
69 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_user_class
);
70 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_vendor_class
);
71 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_send_option
);
72 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_request_options
);