bond: allow overriding the MTU

Set the MTU if 802-3-ethernet.mtu is present and non-zero. The ifcfg-rh writer
sets it if there's a MTU key.

https://bugzilla.redhat.com/show_bug.cgi?id=1177582
(cherry picked from commit a169a79a7d)
This commit is contained in:
Lubomir Rintel 2015-01-06 19:09:46 +01:00
parent 6a8a4d0c28
commit 5359322b6d

View file

@ -37,6 +37,7 @@
#include "nm-enum-types.h"
#include "nm-device-factory.h"
#include "nm-core-internal.h"
#include "nm-ip4-config.h"
#include "nm-device-bond-glue.h"
@ -377,6 +378,25 @@ act_stage1_prepare (NMDevice *dev, NMDeviceStateReason *reason)
return ret;
}
static void
ip4_config_pre_commit (NMDevice *self, NMIP4Config *config)
{
NMConnection *connection;
NMSettingWired *s_wired;
guint32 mtu;
connection = nm_device_get_connection (self);
g_assert (connection);
s_wired = nm_connection_get_setting_wired (connection);
if (s_wired) {
/* MTU override */
mtu = nm_setting_wired_get_mtu (s_wired);
if (mtu)
nm_ip4_config_set_mtu (config, mtu, NM_IP_CONFIG_SOURCE_USER);
}
}
static gboolean
enslave_slave (NMDevice *device,
NMDevice *slave,
@ -510,6 +530,7 @@ nm_device_bond_class_init (NMDeviceBondClass *klass)
parent_class->master_update_slave_connection = master_update_slave_connection;
parent_class->act_stage1_prepare = act_stage1_prepare;
parent_class->ip4_config_pre_commit = ip4_config_pre_commit;
parent_class->enslave_slave = enslave_slave;
parent_class->release_slave = release_slave;