bridge: force (hack)-set of the MTU when explicitly set in the profile

Kernel does a auto-mtu adjusting process whenever a port is added/removed from
the bridge, this can cause issues when NM wants to explicitly set an MTU which is
equal to the bridge default one (1500) because if later a port is added with a
different MTU the kernel will assign the bridge that port's MTU resulting in the bridge
runtime configuration differing from the bridge's NM connection profile.

What we can do is to always apply the MTU manually for the bridge (if explicitly
set by the profile), after doing so the kernel won't modify the MTU anymore,
which is what we want, problem is that kernel won't actually apply the MTU
to the netdev if it's not actually changing.

To ensure the MTU is correctly set we create the link with MTU=MTU-1
so that later during the activation the MTU is commited to the
correct value and actually stays so.

https://bugzilla.redhat.com/show_bug.cgi?id=1778590

Signed-off-by: Antonio Cardace <acardace@redhat.com>
21 jobs for ac/bridge_mtu_autoadjust in 42 minutes and 58 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Test
passed #5161333
checkpatch

00:02:52

manual #5161341
allowed to fail manual
t_centos:7.5.1804
manual #5161342
allowed to fail manual
t_centos:7.6.1810
manual #5161343
allowed to fail manual
t_centos:7.7.1908
manual #5161344
allowed to fail manual
t_centos:7.8.2003
manual #5161345
allowed to fail manual
t_centos:8.1.1911
manual #5161351
allowed to fail manual
t_debian:10
manual #5161350
allowed to fail manual
t_debian:9
manual #5161353
allowed to fail manual
t_debian:sid
manual #5161352
allowed to fail manual
t_debian:testing
manual #5161334
allowed to fail manual
t_fedora:28
manual #5161335
allowed to fail manual
t_fedora:29
manual #5161336
allowed to fail manual
t_fedora:30
manual #5161337
allowed to fail manual
t_fedora:31
passed #5161338
t_fedora:32

00:42:57

manual #5161339
allowed to fail manual
t_fedora:33
manual #5161340
allowed to fail manual
t_fedora:rawhide
manual #5161346
allowed to fail manual
t_ubuntu:16.04
manual #5161347
allowed to fail manual
t_ubuntu:18.04
manual #5161349
allowed to fail manual
t_ubuntu:devel
manual #5161348
allowed to fail manual
t_ubuntu:rolling