]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/network/networkd-neighbor.h
Merge pull request #17185 from yuwata/ethtool-update
[thirdparty/systemd.git] / src / network / networkd-neighbor.h
CommitLineData
e4a71bf3
WKI
1/* SPDX-License-Identifier: LGPL-2.1+ */
2#pragma once
3
1939ebeb
YW
4#include <stdbool.h>
5
e4a71bf3
WKI
6#include "sd-netlink.h"
7
8#include "conf-parser.h"
9#include "ether-addr-util.h"
10#include "in-addr-util.h"
fcbf4cb7 11#include "networkd-util.h"
e4a71bf3 12
1939ebeb
YW
13typedef Manager Manager;
14typedef Network Network;
15typedef Link Link;
16
d1bdafd2
WKI
17union lladdr_union {
18 struct ether_addr mac;
19 union in_addr_union ip;
20};
21
1939ebeb 22typedef struct Neighbor {
e4a71bf3
WKI
23 Network *network;
24 Link *link;
25 NetworkConfigSection *section;
26
27 int family;
28 union in_addr_union in_addr;
d1bdafd2 29 union lladdr_union lladdr;
f9ab224e 30 size_t lladdr_size;
1939ebeb 31} Neighbor;
e4a71bf3 32
64753f35 33Neighbor *neighbor_free(Neighbor *neighbor);
78ada14f 34
13ffa39f 35void network_drop_invalid_neighbors(Network *network);
e4a71bf3 36
58f1fe9a 37int link_set_neighbors(Link *link);
59048336
YW
38int link_drop_neighbors(Link *link);
39int link_drop_foreign_neighbors(Link *link);
58f1fe9a 40
eab052d2
YW
41int manager_rtnl_process_neighbor(sd_netlink *rtnl, sd_netlink_message *message, Manager *m);
42
e4a71bf3
WKI
43CONFIG_PARSER_PROTOTYPE(config_parse_neighbor_address);
44CONFIG_PARSER_PROTOTYPE(config_parse_neighbor_hwaddr);
b956364d 45CONFIG_PARSER_PROTOTYPE(config_parse_neighbor_lladdr);