]>
Commit | Line | Data |
---|---|---|
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 |
13 | typedef Manager Manager; |
14 | typedef Network Network; | |
15 | typedef Link Link; | |
16 | ||
d1bdafd2 WKI |
17 | union lladdr_union { |
18 | struct ether_addr mac; | |
19 | union in_addr_union ip; | |
20 | }; | |
21 | ||
1939ebeb | 22 | typedef 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 | 33 | Neighbor *neighbor_free(Neighbor *neighbor); |
78ada14f | 34 | |
13ffa39f | 35 | void network_drop_invalid_neighbors(Network *network); |
e4a71bf3 | 36 | |
58f1fe9a | 37 | int link_set_neighbors(Link *link); |
59048336 YW |
38 | int link_drop_neighbors(Link *link); |
39 | int link_drop_foreign_neighbors(Link *link); | |
58f1fe9a | 40 | |
eab052d2 YW |
41 | int manager_rtnl_process_neighbor(sd_netlink *rtnl, sd_netlink_message *message, Manager *m); |
42 | ||
e4a71bf3 WKI |
43 | CONFIG_PARSER_PROTOTYPE(config_parse_neighbor_address); |
44 | CONFIG_PARSER_PROTOTYPE(config_parse_neighbor_hwaddr); | |
b956364d | 45 | CONFIG_PARSER_PROTOTYPE(config_parse_neighbor_lladdr); |