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 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
<== Date ==> <== Thread ==>

Subject: Re: Questions regarding CA protocol specification and phylosophy
From: Michael Davidsaver <mdavidsaver@gmail.com>
To: Diego Sanz <dshernan80@gmail.com>
Cc: EPICS Tech Talk <tech-talk@aps.anl.gov>
Date: Thu, 14 Sep 2017 10:45:25 -0500
> epicsEnvSet("EPICS_CA_ADDR_LIST","10.0.2.15")

What do you intend this to accomplish?  EPICS_CA_ADDR_LIST is mainly
configuring the CA client component of the IOC.  The only effect on the
server component is to add a destination for send beacons.

> [dsanz@localhost ~]$ set | grep EPICS_CA_ADDR
> EPICS_CA_ADDR_LIST=10.0.2.255
> [dsanz@localhost ~]$ caget pcounter
> Warning: Duplicate EPICS CA Address list entry "10.0.2.255:5064

This warning tells you that setting EPICS_CA_ADDR_LIST can be omitted as
this interface has been automatically detected.  You can set
EPICS_CA_AUTO_ADDR_LIST=NO to disable automatic detection.

> This configuration, does not let me to read from any IOC.

You might gain some insight by using wireshark to see where searches
packets are actually being sent, and if there is any reply.

https://github.com/mdavidsaver/cashark

The test/ directory has some sample captures.  Note that
tests/catest.pcap was taken with EPICS_CA_ADDR_LIST=127.0.0.1

Also running "netstat -utlpn|grep 506" will tell you which processes are
listening.

> ## EPICS R3.14.12.6

You might also try a newer 3.15 or 3.16 series release.  The 3.15 series
includes some changes to the CA server which might behave differently.
If nothing else, the 'casr 5' ioc shell command prints more detailed info.


On 09/14/2017 08:49 AM, Diego Sanz wrote:
> Dear guys,
> 
> Again, thank you for your support. Still the problem persists. The idea
> of using "lo" interface is for testing purposes, but anyway, now I am
> using other ip:
> #ifconfig command shows:
> 
> enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
>         inet _10.0.2.15 _ netmask 255.255.255.0  _broadcast 10.0.2.255_
> 
> So, both IOCs will be configured for using this IP. Just below I put the
> output of the 2 IOCs just after running:
> 
> [IOC 1]:
> epicsEnvSet("EPICS_CA_ADDR_LIST","10.0.2.15")
> ## Load record instances
> # dbLoadTemplate "db/userHost.substitutions"
> dbLoadRecords "db/devsimulation.db", "user=dsanzHost"
> ## Set this to see messages from mySub
> #var mySubDebug 1
> ## Run this to trace the stages of iocInit
> #traceIocInit
> cd "/home/dsanz/Developments/edsTemplate-epics/iocBoot/ioctest"
> iocInit
> Starting iocInit
> ############################################################################
> ## EPICS R3.14.12.6
> ## EPICS Base built Jan 31 2017
> ############################################################################
> iocRun: All initialization complete
> ## Start any sequence programs
> #seq sncExample, "user=dsanzHost"
> epics>
> ......
> 
> [IOC2]:
> 
> epicsEnvSet("EPICS_CA_ADDR_LIST","10.0.2.15")
> ## Load record instances
> dbLoadTemplate "db/userHost.substitutions"
> dbLoadRecords "db/dbSubExample.db", "user=dsanzHost"
> ## Set this to see messages from mySub
> #var mySubDebug 1
> ## Run this to trace the stages of iocInit
> #traceIocInit
> cd "/home/dsanz/Developments/checkEpics/iocBoot/iocthis"
> iocInit
> Starting iocInit
> ############################################################################
> ## EPICS R3.14.12.6
> ## EPICS Base built Jan 31 2017
> ############################################################################
> cas warning: Configured TCP port was unavailable.
> cas warning: Using dynamically assigned TCP port 37633,
> cas warning: but now two or more servers share the same UDP port.
> cas warning: Depending on your IP kernel this server may not be
> cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
> iocRun: All initialization complete
> ## Start any sequence programs
> #seq sncExample, "user=dsanzHost"
> epics>
> .....
> 
> regarding the EPICS client, the EPICS_CA_ADDR_LIST is configured with
> the boradcast address, and then, I try to read one PV from each of the
> IOCs..:
> 
> [dsanz@localhost ~]$ set | grep EPICS_CA_ADDR
> EPICS_CA_ADDR_LIST=10.0.2.255
> [dsanz@localhost ~]$ caget pcounter
> Warning: Duplicate EPICS CA Address list entry "10.0.2.255:5064
> <http://10.0.2.255:5064>" discarded
> Channel connect timed out: 'pcounter' not found.
> [dsanz@localhost ~]$ caget dsanzHost:ai1
> Warning: Duplicate EPICS CA Address list entry "10.0.2.255:5064
> <http://10.0.2.255:5064>" discarded
> Channel connect timed out: 'dsanzHost:ai1' not found.
> 
> This configuration, does not let me to read from any IOC. Regarding the
> Warning mentioned... I suppose is normal due to both IOCs are listening
> in the Ca-1 UDP port....
> 
> If this configuration should work, then I will study the new (for me)
> version of the CA protocol description
> http://www.aps.anl.gov/epics/base/R3-16/0-docs/CAproto/index.htm
> <http://www.aps.anl.gov/epics/base/R3-16/0-docs/CAproto/index.html>
> that Michael mentioned before, to try to understand this issue.
> 
> Thank you very much again
> 
> Regards
> 
> Diego
> <http://www.aps.anl.gov/epics/base/R3-16/0-docs/CAproto/index.html>
> 
> 
> 
> 
> 
> 2017-09-13 17:45 GMT+02:00 Michael Davidsaver <mdavidsaver@gmail.com
> <mailto:mdavidsaver@gmail.com>>:
> 
>     On 09/13/2017 10:05 AM, Diego Sanz wrote:
>     > First of all, thanks a lot
>     >
>     > Starting for the configuration: the 2 IOCs and the EPICS client is in
>     > the same Host, no firewall...
>     > If I understood correctly, every IOC, shall be working in different IPs
>     > on different subnetworks? e.g.,
>     >
>     > IOC1 on 192.168.0.2
>     >
>     > IOC2 on 192.168.1.3
>     >
>     > and client shall have access to booth IPs....
>     >
>     > So then, the configuration as follows is not correct:
>     >
>     > all of them working on 127.0.0.1
> 
>     FYI, by default 127.0.0.1 (aka. the loopback interface) isn't used.  By
>     this I mean that beacons and searches will not be sent to 127.0.0.1.
>     However, by default listening sockets are bound to 0.0.0.0 (aka wildcard
>     interface) which will receive UDP traffic sent to 127.0.0.1.
> 
>     For this reason you'll sometimes see EPICS_CA_ADDR_LIST=127.0.0.1 given
>     as a workaround for CA issues when client and IOC are on the same host.
>     This sends unicast searches to localhost.  As this is unicast, it works
>     with only one IOC on the host (typical developer scenario).
> 
>     A linux specific trick EPICS_CA_ADDR_LIST=127.255.255.255 works for many
>     IOC.  On linux the loopback interface supports broadcasts but doesn't
>     set the IFF_BROADCAST flag to advertise this fact.
> 
> 
>     > Is well understood?
>     >
>     > Thanks a lot
>     >
>     > Diego
>     >
>     >
>     >
>     > 2017-09-13 16:26 GMT+02:00 Dirk Zimoch <dirk.zimoch@psi.ch <mailto:dirk.zimoch@psi.ch>
>     > <mailto:dirk.zimoch@psi.ch <mailto:dirk.zimoch@psi.ch>>>:
>     >
>     >     On 13.09.2017 16:03, Kasemir, Kay wrote:
>     >
>     >         The main issue here is not TCP but UDP.
>     >
>     >
>     >     Just for completeness: TCP can be an issue as well if you have a
>     >     firewall between client and IOC. Even if if you tell the
>     firewall to
>     >     allow the CA ports for UDP and TCP then the search broadcast may
>     >     pass, maybe even the reply reaches the client, but you still
>     may not
>     >     be able to connect to the dynamically assigned TCP port of the
>     >     second IOC.
>     >
>     >     Dirk
>     >
>     >
> 
> 


References:
Questions regarding CA protocol specification and phylosophy Diego Sanz
Re: Questions regarding CA protocol specification and phylosophy Kasemir, Kay
Re: Questions regarding CA protocol specification and phylosophy Dirk Zimoch
Re: Questions regarding CA protocol specification and phylosophy Diego Sanz
Re: Questions regarding CA protocol specification and phylosophy Michael Davidsaver
Re: Questions regarding CA protocol specification and phylosophy Diego Sanz

Navigate by Date:
Prev: Re: Questions regarding CA protocol specification and phylosophy Ralph Lange
Next: RE: Questions regarding CA protocol specification and phylosophy Mark Rivers
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
Navigate by Thread:
Prev: Re: Questions regarding CA protocol specification and phylosophy Diego Sanz
Next: RE: Questions regarding CA protocol specification and phylosophy Mark Rivers
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
ANJ, 15 Sep 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·