EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: CA Repeater Revisited
From: Simon Rees via Tech-talk <tech-talk at aps.anl.gov>
To: <tech-talk at aps.anl.gov>
Date: Thu, 23 Apr 2020 19:07:36 +0200
Dear EPICS community

I am working on some improvements to PSI's Java CA library and
ran into some difficulties understanding some of the more
intricate behaviour of the CA Repeater which has been ported
into the PSI version, but which probably has its origins lying
deep in CA pre-history.

I'm hoping someone can offer some insights on any of the
following:

1. Why does the CA Repeater forward _all_ incoming datagrams to
   its registered clients ?

   As I understand the sole purpose of the CA Repeater is to
   forward received UDP BEACON messages (sent from the CA
   servers) to registered clients. Surely it would be enough to
   just pick out the beacon messages and forward them, not to
   forward absolutely _everything_ that arrives on the
   listening port ?

   I am trying to understand whether what I see is a required
   behaviour of the protocol or simply an implementation
   coincidence/convenience ?

2. Why does the CA Repeater consider an incoming zero-length
   datagram as a request to register a new client ?

   In the EPICS C-based CA repeater codebase I see this
   comment:
     /*
      * both zero length message and a registration message
      * will register a new client
      */

   As I understand it UDP datagrams will never get broken up
   into pieces but will either arrive intact or get lost in
   their entirety. I can't see why a CA client (either
   standalone or embedded in an IOC) would ever send a
   zero-byte payload with the expectation of registering.

   Having said the above I _have_ seen situations where zero
   length datagrams _do_ seem to get sent. If I start a Soft
   IOC with a database which includes an external link I noticed
   that the CA Repeater does seem to receive these zero length
   datgrams. In fact this seems to be the de-facto method of
   registration - I don't think I ever saw a full-length
   CA_REPEATER_REGISTER message.

3. Why does the CA Repeater send CA_PROTO_VERSION messages
   (referred to in comments as noop messages) to all existing
   registered clients every time a new client registers ?

   Again in the codebase I see something that I don't
   understand:

     /*
      * send a noop message to all other clients so that we don't
      * accumulate sockets when there are no beacons
      */

    But I cant figure out what this means.

Probably all the above is behaviour known to the experts. But
if I get to a clearer understanding of the reasons for the
above I will at least add comments to the PSI CA library for
the next developer.

Thanks and best regards

Simon Rees
GFA Controls Group
Paul Scherrer Institute

Replies:
Re: CA Repeater Revisited Ralph Lange via Tech-talk

Navigate by Date:
Prev: RE: ADAravis JAI camera stops Mark Rivers via Tech-talk
Next: Re: CA Repeater Revisited Ralph Lange via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: PROFINET driver Kim, Kukhee via Tech-talk
Next: Re: CA Repeater Revisited Ralph Lange via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 24 Apr 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·