diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2020-08-05 13:26:34 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2020-08-06 16:52:35 +0200 |
commit | 0a006c04121a13221de585d3f778c5341f36b504 (patch) | |
tree | b1071bad42ea3eb3f822cf012fa97efe77025501 /src | |
parent | ac6f21cae442bb35b08337f14a97d6ae3f71b52a (diff) |
initrd: disable STP on bridges
NM enables by default STP on bridges, which causes a forwarding delay
of 15 seconds on boot. Disable it.
Diffstat (limited to 'src')
-rw-r--r-- | src/initrd/nmi-cmdline-reader.c | 12 | ||||
-rw-r--r-- | src/initrd/tests/test-cmdline-reader.c | 1 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/initrd/nmi-cmdline-reader.c b/src/initrd/nmi-cmdline-reader.c index 17f9e1dfd2..8ba6dbb827 100644 --- a/src/initrd/nmi-cmdline-reader.c +++ b/src/initrd/nmi-cmdline-reader.c @@ -584,7 +584,6 @@ reader_parse_master (Reader *reader, { NMConnection *connection; NMSettingConnection *s_con; - NMSettingBond *s_bond; gs_free char *master_to_free = NULL; const char *master; char *slaves; @@ -603,8 +602,15 @@ reader_parse_master (Reader *reader, s_con = nm_connection_get_setting_connection (connection); master = nm_setting_connection_get_uuid (s_con); - if (nm_streq (type_name, NM_SETTING_BOND_SETTING_NAME)) { - s_bond = (NMSettingBond *)nm_connection_get_setting_by_name (connection, type_name); + if (nm_streq (type_name, NM_SETTING_BRIDGE_SETTING_NAME)) { + NMSettingBridge *s_bridge = nm_connection_get_setting_bridge (connection); + + /* Avoid the forwarding delay */ + g_object_set (s_bridge, + NM_SETTING_BRIDGE_STP, FALSE, + NULL); + } else if (nm_streq (type_name, NM_SETTING_BOND_SETTING_NAME)) { + NMSettingBond *s_bond = nm_connection_get_setting_bond (connection); opts = get_word (&argument, ':'); while (opts && *opts) { diff --git a/src/initrd/tests/test-cmdline-reader.c b/src/initrd/tests/test-cmdline-reader.c index 04594c48be..074654d347 100644 --- a/src/initrd/tests/test-cmdline-reader.c +++ b/src/initrd/tests/test-cmdline-reader.c @@ -774,6 +774,7 @@ test_bridge (void) s_bridge = nm_connection_get_setting_bridge (connection); g_assert (s_bridge); + g_assert_cmpint (nm_setting_bridge_get_stp (s_bridge), ==, FALSE); connection = g_hash_table_lookup (connections, "eth0"); g_assert (connection); |