Hashmap *macvlans;
bool dhcp;
bool dhcp_dns;
+ bool dhcp_ntp;
bool dhcp_mtu;
bool dhcp_hostname;
bool dhcp_domainname;
Hashmap *routes_by_section;
LIST_HEAD(Address, dns);
+ LIST_HEAD(Address, ntp);
LIST_FIELDS(Network, networks);
};
_LINK_STATE_INVALID = -1
} LinkState;
+typedef enum LinkOperationalState {
+ LINK_OPERSTATE_UNKNOWN,
+ LINK_OPERSTATE_DORMANT,
+ LINK_OPERSTATE_CARRIER,
+ LINK_OPERSTATE_DEGRADED,
+ LINK_OPERSTATE_ROUTABLE,
+ _LINK_OPERSTATE_MAX,
+ _LINK_OPERSTATE_INVALID = -1
+} LinkOperationalState;
+
struct Link {
Manager *manager;
struct udev_device *udev_device;
unsigned flags;
- uint8_t operstate;
+ uint8_t kernel_operstate;
Network *network;
LinkState state;
+ LinkOperationalState operstate;
unsigned addr_messages;
unsigned route_messages;
unsigned enslaving;
+ LIST_HEAD(Address, addresses);
+
sd_dhcp_client *dhcp_client;
sd_dhcp_lease *dhcp_lease;
char *lease_file;
Hashmap *links;
Hashmap *netdevs;
LIST_HEAD(Network, networks);
- LIST_HEAD(Address, fallback_dns);
usec_t network_dirs_ts_usec;
struct kmod_ctx *kmod_ctx;
int manager_udev_listen(Manager *m);
int manager_bus_listen(Manager *m);
-int manager_update_resolv_conf(Manager *m);
int manager_save(Manager *m);
DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
#define _cleanup_manager_free_ _cleanup_(manager_freep)
-const struct ConfigPerfItem* networkd_gperf_lookup(const char *key, unsigned length);
-
-int config_parse_dnsv(const char *unit, const char *filename, unsigned line,
- const char *section, unsigned section_line, const char *lvalue,
- int ltype, const char *rvalue, void *data, void *userdata);
-
/* NetDev */
int netdev_load(Manager *manager);
int address_configure(Address *address, Link *link, sd_rtnl_message_handler_t callback);
int address_update(Address *address, Link *link, sd_rtnl_message_handler_t callback);
int address_drop(Address *address, Link *link, sd_rtnl_message_handler_t callback);
+bool address_equal(Address *a1, Address *a2);
DEFINE_TRIVIAL_CLEANUP_FUNC(Address*, address_free);
#define _cleanup_address_free_ _cleanup_(address_freep)
const char* link_state_to_string(LinkState s) _const_;
LinkState link_state_from_string(const char *s) _pure_;
+const char* link_operstate_to_string(LinkOperationalState s) _const_;
+LinkOperationalState link_operstate_from_string(const char *s) _pure_;
+
DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_unref);
#define _cleanup_link_unref_ _cleanup_(link_unrefp)