Bug 89442

Summary: RFE: systemd-networkd: Add support for CANbus devices
Product: systemd Reporter: Mads <mads>
Component: generalAssignee: Tom Gundersen <teg>
Status: RESOLVED FIXED QA Contact: systemd-bugs
Severity: normal    
Priority: medium CC: mkl
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: dmesg when booting with systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M
systemd-analyze dump
journal of systemd-networkd after boot
journal of systemd-networkd after `systemctl restart systemd-networkd´

Description Mads 2015-03-05 11:42:10 UTC
Created attachment 114025 [details]
dmesg when booting with systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M

I have an Atom NM10-based industrial PC with three e1000e devices and a PEAK CANbus device (PCI ID 001c:0008) providing the interface can0. After updating from 216 to 219, systemd-networkd is unable to get my e1000e-devices up and running. I don't have any configuration for can0 within /etc/systemd/network.

Two files in /etc/systemd/network, 10-eth0.network and 10-eth1.network. System booted with net.ifnames=0. No service is configured to do something with can0 or eth2.

# cat /etc/systemd/network/10-eth*
[Match]
Name=eth0

[Network]
Address=10.20.0.3/24
Gateway=10.20.0.1

[Match]
Name=eth1

[Network]
Address=10.30.0.3/24
Gateway=10.30.0.1

After booting, eth0 and eth1 are not configured nor upped. After `systemctl restart systemd-networkd´, eth0 and eth1 are configured, but not upped. can0 is not upped either.

systemd-networkd.afterboot.txt is systemd-networkd journal (with loglevel debug) after boot, and systemd-networkd.afterrestartservice.txt is the journal for `systemctl restart systemd-networkd´.

dmesg.txt is dmesg when booting with systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M

The system doesn't have ipv6 enabled, so that triggers some error messages.


# systemctl --version
systemd 219
+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN
Comment 1 Mads 2015-03-05 11:42:51 UTC
Created attachment 114026 [details]
systemd-analyze dump
Comment 2 Mads 2015-03-05 11:43:20 UTC
Created attachment 114027 [details]
journal of systemd-networkd after boot
Comment 3 Mads 2015-03-05 11:43:55 UTC
Created attachment 114028 [details]
journal of systemd-networkd after `systemctl restart systemd-networkd´
Comment 4 Mads 2015-03-05 13:01:29 UTC
I see now that my issues of not getting interfaces up was caused by missing IPv6 support on the machine. The same issue happened even when disabling the can interface.

So I changed the title of the bug - it would be nice feature to have systemd-networkd support setting up CAN devices.
Comment 5 Mads 2015-03-05 15:13:59 UTC
I hope I'm not too spammy, but maybe I should mention that it seems that having a can device and not having IPv6 both made sure that eth0 and eth1 didn't get up.

IPv6 available, no can devices present -> everything works
can0 present and IPv6 available -> systemd-networkd during boot stops because of can0. Both configure and upping works if manually running `systemctl restart systemd-networkd´ afterwards, I think...
can0 available and no IPv6 -> systemd-networkd stops during boot because of can0. `systemctl restart systemd-networkd´ does not work afterwards either, but that is because of lacking IPv6.
Comment 6 Zbigniew Jedrzejewski-Szmek 2018-06-11 14:46:05 UTC
Implemented in https://github.com/systemd/systemd/commit/06828bb617.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.