]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/network/networkd-address-label.h
network: drop sections contain invalid settings in network_verify()
[thirdparty/systemd.git] / src / network / networkd-address-label.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 #include <inttypes.h>
5 #include <stdbool.h>
6
7 #include "conf-parser.h"
8 #include "in-addr-util.h"
9
10 typedef struct AddressLabel AddressLabel;
11
12 #include "networkd-link.h"
13 #include "networkd-network.h"
14 #include "networkd-util.h"
15
16 typedef struct Network Network;
17 typedef struct Link Link;
18 typedef struct NetworkConfigSection NetworkConfigSection;
19
20 struct AddressLabel {
21 Network *network;
22 NetworkConfigSection *section;
23
24 unsigned char prefixlen;
25 uint32_t label;
26
27 union in_addr_union in_addr;
28
29 LIST_FIELDS(AddressLabel, labels);
30 };
31
32 void address_label_free(AddressLabel *label);
33
34 DEFINE_NETWORK_SECTION_FUNCTIONS(AddressLabel, address_label_free);
35
36 int address_label_configure(AddressLabel *address, Link *link, link_netlink_message_handler_t callback, bool update);
37
38 CONFIG_PARSER_PROTOTYPE(config_parse_address_label);
39 CONFIG_PARSER_PROTOTYPE(config_parse_address_label_prefix);