wiki:ringtocoaxII

Version 1 (modified by branden, 9 years ago) (diff)

--

Earthworm Module: ringtocoaxII

Contributed by: John Patton

Function

Same as ringtocoax but with an input queue (new in EW v7.0)

Details

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.

Helpful Hints