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  2020  2021  <20222023  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  2020  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: Understanding EPICS_CA_ADDR_LIST and caget
From: Sean Leavey via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Thu, 8 Sep 2022 09:20:17 +0100
Hi tech talkers,

I don't seem to be able to change the behaviour of caget using EPICS_CA_ADDR_LIST. I'm probably misunderstanding something.

I've got EPICS Base installed on my machine. In one terminal I've got tcpdump monitoring port 5064. In another terminal I run caget with a made-up channel. Here's their output after I run caget:

$ caget FAKE:CHANNEL
Channel connect timed out: 'FAKE:FAKE' not found.

$ tcpdump port 5064
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
09:11:07.345310 IP totoro.41026 > 172.16.15.255.ca-1: UDP, length 48
09:11:07.377158 IP totoro.41026 > 172.16.15.255.ca-1: UDP, length 48
09:11:07.441438 IP totoro.41026 > 172.16.15.255.ca-1: UDP, length 48
09:11:07.569269 IP totoro.41026 > 172.16.15.255.ca-1: UDP, length 48
09:11:07.825253 IP totoro.41026 > 172.16.15.255.ca-1: UDP, length 48

So far, so good? Looks like caget is sending 5 broadcast packets then giving up. 172.16.15.255 is my link's broadcast address, verified with `ip addr`.

But what if I know the IP of the IOC that hosts a channel, and want to specify it directly? I read in [1]:

> To reach IOCs on one or more additional subnets, the environment variable EPICS_CA_ADDR_LIST needs to be configured. It can list either the specific IP addresses of each IOC, or the broadcast address of their subnet. Note, however, that routers will often not forward broadcast requests, which suggests using specific IP addresses.

This sounds useful to me because my IOC is in a different subnet. From the quoted text above, I understand that, by setting EPICS_CA_ADDR_LIST to the IP of my IOC, caget should talk directly to it. But apparently this is not the case. Keeping tcpdump open, and running the caget command again but this time with the address of my IOC set in EPICS_CA_ADDR_LIST, I get the same output:

$ EPICS_CA_ADDR_LIST=195.194.120.115 caget FAKE:FAKE
Channel connect timed out: 'FAKE:FAKE' not found.

$ tcpdump port 5064
[...]
09:14:18.995465 IP totoro.35942 > 172.16.15.255.ca-1: UDP, length 48
09:14:19.027341 IP totoro.35942 > 172.16.15.255.ca-1: UDP, length 48
09:14:19.091486 IP totoro.35942 > 172.16.15.255.ca-1: UDP, length 48
09:14:19.219462 IP totoro.35942 > 172.16.15.255.ca-1: UDP, length 48
09:14:19.475597 IP totoro.35942 > 172.16.15.255.ca-1: UDP, length 48

Clearly I'm misunderstanding how all of this works. Can someone shed some light on what EPICS_CA_ADDR_LIST does in the context of caget, if anything?

Cheers,
Sean

[1] https://epics-controls.org/resources-and-support/documents/howto-documents/configure-channel-access/#IOCs_on_different_subnets

This email and any attachments are intended solely for the use of the named recipients. If you are not the intended recipient you must not use, disclose, copy or distribute this email or any of its attachments and should notify the sender immediately and delete this email from your system. UK Research and Innovation (UKRI) has taken every reasonable precaution to minimise risk of this email or any attachments containing viruses or malware but the recipient should carry out its own virus and malware checks before opening the attachments. UKRI does not accept any liability for any losses or damages which the recipient may sustain due to presence of any viruses.

Replies:
Re: Understanding EPICS_CA_ADDR_LIST and caget Jure Varlec via Tech-talk

Navigate by Date:
Prev: Re: 'CAS-client' failed in ../db/dbEvent.c line 540 Michael Davidsaver via Tech-talk
Next: Re: Understanding EPICS_CA_ADDR_LIST and caget Jure Varlec 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  <20222023  2024 
Navigate by Thread:
Prev: Re: 'CAS-client' failed in ../db/dbEvent.c line 540 Michael Davidsaver via Tech-talk
Next: Re: Understanding EPICS_CA_ADDR_LIST and caget Jure Varlec 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  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·