#include "log-link.h"
#include "netif-util.h"
#include "network-util.h"
+#include "networkd-bridge-vlan.h"
#include "networkd-ipv6ll.h"
#include "networkd-util.h"
#include "ordered-set.h"
+#include "ratelimit.h"
#include "resolve-util.h"
#include "set.h"
sd_device *dev;
char *driver;
+ /* bridge vlan */
+ uint16_t bridge_vlan_pvid;
+ bool bridge_vlan_pvid_is_untagged;
+ uint32_t bridge_vlan_bitmap[BRIDGE_VLAN_BITMAP_LEN];
+
/* to prevent multiple ethtool calls */
bool ethtool_driver_read;
bool ethtool_permanent_hw_addr_read;
LinkAddressState ipv4_address_state;
LinkAddressState ipv6_address_state;
LinkOnlineState online_state;
+ RateLimit automatic_reconfigure_ratelimit;
unsigned static_address_messages;
unsigned static_address_label_messages;
Set *addresses;
Set *neighbors;
- Set *routes;
- Set *nexthops;
Set *qdiscs;
Set *tclasses;
sd_dhcp_lease *dhcp_lease;
char *lease_file;
unsigned dhcp4_messages;
- bool dhcp4_configured:1;
+ bool dhcp4_configured;
char *dhcp4_6rd_tunnel_name;
Hashmap *ipv4acd_by_address;
bool activated:1;
bool master_set:1;
bool stacked_netdevs_created:1;
+ bool bridge_vlan_set:1;
sd_dhcp_server *dhcp_server;
sd_ndisc *ndisc;
sd_event_source *ndisc_expire;
+ Hashmap *ndisc_routers_by_sender;
Set *ndisc_rdnss;
Set *ndisc_dnssl;
Set *ndisc_captive_portals;
+ Set *ndisc_pref64;
+ Set *ndisc_redirects;
+ uint32_t ndisc_mtu;
unsigned ndisc_messages;
bool ndisc_configured:1;
/* This is about LLDP reception */
sd_lldp_rx *lldp_rx;
- char *lldp_file;
/* This is about LLDP transmission */
sd_lldp_tx *lldp_tx;
bool link_ipv6_enabled(Link *link);
int link_ipv6ll_gained(Link *link);
+bool link_has_ipv6_connectivity(Link *link);
int link_stop_engines(Link *link, bool may_keep_dhcp);
int link_reconfigure_impl(Link *link, bool force);
int link_reconfigure(Link *link, bool force);
+int link_reconfigure_on_bus_method_reload(Link *link, sd_bus_message *message);
int manager_udev_process_link(Manager *m, sd_device *device, sd_device_action_t action);
int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *message, Manager *m);
int link_flags_to_string_alloc(uint32_t flags, char **ret);
const char *kernel_operstate_to_string(int t) _const_;
+
+void link_required_operstate_for_online(Link *link, LinkOperationalStateRange *ret);
+AddressFamily link_required_family_for_online(Link *link);