]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/network/networkd-ipv6ll.h
network: make Reload bus method synchronous
[thirdparty/systemd.git] / src / network / networkd-ipv6ll.h
CommitLineData
de2f372e
YW
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2#pragma once
3
4#include <errno.h>
5#include <linux/if_link.h>
6#include <stdbool.h>
7
80f2647d
YW
8#include "sd-netlink.h"
9
de2f372e
YW
10#include "conf-parser.h"
11#include "macro.h"
12
13typedef struct Link Link;
14
15typedef enum IPv6LinkLocalAddressGenMode {
16 IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_EUI64 = IN6_ADDR_GEN_MODE_EUI64,
17 IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_NONE = IN6_ADDR_GEN_MODE_NONE,
18 IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_STABLE_PRIVACY = IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
19 IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_RANDOM = IN6_ADDR_GEN_MODE_RANDOM,
20 _IPV6_LINK_LOCAL_ADDRESS_GEN_MODE_MAX,
21 _IPV6_LINK_LOCAL_ADDRESS_GEN_MODE_INVALID = -EINVAL,
22} IPv6LinkLocalAddressGenMode;
23
24bool link_ipv6ll_enabled(Link *link);
bd7e0a3f 25bool link_may_have_ipv6ll(Link *link, bool check_multicast);
de2f372e 26
80f2647d
YW
27IPv6LinkLocalAddressGenMode link_get_ipv6ll_addrgen_mode(Link *link);
28int ipv6ll_addrgen_mode_fill_message(sd_netlink_message *message, IPv6LinkLocalAddressGenMode mode);
7d0d832d 29int link_update_ipv6ll_addrgen_mode(Link *link, sd_netlink_message *message);
80f2647d 30
2b25f4eb 31int link_set_ipv6ll_stable_secret(Link *link);
77d65e56 32int link_set_ipv6ll_addrgen_mode(Link *link, IPv6LinkLocalAddressGenMode mode);
2b25f4eb 33
de2f372e
YW
34const char* ipv6_link_local_address_gen_mode_to_string(IPv6LinkLocalAddressGenMode s) _const_;
35IPv6LinkLocalAddressGenMode ipv6_link_local_address_gen_mode_from_string(const char *s) _pure_;
36
37CONFIG_PARSER_PROTOTYPE(config_parse_ipv6_link_local_address_gen_mode);