Line data Source code
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 0 : 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);