I have a robot with the follow setup and the ethernet interface (enp4s0) of (Computer A) drops randomly.
The interface does not drop when the computers are not doing much. However when (Computer B) starts streaming a compressed Image stream to (My Computer) via (Computer A), the ethernet interface drops.
Hence it seems like it is a configuration problem where I am possibly flooding the network unintentionally and I would like to get some advice regarding this matter.
Output from dmesg wasn’t really helpful
(Mon Apr 12 13:43:33 2021) igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Down
(Mon Apr 12 13:43:33 2021) br0: port 1(enp4s0) entered disabled state
(Mon Apr 12 13:43:35 2021) igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
(Mon Apr 12 13:43:35 2021) br0: port 1(enp4s0) entered blocking state
(Mon Apr 12 13:43:35 2021) br0: port 1(enp4s0) entered listening state
(Mon Apr 12 13:43:39 2021) br0: port 1(enp4s0) entered learning state
(Mon Apr 12 13:43:44 2021) br0: port 1(enp4s0) entered forwarding state
(Mon Apr 12 13:43:44 2021) br0: topology change detected, propagating
(Mon Apr 12 14:05:50 2021) igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Down
(Mon Apr 12 14:05:50 2021) br0: port 1(enp4s0) entered disabled state
(Mon Apr 12 14:05:52 2021) igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Things I have already done:
- Checked and replaced all the ethernet cables with new ones.
- Swap out the all the computers and sensors with spares
- Enable STP on the network bridge with forward delay of 4
Unfortunately I am unable to connect everything to the switch due to the size constrain within the robot.
Any help is greatly appreciated thanks!
Setup
Sorry I do not have sufficient reputation to post an image =(
View post on imgur.com
All the computers are running ubuntu 18.04 and ROS melodic.
I have setup a network bridge using netplan as shown below
# Netplan on Computer A
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
#Computer B
enp1s0:
dhcp4: no
#Sensor
enp2s0:
dhcp4: no
#SBC to switch
enp4s0:
dhcp4: no
#Setup a bridge and link eno1 to it
bridges:
br0:
interfaces: (enp1s0, enp2s0, enp4s0)
addresses: (192.168.1.1/24)
gateway4: 192.168.1.253
nameservers:
addresses: (8.8.8.8)
dhcp4: no
Other things I have tried
Enable Port forwarding & add a route from (Computer B) to (Computer A) & setting up the nics on different subnet
/etc/sysctl.conf
net.ipv4.ip_forward = 1
Computer B
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
# Netplan on Computer A
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
#Computer B
enp1s0:
addresses:
- 192.168.2.1/24
dhcp4: no
#Sensor
enp2s0:
addresses:
- 192.168.3.1/24
dhcp4: no
#SBC to switch
enp4s0:
addresses:
- 192.168.1.1/24
dhcp4: no
gateway4: 192.168.1.253
nameservers:
addresses: (8.8.8.8, 8.8.4.4)