1 /* SPDX-License-Identifier: LGPL-2.1+ */
8 #include "sd-netlink.h"
9 #include "sd-resolve.h"
11 #include "dhcp-identifier.h"
13 #include "networkd-link.h"
14 #include "networkd-network.h"
15 #include "ordered-set.h"
17 #include "time-util.h"
21 /* lazy initialized */
26 sd_device_monitor
*device_monitor
;
27 Hashmap
*polkit_registry
;
33 bool manage_foreign_routes
;
38 LinkOperationalState operational_state
;
39 LinkCarrierState carrier_state
;
40 LinkAddressState address_state
;
44 OrderedHashmap
*networks
;
45 Hashmap
*dhcp6_prefixes
;
46 Set
*dhcp6_pd_prefixes
;
47 OrderedSet
*address_pools
;
49 usec_t network_dirs_ts_usec
;
52 sd_id128_t product_uuid
;
53 bool has_product_uuid
;
54 Set
*links_requesting_uuid
;
55 Set
*duids_requesting_uuid
;
57 char* dynamic_hostname
;
58 char* dynamic_timezone
;
64 /* Manager stores routes without RTA_OIF attribute. */
68 /* For link speed meter*/
70 sd_event_source
*speed_meter_event_source
;
71 usec_t speed_meter_interval_usec
;
72 usec_t speed_meter_usec_new
;
73 usec_t speed_meter_usec_old
;
75 bool dhcp4_prefix_root_cannot_set_table
:1;
76 bool bridge_mdb_on_master_not_supported
:1;
79 int manager_new(Manager
**ret
);
80 void manager_free(Manager
*m
);
82 int manager_connect_bus(Manager
*m
);
83 int manager_start(Manager
*m
);
85 int manager_load_config(Manager
*m
);
86 bool manager_should_reload(Manager
*m
);
88 int manager_enumerate(Manager
*m
);
90 void manager_dirty(Manager
*m
);
92 Link
* manager_find_uplink(Manager
*m
, Link
*exclude
);
94 int manager_set_hostname(Manager
*m
, const char *hostname
);
95 int manager_set_timezone(Manager
*m
, const char *timezone
);
97 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager
*, manager_free
);