chiark / gitweb /
sd-rtnl: fix typesystem for IFLA_AF_SPEC
[elogind.git] / src / network / networkd.h
index e6d84f105b81257692493a32a2f03474249c2c0e..147b21acdc9c096012cf8c1335ed49c1228544af 100644 (file)
@@ -97,13 +97,13 @@ struct Network {
         Manager *manager;
 
         char *filename;
+        char *name;
 
         struct ether_addr *match_mac;
         char *match_path;
         char *match_driver;
         char *match_type;
         char *match_name;
-        char *dhcp_vendor_class_identifier;
 
         Condition *match_host;
         Condition *match_virt;
@@ -115,6 +115,7 @@ struct Network {
         NetDev *bond;
         Hashmap *stacked_netdevs;
         AddressFamilyBoolean dhcp;
+        char *dhcp_vendor_class_identifier;
         bool dhcp_dns;
         bool dhcp_ntp;
         bool dhcp_mtu;
@@ -224,6 +225,7 @@ struct Manager {
 
         Hashmap *links;
         Hashmap *netdevs;
+        Hashmap *networks_by_name;
         LIST_HEAD(Network, networks);
         LIST_HEAD(AddressPool, address_pools);
 
@@ -239,6 +241,7 @@ extern const sd_bus_vtable manager_vtable[];
 int manager_new(Manager **ret);
 void manager_free(Manager *m);
 
+int manager_connect_bus(Manager *m);
 int manager_run(Manager *m);
 
 int manager_load_config(Manager *m);
@@ -264,6 +267,7 @@ void network_free(Network *network);
 DEFINE_TRIVIAL_CLEANUP_FUNC(Network*, network_free);
 #define _cleanup_network_free_ _cleanup_(network_freep)
 
+int network_get_by_name(Manager *manager, const char *name, Network **ret);
 int network_get(Manager *manager, struct udev_device *device,
                 const char *ifname, const struct ether_addr *mac,
                 Network **ret);
@@ -317,6 +321,11 @@ int config_parse_vxlan_group_address(const char *unit,
                                      void *data,
                                      void *userdata);
 
+extern const sd_bus_vtable network_vtable[];
+
+int network_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error);
+int network_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error);
+
 /* gperf */
 const struct ConfigPerfItem* network_network_gperf_lookup(const char *key, unsigned length);