summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2018-06-12 15:12:53 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2018-06-20 18:49:56 +0200
commit9f8b0697de24e2b74c8514bb1db44a1a0f857cd9 (patch)
treec594159740e28571fc2004b63a3c289e70b08c94
parentd9df1f1d05f7c4fe7c6a4ff357fb8b7f2dbdcdce (diff)
downloadNetworkManager-9f8b0697de24e2b74c8514bb1db44a1a0f857cd9.tar.gz
device: introduce mtu source
Instead of returning a boolean @is_user_config value from get_configured_mtu(), return an mtu-source enum with possible values NONE,CONNECTION. This enum will be expanded later; for now there is no change in behavior.
-rw-r--r--src/devices/nm-device-ethernet.c4
-rw-r--r--src/devices/nm-device-infiniband.c4
-rw-r--r--src/devices/nm-device-ip-tunnel.c4
-rw-r--r--src/devices/nm-device-private.h4
-rw-r--r--src/devices/nm-device-vlan.c6
-rw-r--r--src/devices/nm-device.c21
-rw-r--r--src/devices/nm-device.h7
-rw-r--r--src/devices/wifi/nm-device-iwd.c4
-rw-r--r--src/devices/wifi/nm-device-wifi.c4
-rw-r--r--src/devices/wwan/nm-modem.c10
-rw-r--r--src/devices/wwan/nm-modem.h2
11 files changed, 38 insertions, 32 deletions
diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c
index 87d16dbe37..a9a9f968e6 100644
--- a/src/devices/nm-device-ethernet.c
+++ b/src/devices/nm-device-ethernet.c
@@ -1317,13 +1317,13 @@ act_stage3_ip4_config_start (NMDevice *device,
}
static guint32
-get_configured_mtu (NMDevice *device, gboolean *out_is_user_config)
+get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
{
/* MTU only set for plain ethernet */
if (NM_DEVICE_ETHERNET_GET_PRIVATE ((NMDeviceEthernet *) device)->ppp_manager)
return 0;
- return nm_device_get_configured_mtu_for_wired (device, out_is_user_config);
+ return nm_device_get_configured_mtu_for_wired (device, out_source);
}
static void
diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c
index 6afaf7ba26..99bcef0045 100644
--- a/src/devices/nm-device-infiniband.c
+++ b/src/devices/nm-device-infiniband.c
@@ -115,11 +115,11 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason)
}
static guint32
-get_configured_mtu (NMDevice *device, gboolean *out_is_user_config)
+get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
{
return nm_device_get_configured_mtu_from_connection (device,
NM_TYPE_SETTING_INFINIBAND,
- out_is_user_config);
+ out_source);
}
static gboolean
diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c
index 5abe36645e..2e266bb90a 100644
--- a/src/devices/nm-device-ip-tunnel.c
+++ b/src/devices/nm-device-ip-tunnel.c
@@ -741,11 +741,11 @@ create_and_realize (NMDevice *device,
}
static guint32
-get_configured_mtu (NMDevice *device, gboolean *out_is_user_config)
+get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
{
return nm_device_get_configured_mtu_from_connection (device,
NM_TYPE_SETTING_IP_TUNNEL,
- out_is_user_config);
+ out_source);
}
static NMDeviceCapabilities
diff --git a/src/devices/nm-device-private.h b/src/devices/nm-device-private.h
index b2217ac035..ba28e9e429 100644
--- a/src/devices/nm-device-private.h
+++ b/src/devices/nm-device-private.h
@@ -122,9 +122,9 @@ gint64 nm_device_get_configured_mtu_from_connection_default (NMDevice *self,
guint32 nm_device_get_configured_mtu_from_connection (NMDevice *device,
GType setting_type,
- gboolean *out_is_user_config);
+ NMDeviceMtuSource *out_source);
-guint32 nm_device_get_configured_mtu_for_wired (NMDevice *self, gboolean *out_is_user_config);
+guint32 nm_device_get_configured_mtu_for_wired (NMDevice *self, NMDeviceMtuSource *out_source);
void nm_device_commit_mtu (NMDevice *self);
diff --git a/src/devices/nm-device-vlan.c b/src/devices/nm-device-vlan.c
index a7f4c4bce4..d57c266064 100644
--- a/src/devices/nm-device-vlan.c
+++ b/src/devices/nm-device-vlan.c
@@ -534,13 +534,13 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *out_failure_reason)
}
static guint32
-get_configured_mtu (NMDevice *self, gboolean *out_is_user_config)
+get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source)
{
guint32 mtu = 0;
int ifindex;
- mtu = nm_device_get_configured_mtu_for_wired (self, out_is_user_config);
- if (*out_is_user_config)
+ mtu = nm_device_get_configured_mtu_for_wired (self, out_source);
+ if (*out_source != NM_DEVICE_MTU_SOURCE_NONE)
return mtu;
/* Inherit the MTU from parent device, if any */
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index dc73723cb2..1585ba49f5 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -8373,7 +8373,7 @@ nm_device_get_configured_mtu_from_connection_default (NMDevice *self,
guint32
nm_device_get_configured_mtu_from_connection (NMDevice *self,
GType setting_type,
- gboolean *out_is_user_config)
+ NMDeviceMtuSource *out_source)
{
const char *global_property_name;
NMConnection *connection;
@@ -8382,7 +8382,7 @@ nm_device_get_configured_mtu_from_connection (NMDevice *self,
guint32 mtu = 0;
nm_assert (NM_IS_DEVICE (self));
- nm_assert (out_is_user_config);
+ nm_assert (out_source);
connection = nm_device_get_applied_connection (self);
if (!connection)
@@ -8409,27 +8409,28 @@ nm_device_get_configured_mtu_from_connection (NMDevice *self,
} else
g_return_val_if_reached (0);
+
if (mtu) {
- *out_is_user_config = TRUE;
+ *out_source = NM_DEVICE_MTU_SOURCE_CONNECTION;
return mtu;
}
mtu_default = nm_device_get_configured_mtu_from_connection_default (self, global_property_name);
if (mtu_default >= 0) {
- *out_is_user_config = TRUE;
+ *out_source = NM_DEVICE_MTU_SOURCE_CONNECTION;
return (guint32) mtu_default;
}
- *out_is_user_config = FALSE;
+ *out_source = NM_DEVICE_MTU_SOURCE_NONE;
return 0;
}
guint32
-nm_device_get_configured_mtu_for_wired (NMDevice *self, gboolean *out_is_user_config)
+nm_device_get_configured_mtu_for_wired (NMDevice *self, NMDeviceMtuSource *out_source)
{
return nm_device_get_configured_mtu_from_connection (self,
NM_TYPE_SETTING_WIRED,
- out_is_user_config);
+ out_source);
}
/*****************************************************************************/
@@ -8480,7 +8481,7 @@ _commit_mtu (NMDevice *self, const NMIP4Config *config)
}
{
- gboolean mtu_is_user_config = FALSE;
+ NMDeviceMtuSource mtu_source = NM_DEVICE_MTU_SOURCE_NONE;
guint32 mtu = 0;
/* preferably, get the MTU from explict user-configuration.
@@ -8488,9 +8489,9 @@ _commit_mtu (NMDevice *self, const NMIP4Config *config)
* MTUs from DHCP/PPP) or maybe fallback to a device-specific MTU. */
if (NM_DEVICE_GET_CLASS (self)->get_configured_mtu)
- mtu = NM_DEVICE_GET_CLASS (self)->get_configured_mtu (self, &mtu_is_user_config);
+ mtu = NM_DEVICE_GET_CLASS (self)->get_configured_mtu (self, &mtu_source);
- if (mtu_is_user_config)
+ if (mtu_source == NM_DEVICE_MTU_SOURCE_CONNECTION)
mtu_desired = mtu;
else {
if (config)
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h
index 0d4d5cf8c4..9332476a61 100644
--- a/src/devices/nm-device.h
+++ b/src/devices/nm-device.h
@@ -44,6 +44,11 @@ typedef enum {
NM_DEVICE_SYS_IFACE_STATE_REMOVED,
} NMDeviceSysIfaceState;
+typedef enum {
+ NM_DEVICE_MTU_SOURCE_NONE,
+ NM_DEVICE_MTU_SOURCE_CONNECTION,
+} NMDeviceMtuSource;
+
static inline NMDeviceStateReason
nm_device_state_reason_check (NMDeviceStateReason reason)
{
@@ -287,7 +292,7 @@ typedef struct _NMDeviceClass {
NMConnection *connection,
char **specific_object);
- guint32 (*get_configured_mtu) (NMDevice *self, gboolean *out_is_user_config);
+ guint32 (*get_configured_mtu) (NMDevice *self, NMDeviceMtuSource *out_source);
/* Checks whether the connection is compatible with the device using
* only the devices type and characteristics. Does not use any live
diff --git a/src/devices/wifi/nm-device-iwd.c b/src/devices/wifi/nm-device-iwd.c
index 32d9e783dc..579851851e 100644
--- a/src/devices/wifi/nm-device-iwd.c
+++ b/src/devices/wifi/nm-device-iwd.c
@@ -1316,11 +1316,11 @@ out:
}
static guint32
-get_configured_mtu (NMDevice *device, gboolean *out_is_user_config)
+get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
{
return nm_device_get_configured_mtu_from_connection (device,
NM_TYPE_SETTING_WIRELESS,
- out_is_user_config);
+ out_source);
}
static gboolean
diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
index d2bda98bed..6bd06524ad 100644
--- a/src/devices/wifi/nm-device-wifi.c
+++ b/src/devices/wifi/nm-device-wifi.c
@@ -2786,11 +2786,11 @@ act_stage3_ip6_config_start (NMDevice *device,
}
static guint32
-get_configured_mtu (NMDevice *device, gboolean *out_is_user_config)
+get_configured_mtu (NMDevice *device, NMDeviceMtuSource *out_source)
{
return nm_device_get_configured_mtu_from_connection (device,
NM_TYPE_SETTING_WIRELESS,
- out_is_user_config);
+ out_source);
}
static gboolean
diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c
index ff1579d102..617d5c4a54 100644
--- a/src/devices/wwan/nm-modem.c
+++ b/src/devices/wwan/nm-modem.c
@@ -859,7 +859,7 @@ nm_modem_stage3_ip6_config_start (NMModem *self,
}
guint32
-nm_modem_get_configured_mtu (NMDevice *self, gboolean *out_is_user_config)
+nm_modem_get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source)
{
NMConnection *connection;
NMSetting *setting;
@@ -868,7 +868,7 @@ nm_modem_get_configured_mtu (NMDevice *self, gboolean *out_is_user_config)
const char *property_name;
nm_assert (NM_IS_DEVICE (self));
- nm_assert (out_is_user_config);
+ nm_assert (out_source);
connection = nm_device_get_applied_connection (self);
if (!connection)
@@ -881,19 +881,19 @@ nm_modem_get_configured_mtu (NMDevice *self, gboolean *out_is_user_config)
if (setting) {
g_object_get (setting, "mtu", &mtu, NULL);
if (mtu) {
- *out_is_user_config = TRUE;
+ *out_source = NM_DEVICE_MTU_SOURCE_CONNECTION;
return mtu;
}
property_name = NM_IS_SETTING_GSM (setting) ? "gsm.mtu" : "cdma.mtu";
mtu_default = nm_device_get_configured_mtu_from_connection_default (self, property_name);
if (mtu_default >= 0) {
- *out_is_user_config = TRUE;
+ *out_source = NM_DEVICE_MTU_SOURCE_CONNECTION;
return (guint32) mtu_default;
}
}
- *out_is_user_config = FALSE;
+ *out_source = NM_DEVICE_MTU_SOURCE_NONE;
return 0;
}
diff --git a/src/devices/wwan/nm-modem.h b/src/devices/wwan/nm-modem.h
index 6e78d2d5d7..cad9ece415 100644
--- a/src/devices/wwan/nm-modem.h
+++ b/src/devices/wwan/nm-modem.h
@@ -275,6 +275,6 @@ void nm_modem_emit_ip6_config_result (NMModem *self,
const gchar *nm_modem_ip_type_to_string (NMModemIPType ip_type);
-guint32 nm_modem_get_configured_mtu (NMDevice *self, gboolean *out_is_user_config);
+guint32 nm_modem_get_configured_mtu (NMDevice *self, NMDeviceMtuSource *out_source);
#endif /* __NETWORKMANAGER_MODEM_H__ */