summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-09-15 18:05:18 +0200
committerThomas Haller <thaller@redhat.com>2020-09-15 18:07:24 +0200
commitb850cea87413e0f07fb44ac0e8de9b54bb4c2e10 (patch)
tree128ea04b43fc6f8b966ebf910178888bac49c37c
parent9802c89972ec6d72e6718aadbfa84b2e66d7485d (diff)
downloadNetworkManager-b850cea87413e0f07fb44ac0e8de9b54bb4c2e10.tar.gz
l3cfg: add nm_l3_config_data_{get,set}_ip6_mtu() API
-rw-r--r--src/nm-l3-config-data.c26
-rw-r--r--src/nm-l3-config-data.h5
-rw-r--r--src/nm-l3cfg.c2
3 files changed, 33 insertions, 0 deletions
diff --git a/src/nm-l3-config-data.c b/src/nm-l3-config-data.c
index fa07c743f4..ed6441099f 100644
--- a/src/nm-l3-config-data.c
+++ b/src/nm-l3-config-data.c
@@ -122,6 +122,7 @@ struct _NML3ConfigData {
int ndisc_hop_limit_val;
guint32 mtu;
+ guint32 ip6_mtu;
guint32 ndisc_reachable_time_msec_val;
guint32 ndisc_retrans_timer_msec_val;
@@ -1336,6 +1337,27 @@ nm_l3_config_data_set_mtu (NML3ConfigData *self,
return TRUE;
}
+guint32
+nm_l3_config_data_get_ip6_mtu (const NML3ConfigData *self)
+{
+ nm_assert (_NM_IS_L3_CONFIG_DATA (self, TRUE));
+
+ return self->ip6_mtu;
+}
+
+gboolean
+nm_l3_config_data_set_ip6_mtu (NML3ConfigData *self,
+ guint32 ip6_mtu)
+{
+ nm_assert (_NM_IS_L3_CONFIG_DATA (self, FALSE));
+
+ if (self->ip6_mtu == ip6_mtu)
+ return FALSE;
+
+ self->ip6_mtu = ip6_mtu;
+ return TRUE;
+}
+
gboolean
nm_l3_config_data_set_source (NML3ConfigData *self,
NMIPConfigSource source)
@@ -1596,6 +1618,7 @@ nm_l3_config_data_cmp (const NML3ConfigData *a, const NML3ConfigData *b)
NM_CMP_DIRECT (a->mdns, b->mdns);
NM_CMP_DIRECT (a->llmnr, b->llmnr);
NM_CMP_DIRECT (a->mtu, b->mtu);
+ NM_CMP_DIRECT (a->ip6_mtu, b->ip6_mtu);
NM_CMP_DIRECT_UNSAFE (a->metered, b->metered);
NM_CMP_DIRECT_UNSAFE (a->ip6_privacy, b->ip6_privacy);
@@ -2401,6 +2424,9 @@ nm_l3_config_data_merge (NML3ConfigData *self,
if (self->mtu == 0u)
self->mtu = src->mtu;
+ if (self->ip6_mtu == 0u)
+ self->ip6_mtu = src->ip6_mtu;
+
/* self->source does not get merged. */
/* self->dhcp_lease_x does not get merged. */
}
diff --git a/src/nm-l3-config-data.h b/src/nm-l3-config-data.h
index 09e1e1d6a9..7878381d01 100644
--- a/src/nm-l3-config-data.h
+++ b/src/nm-l3-config-data.h
@@ -439,6 +439,11 @@ guint32 nm_l3_config_data_get_mtu (const NML3ConfigData *self);
gboolean nm_l3_config_data_set_mtu (NML3ConfigData *self,
guint32 mtu);
+guint32 nm_l3_config_data_get_ip6_mtu (const NML3ConfigData *self);
+
+gboolean nm_l3_config_data_set_ip6_mtu (NML3ConfigData *self,
+ guint32 ip6_mtu);
+
const in_addr_t *nm_l3_config_data_get_wins (const NML3ConfigData *self,
guint *out_len);
diff --git a/src/nm-l3cfg.c b/src/nm-l3cfg.c
index 9b9a3a52d9..7526897464 100644
--- a/src/nm-l3cfg.c
+++ b/src/nm-l3cfg.c
@@ -2850,6 +2850,8 @@ _platform_commit (NML3Cfg *self,
/* FIXME(l3cfg): need to honor and set nm_l3_config_data_get_ip6_privacy(). */
/* FIXME(l3cfg): need to honor and set nm_l3_config_data_get_ndisc_*(). */
+ /* FIXME(l3cfg): need to honor and set nm_l3_config_data_get_ip6_mtu(). */
+ /* FIXME(l3cfg): need to honor and set nm_l3_config_data_get_mtu(). */
nm_platform_ip_address_sync (self->priv.platform,
addr_family,