chiark / gitweb /
systemd-networkd: Use IFA_F_NOPREFIXROUTE with IPv6 addresses
[elogind.git] / src / network / networkd.h
index fdd0684fca191e73c2cf1f2ac81a03d2196812a3..c26d64e38331bf3a70d8a72a1917ae6c3dcbdb54 100644 (file)
@@ -83,6 +83,13 @@ typedef enum LinkOperationalState {
         _LINK_OPERSTATE_INVALID = -1
 } LinkOperationalState;
 
+typedef enum DCHPClientIdentifier {
+        DHCP_CLIENT_ID_MAC,
+        DHCP_CLIENT_ID_DUID,
+        _DHCP_CLIENT_ID_MAX,
+        _DHCP_CLIENT_ID_INVALID = -1,
+} DCHPClientIdentifier;
+
 struct FdbEntry {
         Network *network;
         unsigned section;
@@ -115,6 +122,7 @@ struct Network {
         NetDev *bond;
         Hashmap *stacked_netdevs;
         AddressFamilyBoolean dhcp;
+        DCHPClientIdentifier dhcp_client_identifier;
         char *dhcp_vendor_class_identifier;
         bool dhcp_dns;
         bool dhcp_ntp;
@@ -151,7 +159,7 @@ struct Network {
         Hashmap *fdb_entries_by_section;
 
         bool wildcard_domain;
-        char **domains, **dns, **ntp;
+        char **domains, **dns, **ntp, **bind_carrier;
 
         LLMNRSupport llmnr;
 
@@ -165,7 +173,7 @@ struct Address {
         int family;
         unsigned char prefixlen;
         unsigned char scope;
-        unsigned char flags;
+        uint32_t flags;
         char *label;
 
         struct in_addr broadcast;
@@ -383,7 +391,7 @@ int config_parse_label(const char *unit, const char *filename, unsigned line,
                        int ltype, const char *rvalue, void *data, void *userdata);
 
 /* Forwarding database table. */
-int fdb_entry_configure(Link *link, FdbEntry *const fdb_entry);
+int fdb_entry_configure(Link *const link, FdbEntry *const fdb_entry);
 void fdb_entry_free(FdbEntry *fdb_entry);
 int fdb_entry_new_static(Network *const network, const unsigned section, FdbEntry **ret);
 
@@ -403,6 +411,9 @@ int config_parse_fdb_vlan_id(const char *unit, const char *filename, unsigned li
 int config_parse_dhcp(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);
+int config_parse_dhcp_client_identifier(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);
 
 /* IPv4LL support (legacy) */
 
@@ -411,9 +422,9 @@ int config_parse_ipv4ll(const char *unit, const char *filename, unsigned line,
                         int ltype, const char *rvalue, void *data, void *userdata);
 
 /* IPv6 support */
-int config_parse_token(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);
+int config_parse_ipv6token(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);
 
 /* LLMNR support */