]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later |
c16c7808 SS |
2 | * Copyright © 2019 VMware, Inc. |
3 | */ | |
4 | ||
5 | #pragma once | |
6 | ||
75156ccb | 7 | #include <inttypes.h> |
c16c7808 | 8 | |
75156ccb | 9 | #include "sd-netlink.h" |
c16c7808 | 10 | |
75156ccb | 11 | #include "conf-parser.h" |
228c3e21 | 12 | #include "hashmap.h" |
75156ccb | 13 | #include "in-addr-util.h" |
c16c7808 SS |
14 | #include "networkd-util.h" |
15 | ||
75156ccb YW |
16 | typedef struct Link Link; |
17 | typedef struct Manager Manager; | |
18 | typedef struct Network Network; | |
19 | ||
20 | typedef struct NextHop { | |
c16c7808 | 21 | Network *network; |
30f10837 | 22 | Manager *manager; |
c16c7808 | 23 | Link *link; |
307fe3cd | 24 | ConfigSection *section; |
89fa0133 YW |
25 | NetworkConfigSource source; |
26 | NetworkConfigState state; | |
c16c7808 | 27 | |
0e9d129c | 28 | uint8_t protocol; |
c16c7808 | 29 | |
c16c7808 | 30 | uint32_t id; |
30f10837 | 31 | bool blackhole; |
8c112218 | 32 | int family; |
c16c7808 | 33 | union in_addr_union gw; |
17f8d8f9 YW |
34 | uint8_t flags; |
35 | int onlink; /* Only used in conf parser and nexthop_section_verify(). */ | |
228c3e21 | 36 | Hashmap *group; |
75156ccb | 37 | } NextHop; |
c16c7808 | 38 | |
75156ccb | 39 | NextHop *nexthop_free(NextHop *nexthop); |
0992f9fb | 40 | |
13ffa39f | 41 | void network_drop_invalid_nexthops(Network *network); |
c16c7808 | 42 | |
a0e99a37 | 43 | int link_drop_managed_nexthops(Link *link); |
25b82b6e | 44 | int link_drop_foreign_nexthops(Link *link); |
b4564f4e | 45 | void link_foreignize_nexthops(Link *link); |
c133770a | 46 | |
76c5a0f2 | 47 | int link_request_static_nexthops(Link *link, bool only_ipv4); |
76c5a0f2 | 48 | |
324e3422 | 49 | int manager_get_nexthop_by_id(Manager *manager, uint32_t id, NextHop **ret); |
454c87b5 YW |
50 | int manager_rtnl_process_nexthop(sd_netlink *rtnl, sd_netlink_message *message, Manager *m); |
51 | ||
89fa0133 YW |
52 | DEFINE_NETWORK_CONFIG_STATE_FUNCTIONS(NextHop, nexthop); |
53 | ||
c16c7808 SS |
54 | CONFIG_PARSER_PROTOTYPE(config_parse_nexthop_id); |
55 | CONFIG_PARSER_PROTOTYPE(config_parse_nexthop_gateway); | |
f1923efc | 56 | CONFIG_PARSER_PROTOTYPE(config_parse_nexthop_family); |
2ddd52d1 | 57 | CONFIG_PARSER_PROTOTYPE(config_parse_nexthop_onlink); |
30f10837 | 58 | CONFIG_PARSER_PROTOTYPE(config_parse_nexthop_blackhole); |
228c3e21 | 59 | CONFIG_PARSER_PROTOTYPE(config_parse_nexthop_group); |