]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
0ef6f454 LP |
2 | #pragma once |
3 | ||
71d35b6b | 4 | #include "sd-bus.h" |
d2ebf952 | 5 | #include "sd-device.h" |
f579559b | 6 | #include "sd-event.h" |
27dfc982 | 7 | #include "sd-id128.h" |
1c4baffc | 8 | #include "sd-netlink.h" |
05d0c2e3 | 9 | #include "sd-resolve.h" |
f579559b | 10 | |
634f0f98 | 11 | #include "dhcp-identifier.h" |
761cf19d | 12 | #include "firewall-util.h" |
f579559b | 13 | #include "hashmap.h" |
fc2f9534 | 14 | #include "networkd-link.h" |
71d35b6b | 15 | #include "networkd-network.h" |
bfbf150e YW |
16 | #include "ordered-set.h" |
17 | #include "set.h" | |
18 | #include "time-util.h" | |
11bf3cce | 19 | |
f579559b | 20 | struct Manager { |
1c4baffc | 21 | sd_netlink *rtnl; |
05d0c2e3 JT |
22 | /* lazy initialized */ |
23 | sd_netlink *genl; | |
f579559b | 24 | sd_event *event; |
05d0c2e3 | 25 | sd_resolve *resolve; |
1346b1f0 | 26 | sd_bus *bus; |
d2ebf952 | 27 | sd_device_monitor *device_monitor; |
15761549 | 28 | Hashmap *polkit_registry; |
c643bda5 | 29 | int ethtool_fd; |
f579559b | 30 | |
a78f938a YW |
31 | bool enumerating; |
32 | bool dirty; | |
33 | bool restarting; | |
5d3b8017 | 34 | bool manage_foreign_routes; |
d94dfe70 | 35 | bool manage_foreign_rules; |
84de38c5 TG |
36 | |
37 | Set *dirty_links; | |
6a24f148 | 38 | |
bbf7c048 | 39 | char *state_file; |
e331e246 | 40 | LinkOperationalState operational_state; |
7f3c07ad YW |
41 | LinkCarrierState carrier_state; |
42 | LinkAddressState address_state; | |
8430841b L |
43 | LinkAddressState ipv4_address_state; |
44 | LinkAddressState ipv6_address_state; | |
bbf7c048 | 45 | |
f579559b | 46 | Hashmap *links; |
52433f6b | 47 | Hashmap *netdevs; |
715d398e | 48 | OrderedHashmap *networks; |
e133b289 | 49 | Hashmap *dhcp6_prefixes; |
1633c457 | 50 | Set *dhcp6_pd_prefixes; |
bfbf150e | 51 | OrderedSet *address_pools; |
f579559b | 52 | |
f579559b | 53 | usec_t network_dirs_ts_usec; |
413708d1 | 54 | |
4e26a5ba YW |
55 | DUID dhcp_duid; |
56 | DUID dhcp6_duid; | |
28f9667d | 57 | DUID duid_product_uuid; |
27dfc982 | 58 | bool has_product_uuid; |
4e26a5ba | 59 | bool product_uuid_requested; |
27dfc982 | 60 | Set *links_requesting_uuid; |
27dfc982 | 61 | |
7901cea1 MP |
62 | char* dynamic_hostname; |
63 | char* dynamic_timezone; | |
bce67bbe | 64 | |
0e5ef6be | 65 | unsigned routing_policy_rule_remove_messages; |
bce67bbe SS |
66 | Set *rules; |
67 | Set *rules_foreign; | |
4b600505 | 68 | |
69e244e3 YW |
69 | /* Manage nexthops by id. */ |
70 | Hashmap *nexthops_by_id; | |
71 | ||
30f10837 YW |
72 | /* Manager stores nexthops without RTA_OIF attribute. */ |
73 | Set *nexthops; | |
74 | Set *nexthops_foreign; | |
75 | ||
ad208fac YW |
76 | /* Manager stores routes without RTA_OIF attribute. */ |
77 | Set *routes; | |
78 | Set *routes_foreign; | |
79 | ||
c038ce46 | 80 | /* Route table name */ |
552b90a2 YW |
81 | Hashmap *route_table_numbers_by_name; |
82 | Hashmap *route_table_names_by_number; | |
c038ce46 | 83 | |
a879e1a4 YW |
84 | /* For link speed meter*/ |
85 | bool use_speed_meter; | |
86 | sd_event_source *speed_meter_event_source; | |
87 | usec_t speed_meter_interval_usec; | |
88 | usec_t speed_meter_usec_new; | |
89 | usec_t speed_meter_usec_old; | |
dd9b10c8 | 90 | |
4cbd379e YW |
91 | bool dhcp4_prefix_root_cannot_set_table; |
92 | bool bridge_mdb_on_master_not_supported; | |
761cf19d FW |
93 | |
94 | FirewallContext *fw_ctx; | |
19d9a5ad YW |
95 | |
96 | OrderedSet *request_queue; | |
f579559b TG |
97 | }; |
98 | ||
3534a043 | 99 | int manager_new(Manager **ret); |
75db809a | 100 | Manager* manager_free(Manager *m); |
f579559b | 101 | |
8f203c16 | 102 | int manager_connect_bus(Manager *m); |
b76d99d9 | 103 | int manager_start(Manager *m); |
a97dcc12 | 104 | |
02b59d57 TG |
105 | int manager_load_config(Manager *m); |
106 | bool manager_should_reload(Manager *m); | |
107 | ||
446aaaf3 | 108 | int manager_enumerate(Manager *m); |
f579559b | 109 | |
4f5f911e LP |
110 | Link* manager_find_uplink(Manager *m, Link *exclude); |
111 | ||
59eb33e0 MP |
112 | int manager_set_hostname(Manager *m, const char *hostname); |
113 | int manager_set_timezone(Manager *m, const char *timezone); | |
114 | ||
f579559b | 115 | DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); |