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
<2020>
2021
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
<2020>
2021
2022
2023
2024
|