]> git.ipfire.org Git - thirdparty/systemd.git/blame_incremental - src/network/networkd-address-label.h
elf2efi: ignore .sframe
[thirdparty/systemd.git] / src / network / networkd-address-label.h
... / ...
CommitLineData
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2#pragma once
3
4#include <netinet/in.h>
5
6#include "networkd-forward.h"
7
8typedef struct AddressLabel {
9 Manager *manager;
10 Network *network;
11 ConfigSection *section;
12
13 uint32_t label;
14 struct in6_addr prefix;
15 unsigned char prefixlen;
16 bool prefix_set;
17} AddressLabel;
18
19AddressLabel *address_label_free(AddressLabel *label);
20
21void network_drop_invalid_address_labels(Network *network);
22void manager_drop_invalid_address_labels(Manager *manager);
23
24int link_request_static_address_labels(Link *link);
25int manager_request_static_address_labels(Manager *manager);
26
27typedef enum IPv6AddressLabelConfParserType {
28 IPV6_ADDRESS_LABEL,
29 IPV6_ADDRESS_LABEL_PREFIX,
30 _IPV6_ADDRESS_LABEL_CONF_PARSER_MAX,
31 _IPV6_ADDRESS_LABEL_CONF_PARSER_INVALID = -EINVAL,
32
33 IPV6_ADDRESS_LABEL_BY_MANAGER = 1 << 16,
34 IPV6_ADDRESS_LABEL_SECTION_MASK = IPV6_ADDRESS_LABEL_BY_MANAGER - 1,
35} IPv6AddressLabelConfParserType;
36
37assert_cc(IPV6_ADDRESS_LABEL_BY_MANAGER >= _IPV6_ADDRESS_LABEL_CONF_PARSER_MAX);
38
39CONFIG_PARSER_PROTOTYPE(config_parse_ipv6_address_label_section);