X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-manager.h;h=0b3ce911c8c439da76f0b21c283e27c6e5d2de14;hb=c643bda5ec3afe57c071d96b517cf20ec9f3423e;hp=35ab6bedb17058718a37a89b3cace8ee98c47f3d;hpb=09ba1fcc57cd2bd06e0ed75c1a4bab4912658a94;p=thirdparty%2Fsystemd.git diff --git a/src/network/networkd-manager.h b/src/network/networkd-manager.h index 35ab6bedb17..0b3ce911c8c 100644 --- a/src/network/networkd-manager.h +++ b/src/network/networkd-manager.h @@ -1,8 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #pragma once -#include - #include "sd-bus.h" #include "sd-device.h" #include "sd-event.h" @@ -13,6 +11,7 @@ #include "dhcp-identifier.h" #include "hashmap.h" #include "list.h" +#include "time-util.h" #include "networkd-address-pool.h" #include "networkd-link.h" @@ -26,20 +25,25 @@ struct Manager { sd_resolve *resolve; sd_bus *bus; sd_device_monitor *device_monitor; + Hashmap *polkit_registry; + int ethtool_fd; bool enumerating:1; bool dirty:1; + bool restarting:1; + bool manage_foreign_routes; Set *dirty_links; char *state_file; LinkOperationalState operational_state; + LinkCarrierState carrier_state; + LinkAddressState address_state; Hashmap *links; Hashmap *netdevs; - Hashmap *networks_by_name; + OrderedHashmap *networks; Hashmap *dhcp6_prefixes; - LIST_HEAD(Network, networks); LIST_HEAD(AddressPool, address_pools); usec_t network_dirs_ts_usec; @@ -57,10 +61,15 @@ struct Manager { Set *rules_foreign; Set *rules_saved; - int sysctl_ipv6_enabled; -}; + /* For link speed meter*/ + bool use_speed_meter; + sd_event_source *speed_meter_event_source; + usec_t speed_meter_interval_usec; + usec_t speed_meter_usec_new; + usec_t speed_meter_usec_old; -extern const sd_bus_vtable manager_vtable[]; + bool dhcp4_prefix_root_cannot_set_table; +}; int manager_new(Manager **ret); void manager_free(Manager *m); @@ -73,14 +82,17 @@ bool manager_should_reload(Manager *m); int manager_rtnl_enumerate_links(Manager *m); int manager_rtnl_enumerate_addresses(Manager *m); +int manager_rtnl_enumerate_neighbors(Manager *m); int manager_rtnl_enumerate_routes(Manager *m); int manager_rtnl_enumerate_rules(Manager *m); +int manager_rtnl_enumerate_nexthop(Manager *m); int manager_rtnl_process_address(sd_netlink *nl, sd_netlink_message *message, void *userdata); +int manager_rtnl_process_neighbor(sd_netlink *nl, sd_netlink_message *message, void *userdata); int manager_rtnl_process_route(sd_netlink *nl, sd_netlink_message *message, void *userdata); int manager_rtnl_process_rule(sd_netlink *nl, sd_netlink_message *message, void *userdata); +int manager_rtnl_process_nexthop(sd_netlink *nl, sd_netlink_message *message, void *userdata); -int manager_send_changed(Manager *m, const char *property, ...) _sentinel_; void manager_dirty(Manager *m); int manager_address_pool_acquire(Manager *m, int family, unsigned prefixlen, union in_addr_union *found); @@ -91,10 +103,4 @@ int manager_set_hostname(Manager *m, const char *hostname); int manager_set_timezone(Manager *m, const char *timezone); int manager_request_product_uuid(Manager *m, Link *link); -Link *manager_dhcp6_prefix_get(Manager *m, struct in6_addr *addr); -int manager_dhcp6_prefix_add(Manager *m, struct in6_addr *addr, Link *link); -int manager_dhcp6_prefix_remove_all(Manager *m, Link *link); - -int manager_sysctl_ipv6_enabled(Manager *manager); - DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);