1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3 
4 #include <inttypes.h>
5 
6 #include "conf-parser.h"
7 #include "in-addr-util.h"
8 #include "networkd-util.h"
9 
10 typedef struct Link Link;
11 typedef struct Network Network;
12 
13 typedef struct AddressLabel {
14         Network *network;
15         ConfigSection *section;
16 
17         uint32_t label;
18         struct in6_addr prefix;
19         unsigned char prefixlen;
20         bool prefix_set;
21 } AddressLabel;
22 
23 AddressLabel *address_label_free(AddressLabel *label);
24 
25 void network_drop_invalid_address_labels(Network *network);
26 
27 int link_request_static_address_labels(Link *link);
28 
29 CONFIG_PARSER_PROTOTYPE(config_parse_address_label);
30 CONFIG_PARSER_PROTOTYPE(config_parse_address_label_prefix);
31