diff options
author | Thomas Haller <thaller@redhat.com> | 2017-10-03 11:30:35 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-10-09 22:06:25 +0200 |
commit | 9003dae6cdc12fc4860d35b91d5799b1bf8d5638 (patch) | |
tree | 7c545600cebfd75f1f1f0d1a0ab829705cc3de51 | |
parent | 2e146148702615f31209f6ccc07ca02663eddb7b (diff) | |
download | NetworkManager-9003dae6cdc12fc4860d35b91d5799b1bf8d5638.tar.gz |
core: don't track route MSS in ip-config
The MSS is only set for VPN connections (by merging it in the respective
NMIP4Config/NMIP6Config).
It is also only used when setting the MSS of the default route.
Don't track that property in NMIP4Config/NMIP6Config, instead, set the
mss of the route directly in nm_vpn_connection_ip4_config_get() and
nm_vpn_connection_ip6_config_get().
There is a potential change in behavior here: NMDevice also consisdered
the MSS for the default route, but that would only be set if the MSS
gets merged from an vpn-ip-config. Which at most is the case for
iterface-less VPN types (libreswan). But even in that case, it doesn't
seem right to me to use the VPN's MSS for the device's default-route.
-rw-r--r-- | src/devices/nm-device.c | 2 | ||||
-rw-r--r-- | src/nm-ip4-config.c | 34 | ||||
-rw-r--r-- | src/nm-ip4-config.h | 3 | ||||
-rw-r--r-- | src/nm-ip6-config.c | 32 | ||||
-rw-r--r-- | src/nm-ip6-config.h | 3 | ||||
-rw-r--r-- | src/tests/test-ip4-config.c | 14 | ||||
-rw-r--r-- | src/vpn/nm-vpn-connection.c | 12 |
7 files changed, 8 insertions, 92 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 67f87adb7f..8165c3fcf0 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -5868,7 +5868,6 @@ ip4_config_merge_and_apply (NMDevice *self, default_route.gateway = gateway; default_route.table_coerced = nm_platform_route_table_coerce (nm_device_get_route_table (self, AF_INET, TRUE)); default_route.metric = route_metric_with_penalty (self, default_route_metric); - default_route.mss = nm_ip4_config_get_mss (composite); nm_clear_nmp_object (&priv->default_route4); nm_ip4_config_add_route (composite, &default_route, &priv->default_route4); @@ -6609,7 +6608,6 @@ ip6_config_merge_and_apply (NMDevice *self, default_route.gateway = *gateway; default_route.table_coerced = nm_platform_route_table_coerce (nm_device_get_route_table (self, AF_INET6, TRUE)); default_route.metric = route_metric_with_penalty (self, default_route_metric); - default_route.mss = nm_ip6_config_get_mss (composite); nm_clear_nmp_object (&priv->default_route6); nm_ip6_config_add_route (composite, &default_route, &priv->default_route6); diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index fe32358081..101b3b0fbc 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -291,7 +291,6 @@ typedef struct { bool metered:1; bool has_gateway:1; guint32 gateway; - guint32 mss; guint32 mtu; int ifindex; NMIPConfigSource mtu_source; @@ -1141,10 +1140,6 @@ nm_ip4_config_merge (NMIP4Config *dst, const NMIP4Config *src, NMIPConfigMergeFl nm_ip4_config_add_dns_option (dst, nm_ip4_config_get_dns_option (src, i)); } - /* MSS */ - if (nm_ip4_config_get_mss (src)) - nm_ip4_config_set_mss (dst, nm_ip4_config_get_mss (src)); - /* MTU */ if ( src_priv->mtu_source > dst_priv->mtu_source || ( src_priv->mtu_source == dst_priv->mtu_source @@ -1372,10 +1367,6 @@ nm_ip4_config_subtract (NMIP4Config *dst, const NMIP4Config *src) nm_ip4_config_del_dns_option (dst, idx); } - /* MSS */ - if (nm_ip4_config_get_mss (src) == nm_ip4_config_get_mss (dst)) - nm_ip4_config_set_mss (dst, 0); - /* MTU */ if ( nm_ip4_config_get_mtu (src) == nm_ip4_config_get_mtu (dst) && nm_ip4_config_get_mtu_source (src) == nm_ip4_config_get_mtu_source (dst)) @@ -1733,12 +1724,6 @@ nm_ip4_config_replace (NMIP4Config *dst, const NMIP4Config *src, gboolean *relev has_minor_changes = TRUE; } - /* mss */ - if (src_priv->mss != dst_priv->mss) { - nm_ip4_config_set_mss (dst, src_priv->mss); - has_minor_changes = TRUE; - } - /* nis */ num = nm_ip4_config_get_num_nis_servers (src); are_equal = num == nm_ip4_config_get_num_nis_servers (dst); @@ -1863,7 +1848,6 @@ nm_ip4_config_dump (const NMIP4Config *self, const char *detail) g_message (" dnspri: %d", nm_ip4_config_get_dns_priority (self)); - g_message (" mss: %"G_GUINT32_FORMAT, nm_ip4_config_get_mss (self)); g_message (" mtu: %"G_GUINT32_FORMAT" (source: %d)", nm_ip4_config_get_mtu (self), (int) nm_ip4_config_get_mtu_source (self)); /* NIS */ @@ -2518,24 +2502,6 @@ nm_ip4_config_get_dns_priority (const NMIP4Config *self) /*****************************************************************************/ void -nm_ip4_config_set_mss (NMIP4Config *self, guint32 mss) -{ - NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self); - - priv->mss = mss; -} - -guint32 -nm_ip4_config_get_mss (const NMIP4Config *self) -{ - const NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self); - - return priv->mss; -} - -/*****************************************************************************/ - -void nm_ip4_config_reset_nis_servers (NMIP4Config *self) { NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self); diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index 230cee6a1b..429c0752fe 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -233,9 +233,6 @@ const char * nm_ip4_config_get_dns_option (const NMIP4Config *self, guint i); void nm_ip4_config_set_dns_priority (NMIP4Config *self, gint priority); gint nm_ip4_config_get_dns_priority (const NMIP4Config *self); -void nm_ip4_config_set_mss (NMIP4Config *self, guint32 mss); -guint32 nm_ip4_config_get_mss (const NMIP4Config *self); - void nm_ip4_config_reset_nis_servers (NMIP4Config *self); void nm_ip4_config_add_nis_server (NMIP4Config *self, guint32 nis); void nm_ip4_config_del_nis_server (NMIP4Config *self, guint i); diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 480465e5b9..6516b8b840 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -59,7 +59,6 @@ _route_valid (const NMPlatformIP6Route *r) typedef struct { bool never_default:1; - guint32 mss; int ifindex; int dns_priority; NMSettingIP6ConfigPrivacy privacy; @@ -940,9 +939,6 @@ nm_ip6_config_merge (NMIP6Config *dst, const NMIP6Config *src, NMIPConfigMergeFl nm_ip6_config_add_dns_option (dst, nm_ip6_config_get_dns_option (src, i)); } - if (nm_ip6_config_get_mss (src)) - nm_ip6_config_set_mss (dst, nm_ip6_config_get_mss (src)); - /* DNS priority */ if (nm_ip6_config_get_dns_priority (src)) nm_ip6_config_set_dns_priority (dst, nm_ip6_config_get_dns_priority (src)); @@ -1135,9 +1131,6 @@ nm_ip6_config_subtract (NMIP6Config *dst, const NMIP6Config *src) nm_ip6_config_del_dns_option (dst, idx); } - if (nm_ip6_config_get_mss (src) == nm_ip6_config_get_mss (dst)) - nm_ip6_config_set_mss (dst, 0); - /* DNS priority */ if (nm_ip6_config_get_dns_priority (src) == nm_ip6_config_get_dns_priority (dst)) nm_ip6_config_set_dns_priority (dst, 0); @@ -1468,12 +1461,6 @@ nm_ip6_config_replace (NMIP6Config *dst, const NMIP6Config *src, gboolean *relev has_relevant_changes = TRUE; } - /* mss */ - if (src_priv->mss != dst_priv->mss) { - nm_ip6_config_set_mss (dst, src_priv->mss); - has_minor_changes = TRUE; - } - /* DNS priority */ if (src_priv->dns_priority != dst_priv->dns_priority) { nm_ip6_config_set_dns_priority (dst, src_priv->dns_priority); @@ -1550,7 +1537,6 @@ nm_ip6_config_dump (const NMIP6Config *self, const char *detail) g_message (" dnspri: %d", nm_ip6_config_get_dns_priority (self)); - g_message (" mss: %"G_GUINT32_FORMAT, nm_ip6_config_get_mss (self)); g_message (" n-dflt: %d", nm_ip6_config_get_never_default (self)); } @@ -2338,24 +2324,6 @@ nm_ip6_config_get_dns_priority (const NMIP6Config *self) /*****************************************************************************/ -void -nm_ip6_config_set_mss (NMIP6Config *self, guint32 mss) -{ - NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self); - - priv->mss = mss; -} - -guint32 -nm_ip6_config_get_mss (const NMIP6Config *self) -{ - const NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self); - - return priv->mss; -} - -/*****************************************************************************/ - const NMPObject * nm_ip6_config_nmpobj_lookup (const NMIP6Config *self, const NMPObject *needle) { diff --git a/src/nm-ip6-config.h b/src/nm-ip6-config.h index 8b738331f7..3555d53eb5 100644 --- a/src/nm-ip6-config.h +++ b/src/nm-ip6-config.h @@ -194,9 +194,6 @@ const char * nm_ip6_config_get_dns_option (const NMIP6Config *self, guint i); void nm_ip6_config_set_dns_priority (NMIP6Config *self, gint priority); gint nm_ip6_config_get_dns_priority (const NMIP6Config *self); -void nm_ip6_config_set_mss (NMIP6Config *self, guint32 mss); -guint32 nm_ip6_config_get_mss (const NMIP6Config *self); - const NMPObject *nm_ip6_config_nmpobj_lookup (const NMIP6Config *self, const NMPObject *needle); gboolean nm_ip6_config_nmpobj_remove (NMIP6Config *self, diff --git a/src/tests/test-ip4-config.c b/src/tests/test-ip4-config.c index 8c6cd8d15c..c2a1c006c5 100644 --- a/src/tests/test-ip4-config.c +++ b/src/tests/test-ip4-config.c @@ -84,7 +84,6 @@ test_subtract (void) const char *expected_search = "somewhere.com"; guint32 expected_nis = nmtst_inet4_from_string ("1.2.3.13"); guint32 expected_wins = nmtst_inet4_from_string ("2.3.4.5"); - guint32 expected_mss = 1400; guint32 expected_mtu = 1492; src = build_test_config (); @@ -105,7 +104,6 @@ test_subtract (void) nm_ip4_config_add_nis_server (dst, expected_nis); nm_ip4_config_add_wins (dst, expected_wins); - nm_ip4_config_set_mss (dst, expected_mss); nm_ip4_config_set_mtu (dst, expected_mtu, NM_IP_CONFIG_SOURCE_UNKNOWN); nm_ip4_config_subtract (dst, src); @@ -142,7 +140,6 @@ test_subtract (void) g_assert_cmpuint (nm_ip4_config_get_num_wins (dst), ==, 1); g_assert_cmpuint (nm_ip4_config_get_wins (dst, 0), ==, expected_wins); - g_assert_cmpuint (nm_ip4_config_get_mss (dst), ==, expected_mss); g_assert_cmpuint (nm_ip4_config_get_mtu (dst), ==, expected_mtu); g_object_unref (src); @@ -267,12 +264,10 @@ test_add_route_with_source (void) } static void -test_merge_subtract_mss_mtu (void) +test_merge_subtract_mtu (void) { NMIP4Config *cfg1, *cfg2, *cfg3; - guint32 expected_mss2 = 1400; guint32 expected_mtu2 = 1492; - guint32 expected_mss3 = 555; guint32 expected_mtu3 = 666; cfg1 = build_test_config (); @@ -280,24 +275,19 @@ test_merge_subtract_mss_mtu (void) cfg3 = build_test_config (); /* add MSS, MTU to configs to test them */ - nm_ip4_config_set_mss (cfg2, expected_mss2); nm_ip4_config_set_mtu (cfg2, expected_mtu2, NM_IP_CONFIG_SOURCE_UNKNOWN); - nm_ip4_config_set_mss (cfg3, expected_mss3); nm_ip4_config_set_mtu (cfg3, expected_mtu3, NM_IP_CONFIG_SOURCE_UNKNOWN); nm_ip4_config_merge (cfg1, cfg2, NM_IP_CONFIG_MERGE_DEFAULT); /* ensure MSS and MTU are in cfg1 */ - g_assert_cmpuint (nm_ip4_config_get_mss (cfg1), ==, expected_mss2); g_assert_cmpuint (nm_ip4_config_get_mtu (cfg1), ==, expected_mtu2); nm_ip4_config_merge (cfg1, cfg3, NM_IP_CONFIG_MERGE_DEFAULT); /* ensure again the MSS and MTU in cfg1 got overridden */ - g_assert_cmpuint (nm_ip4_config_get_mss (cfg1), ==, expected_mss3); g_assert_cmpuint (nm_ip4_config_get_mtu (cfg1), ==, expected_mtu3); nm_ip4_config_subtract (cfg1, cfg3); /* ensure MSS and MTU are zero in cfg1 */ - g_assert_cmpuint (nm_ip4_config_get_mss (cfg1), ==, 0); g_assert_cmpuint (nm_ip4_config_get_mtu (cfg1), ==, 0); g_object_unref (cfg1); @@ -339,7 +329,7 @@ main (int argc, char **argv) g_test_add_func ("/ip4-config/compare-with-source", test_compare_with_source); g_test_add_func ("/ip4-config/add-address-with-source", test_add_address_with_source); g_test_add_func ("/ip4-config/add-route-with-source", test_add_route_with_source); - g_test_add_func ("/ip4-config/merge-subtract-mss-mtu", test_merge_subtract_mss_mtu); + g_test_add_func ("/ip4-config/merge-subtract-mtu", test_merge_subtract_mtu); g_test_add_func ("/ip4-config/strip-search-trailing-dot", test_strip_search_trailing_dot); return g_test_run (); diff --git a/src/vpn/nm-vpn-connection.c b/src/vpn/nm-vpn-connection.c index 893033e431..e9a2bd919f 100644 --- a/src/vpn/nm-vpn-connection.c +++ b/src/vpn/nm-vpn-connection.c @@ -1010,7 +1010,6 @@ print_vpn_config (NMVpnConnection *self) _LOGI ("Data: Internal Address: %s", nm_utils_inet4_ntop (address4->address, NULL)); _LOGI ("Data: Internal Prefix: %d", address4->plen); _LOGI ("Data: Internal Point-to-Point Address: %s", nm_utils_inet4_ntop (address4->peer_address, NULL)); - _LOGI ("Data: Maximum Segment Size (MSS): %d", nm_ip4_config_get_mss (priv->ip4_config)); nm_ip_config_iter_ip4_route_for_each (&ipconf_iter, priv->ip4_config, &route) { _LOGI ("Data: Static Route: %s/%d Next Hop: %s", @@ -1048,7 +1047,6 @@ print_vpn_config (NMVpnConnection *self) _LOGI ("Data: Internal Address: %s", nm_utils_inet6_ntop (&address6->address, NULL)); _LOGI ("Data: Internal Prefix: %d", address6->plen); _LOGI ("Data: Internal Point-to-Point Address: %s", nm_utils_inet6_ntop (&address6->peer_address, NULL)); - _LOGI ("Data: Maximum Segment Size (MSS): %d", nm_ip6_config_get_mss (priv->ip6_config)); nm_ip_config_iter_ip6_route_for_each (&ipconf_iter, priv->ip6_config, &route) { _LOGI ("Data: Static Route: %s/%d Next Hop: %s", @@ -1480,6 +1478,7 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) GVariant *v; gboolean b; int ip_ifindex; + guint32 mss = 0; g_return_if_fail (dict && g_variant_is_of_type (dict, G_VARIANT_TYPE_VARDICT)); @@ -1563,7 +1562,7 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) } if (g_variant_lookup (dict, NM_VPN_PLUGIN_IP4_CONFIG_MSS, "u", &u32)) - nm_ip4_config_set_mss (config, u32); + mss = u32; if (g_variant_lookup (dict, NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN, "&s", &str)) nm_ip4_config_add_domain (config, str); @@ -1641,7 +1640,7 @@ nm_vpn_connection_ip4_config_get (NMVpnConnection *self, GVariant *dict) .gateway = nm_ip4_config_get_gateway (config), .table_coerced = nm_platform_route_table_coerce (route_table), .metric = route_metric, - .mss = nm_ip4_config_get_mss (config), + .mss = mss, }; nm_ip4_config_add_route (config, &r, NULL); @@ -1679,6 +1678,7 @@ nm_vpn_connection_ip6_config_get (NMVpnConnection *self, GVariant *dict) GVariant *v; gboolean b; int ip_ifindex; + guint32 mss = 0; g_return_if_fail (dict && g_variant_is_of_type (dict, G_VARIANT_TYPE_VARDICT)); @@ -1752,7 +1752,7 @@ nm_vpn_connection_ip6_config_get (NMVpnConnection *self, GVariant *dict) } if (g_variant_lookup (dict, NM_VPN_PLUGIN_IP6_CONFIG_MSS, "u", &u32)) - nm_ip6_config_set_mss (config, u32); + mss = u32; if (g_variant_lookup (dict, NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN, "&s", &str)) nm_ip6_config_add_domain (config, str); @@ -1827,7 +1827,7 @@ next: .gateway = *(nm_ip6_config_get_gateway (config) ?: &in6addr_any), .table_coerced = nm_platform_route_table_coerce (route_table), .metric = route_metric, - .mss = nm_ip6_config_get_mss (config), + .mss = mss, }; nm_ip6_config_add_route (config, &r, NULL); |