summaryrefslogtreecommitdiff
path: root/src/network/networkd-network.h
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-28 23:23:45 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-05-03 12:23:01 -0400
commit8341a5c381a72d504768fe296f8e30a324eeff77 (patch)
tree70dc29a424eafc5d533e2b4af2c1fcf04326ab27 /src/network/networkd-network.h
parentd7df2fd317bb24d4d194dbd0d391f4dfa64d6924 (diff)
networkd: rework duid_{type,duid_type,duid,duid_len} setting
Separate fields are replaced with a struct. Second second duid type field is removed. The first field was used to carry the result of DUIDType= configuration, and the second was either a copy of this, or contained the type extracted from DuidRawData. The semantics are changed so that the type specified in DUIDType is always used. DUIDRawData= no longer overrides the type setting. The networkd code is now more constrained than the sd-dhcp code: DUIDRawData cannot have 0 length, length 0 is treated the same as unsetting. Likewise, it is not possible to set a DUIDType=0. If it ever becomes necessary to set type=0 or a zero-length duid, the code can be changed to support that. Nevertheless, I think that's unlikely. This addresses #3127 § 1 and 3. v2: - rename DUID.duid, DUID.duid_len to DUID.raw_data, DUID.raw_data_len
Diffstat (limited to 'src/network/networkd-network.h')
-rw-r--r--src/network/networkd-network.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h
index 9b8096f9ae..ff2414efdd 100644
--- a/src/network/networkd-network.h
+++ b/src/network/networkd-network.h
@@ -68,6 +68,14 @@ typedef enum LLDPMode {
_LLDP_MODE_INVALID = -1,
} LLDPMode;
+typedef struct DUID {
+ /* Value of Type in [DHCP] section */
+ DUIDType type;
+
+ uint8_t raw_data_len;
+ uint8_t raw_data[MAX_DUID_LEN];
+} DUID;
+
typedef struct Manager Manager;
struct Network {
@@ -150,12 +158,7 @@ struct Network {
struct ether_addr *mac;
unsigned mtu;
uint32_t iaid;
- /* Value of Type in [DUID] section */
- DUIDType duid_type;
- /* DUID type code - RFC 3315 */
- uint16_t dhcp_duid_type;
- size_t dhcp_duid_len;
- uint8_t dhcp_duid[MAX_DUID_LEN];
+ DUID duid;
LLDPMode lldp_mode; /* LLDP reception */
bool lldp_emit; /* LLDP transmission */