John Patton rewrote ringtocoax as ringtocoaxII for HYDRA EW and it was contributed back for the EW v7.0 release. This has only been run and tested under Windows. Here are some notes from John on the improvements:
There are basically 3
differences between ring2coax and ring2coaxII:
1. ring2coaxII is multithreaded.
2. ring2coaxII has an input queue
3. ring2coaxII has my attempt at an adaptive algorithm that increases
the outgoing udp data rate as the queue fills up (within configurable
limits). It also tries to "smooth" the udp message load so that
we're
at a constant level rather then spikes and troughs (not very good at
this, but better than nothing).
The design idea behind it
was that we had problems with ring2coaxII getting cpu
starved for a few seconds
and loosing data, thus the input queue. The other half
was how our udp load on our
network would change drastically from second to second
from very high to very low,
we wanted some sort of way to "smooth" it out. I've
had limited success on that
one.
The old description:
Program to broadcast Earthworm messages from a shared memory transport ring onto Ethernet. Messages may be of any installation id, message type, and module id. To prevent bursty data on the Ethernet, the program sleeps between outgoing packets. A parameter in the configuration file controls whether heartbeat and error messages are passed or blocked. If heartbeats and error messages are not sent, they should be handled by a local copy of the statmgr program.
This module does connection-less broadcasts. In normal usage, it broadcasts onto an isolated, dedicated class b subnet. There must be no routing to or from that subnet. The broadcast is restricted to the subnet specified in the configuration file. Note that the companion module, coaxtoring, has strange system-specific addressing requirements.