Bug 390518 - Fedora27: By default connection editor sets Ethernet to "no auto", 100MBits/s half duplex
Summary: Fedora27: By default connection editor sets Ethernet to "no auto", 100MBits/s...
Status: RESOLVED INTENTIONAL
Alias: None
Product: plasma-nm
Classification: Plasma
Component: kcm (show other bugs)
Version: 5.11.5
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: Jan Grulich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-15 18:37 UTC by Terry Barnaby
Modified: 2019-02-22 11:05 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Terry Barnaby 2018-02-15 18:37:52 UTC
If the /etc/sysconfig/ifcfg-Wired_connection_1 or appropriate file does not contain an "ETHTOOL_OPTS" entry then the connection editor defaults to "autoneg off, 100 MBits/s, half duplex" for an Ethernet interface.
This also occurs when creating a new "ifcfg-*" file when none exist. It is easy to miss this and the interface gets hard coded to 100 MBits/s operation.
I think the default should be "autoneg on" when not actually configured.
This seems like a recent change in behaviour (don't remember seeing the 100Mbits option before).
I noticed 4 of my systems had changed to 100MBits/ half duplex when they should have been "autoneg" at 1GBits/s. This change "appears" to have been written into the ifcfg-* files somehow during a RPM update in the past 2 weeks rather than user driven but it is difficult to confirm this.
See: kde@lists.fedoraproject.org, "Fedora27: KDE-Plasma/networkManager: Ethernet interfaces set to 100MBits/sec half duplex"
Comment 1 Rex Dieter 2018-02-15 18:44:06 UTC
I can confirm this
Comment 2 Ed Greshko 2018-02-15 21:25:50 UTC
I can confirm that on a fresh install of Fedora 27  Bringing up the Network-Manager GUI one sees

Allow Auto-negotiation:  Unchecked
Speed:  Automatic
Duplex: Half

The hardware is
 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller

The driver in use is (from lsmod) e1000.

The ifcfg-enp0s3 file contains...

[egreshko@f27k-v network-scripts]$ cat ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=7f87f7d8-1d0f-316e-9a2c-419042156b19
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
DEVICE=enp0s3

(No, ETHTOOL_OPTS= line)

And ethtool reports....

Settings for enp0s3:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
Cannot get wake-on-lan settings: Operation not permitted
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

So, what the GUI has and what reality is are different.

The Speed is actually 1000Mb/s  

Possibly a function of the driver?
Comment 3 Patrick Silva 2018-02-16 02:39:41 UTC
same thing on Arch Linux.
Comment 4 Jan Grulich 2018-02-23 10:05:33 UTC
Can you compare values from plasma-nm editor and from "nmcli -f all connection show"? Do they match? When you create a new ethernet connection using plasma-nm editor, are all the values correctly set? If you could verify this with nmcli and ethtool.
Comment 5 Terry Barnaby 2018-02-25 17:22:48 UTC
Hi,
The output of "nmcli -f all connection show" is given below, but this does not appear to have any information on the Ethernet physical link settings so I'm not sure what help that is ?

Creating a new "Wired Ethernet" connection using plasma-nm appears to set the "Auto negotiation" on by default as it should.

It seems as if plasma-nm fails in this re-guard if there is already a ifcfg-* file that does not have a "ETHTOOL_OPTS" entry.

Terry

NAME                UUID                                  TYPE             TIMESTAMP   TIMESTAMP-REAL                AUTOCONNECT  AUTOCONNECT-PRIORITY  READONLY  DBUS-PATH                                   ACTIVE  DEVICE  STATE      ACTIVE-PATH                                         SLAVE 
Wired connection 1  9c0bb5e9-eca6-34ed-bfc6-585da165064d  802-3-ethernet   1519578907  Sun 25 Feb 2018 17:15:07 GMT  yes          4294967196            no        /org/freedesktop/NetworkManager/Settings/3  yes     enp2s0  activated  /org/freedesktop/NetworkManager/ActiveConnection/1  --    
ens3                a0956992-9b49-3e17-9055-f5193034b1eb  802-3-ethernet   1513600123  Mon 18 Dec 2017 12:28:43 GMT  yes          4294966297            no        /org/freedesktop/NetworkManager/Settings/4  no      --      --         --                                                  --    
sonoff-4856         9ddc993a-11e2-478f-ac94-2d1380c57b8e  802-11-wireless  1517149559  Sun 28 Jan 2018 14:25:59 GMT  yes          0                     no        /org/freedesktop/NetworkManager/Settings/1  no      --      --         --                                                  --    
sonoff-5383         efa54c02-fb7b-4981-848a-7f796936385d  802-11-wireless  1514716354  Sun 31 Dec 2017 10:32:34 GMT  yes          0                     no        /org/freedesktop/NetworkManager/Settings/2  no      --      --         --
Comment 6 Jan Grulich 2018-02-26 13:24:27 UTC
Sorry, my fault, you have to type your connection name at the end of that command, in my case it is:
nmcli -f all connection show em1
Comment 7 Terry Barnaby 2018-02-28 07:38:14 UTC
The results of that com,mand for the Ethernet interface in question is:

nmcli -f all connection show "Wired connection 1"                                                                                                         
connection.id:                          Wired connection 1                                                                                                                                     
connection.uuid:                        9c0bb5e9-eca6-34ed-bfc6-585da165064d                                                                                                                   
connection.stable-id:                   --                                                                                                                                                          
connection.interface-name:              --                                                                                                                                                              
connection.type:                        802-3-ethernet                                                                                                                                                    
connection.autoconnect:                 yes                                                                                                                                                                 
connection.autoconnect-priority:        -100                                                                                                                                                                 
connection.autoconnect-retries:         -1 (default)                                                                                                                                                            
connection.timestamp:                   1519803330                                                                                                                                                                  
connection.read-only:                   no                                                                                                                                                                             
connection.permissions:                 --                                                                                                                                                                              
connection.zone:                        --                                                                                                                                                                                   
connection.master:                      --                                                                                                                                                                                      
connection.slave-type:                  --                                                                                                                                                                                           
connection.autoconnect-slaves:          -1 (default)                                                                                                                                                                                      
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        -1 (default)
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             90:2B:34:65:B5:09
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       (default)
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       (default)
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --

All looks reasonable to me.
Comment 8 Jan Grulich 2018-02-28 08:31:04 UTC
It seems to be this NM change:
https://github.com/NetworkManager/NetworkManager/commit/12b9d30ae625000c578d6b4f4bcf8c3a119132dc
Comment 9 Jan Grulich 2018-02-28 08:37:13 UTC
I think you will need to edit your connections with GUI editor (plasma-nm kcm) and re-save your connection.
Comment 10 Terry Barnaby 2018-02-28 09:15:19 UTC
Yes, I have edited the connection both with plasma-nm and with a simple text editor on the ifcfg-* files on all of my systems and all is ok on those.
However I suspect others will see this issue and it is a bug that can catch people out. It was only while doing some network performance tests that I noticed the system had set the Network down to 100 Mbits/s and I suspect many other peoples systems are running with slow networking as a result of this bug.
Comment 11 Patrick Silva 2018-02-28 13:06:33 UTC
Why "wontfix"?
Some months ago updates download speed through wired connection was very slow on my Arch Linux and I had to create a topic asking for help in a forum. So I discovered the problem described here.
Clearly there is a bug. Fix it please.
Comment 12 Mustafa Muhammad 2018-12-20 06:48:43 UTC
(In reply to Jan Grulich from comment #8)
> It seems to be this NM change:
> https://github.com/NetworkManager/NetworkManager/commit/
> 12b9d30ae625000c578d6b4f4bcf8c3a119132dc

But why DSL disable auto-negotiation while Wired (normal ethernet DHCP) enables it? Why manually change it if it can be negotiated?
Comment 13 Simon Schmeisser 2019-02-22 10:51:01 UTC
We also have this issue occuring on at least four notebooks in my office. We run Kubuntu 18.04 (Plasma 5.12.7 KF 5.44.0)

While one was upgraded from 16.04, the other notebooks were fresh installs. Maybe the default value for autonegotiation in the template config file does not match the gui settings?
Comment 14 Simon Schmeisser 2019-02-22 11:05:33 UTC
(In reply to Simon Schmeisser from comment #13)
> We also have this issue occuring on at least four notebooks in my office. We
> run Kubuntu 18.04 (Plasma 5.12.7 KF 5.44.0)
> 
> While one was upgraded from 16.04, the other notebooks were fresh installs.
> Maybe the default value for autonegotiation in the template config file does
> not match the gui settings?

It does seem to work correctly for newly created connections in the gui tool