ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

ROS traffic over gigabit connection is renegotiated to 100 Mbps

asked 2015-10-20 11:52:01 -0500

lucasw gravatar image

updated 2020-11-21 12:04:34 -0500

I don't think the answer to this question is very ROS specific but maybe there are some ROS debugging tools that can be suggested, or it is just the sort of thing some ROS users have encountered before. (Maybe half the solution is ROS 2.0 with DDS, but I need to be operational before then)

I have an ethernet cable handling over 300 megabit/s of ROS traffic mainly in the form of image data. This has worked fined in the lab but in a less controlled outdoors environment with a 100' run of ethernet cable I occasionally encounter upsets of some sort that cause the Netgear unmanaged gigabit switch to change down to 100 Mbps as indicated by the presence of two flashing green lights for gigabit changing to one flashing green light. This is usually very bad for the robot since it continues to attempt to dump the same amount of data down the lessened connection, and there is no way to say that it is more okay to lose image frames than motor control messages. I see the bandwidth surge up to 100% of available then go down to zero over and over.

Using compressed images and extra care with what nodes run on which systems on either side of the problematic network connection can get my bandwidth within the smaller allotment, and things are fine after that except for losing the higher quality image data.

Sometimes unplugging and replugging the ethernet cable brought gigabit back for some amount of time.

The other odd thing is that there is a pc -> 1' cable -> netgear switch -> 100' cable -> remote system, but only the link lights on the 1' cable indicate 100 Mbps while the 100' cable still indicates gigabit.

I'm guessing there is a signal integrity issue over the 100' cable (I've tried switching it out, but the backup could be equally bad), and there is still gigabit traffic over it but a good deal of it is used up resending corrupted packets, but I'm not sure why that causes the short leg to go to 100 Mbps.

Do I need a high quality cable tester from Fluke or similar?

Switch to a higher quality shielded cable?

Should I change from less expensive Netgear switches to managed switches?

Are there any software tools to see what is happening in terms of resending of packets, or is it all hidden from me by the Netgear switches?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2015-10-20 13:08:23 -0500

gvdhoorn gravatar image

updated 2015-10-20 13:09:37 -0500

I've no idea about the cause, but the obvious first thing to do would be to see whether you can trigger the same behaviour by running some other traffic through the same setup. iperf would be a good tool for that.

edit flag offensive delete link more

answered 2015-10-28 02:49:45 -0500

tfoote gravatar image

I agree with @gvdhoorn about testing with another source of traffic. I suspect that you're seeing issues with noise or attenuation once the system gets loaded.

If you're having trouble with the 1' cable I'd start by upgrading that cable. All of these systems are packet forwarding so signal degredation does not pass through devices like a switch. So you can focus your debugging on just the problematic link since you have an indication localizing the problem.

After that I'd look at upgrading the switch. The transition to "managed" is not the right metric. You want to be choosing a switch with a higher quality electronics. If you pick your netgear or similar routers carefully they can have very good performance as long as they didn't apply too many "cost" saving measures. Make sure the switch you're using has enough backplane to fully isolate and switch gigabit between all ports independently in parallel.

Lastly unfortunately the other place that you might be running into a problem is your computer's NIC. It's possibly got buggy firmware or it's driver is not keeping up under load such that it misses deadlines and the link gets negotiated down to a slower speed. If you have another ethernet port I'd suggest trying it out. Or if you have space try an expansion board to supply an extra ethernet port on the PC.

edit flag offensive delete link more

Question Tools



Asked: 2015-10-20 11:52:01 -0500

Seen: 330 times

Last updated: Oct 28 '15