_DHCP_SUPPORT_INVALID = -1,
} DHCPSupport;
+typedef enum LLMNRSupport {
+ LLMNR_SUPPORT_NO,
+ LLMNR_SUPPORT_YES,
+ LLMNR_SUPPORT_RESOLVE,
+ _LLMNR_SUPPORT_MAX,
+ _LLMNR_SUPPORT_INVALID = -1,
+} LLMNRSupport;
+
struct Network {
Manager *manager;
char *description;
NetDev *bridge;
NetDev *bond;
- NetDev *tunnel;
- Hashmap *vlans;
- Hashmap *macvlans;
- Hashmap *vxlans;
+ Hashmap *stacked_netdevs;
DHCPSupport dhcp;
bool dhcp_dns;
bool dhcp_ntp;
bool dhcp_critical;
bool dhcp_routes;
bool ipv4ll;
+ bool ipv4ll_route;
bool dhcp_server;
char **dns, **ntp;
+ LLMNRSupport llmnr;
+
LIST_FIELDS(Network, networks);
};
struct Address {
Network *network;
- uint64_t section;
+ unsigned section;
int family;
unsigned char prefixlen;
struct Route {
Network *network;
- uint64_t section;
+ unsigned section;
int family;
unsigned char dst_prefixlen;
int n_ref;
- uint64_t ifindex;
+ int ifindex;
char *ifname;
char *state_file;
struct ether_addr mac;
+ uint32_t mtu;
struct udev_device *udev_device;
unsigned flags;
const char *section, unsigned section_line, const char *lvalue,
int ltype, const char *rvalue, void *data, void *userdata);
+/* LLMNR support */
+
+const char* llmnr_support_to_string(LLMNRSupport i) _const_;
+LLMNRSupport llmnr_support_from_string(const char *s) _pure_;
+
+int config_parse_llmnr(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);
+
/* Address Pool */
int address_pool_new(Manager *m, AddressPool **ret, int family, const union in_addr_union *u, unsigned prefixlen);