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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Multiple IOCs on one Linux host
From: Ralph Lange <[email protected]>
To: EPICS tech-talk <[email protected]>
Date: Wed, 02 Apr 2014 10:28:21 +0200
On 31.03.2014 18:17, Andrew Johnson wrote:
This looks very interesting, probably worthy of a HowTo in the Wiki if
you can find time.

Note though that the /etc/network/if-{up,down}.d/ directories appear to
be Debian-specific; on RHEL and Fedora systems running NetworkManager
the equivalent script would go in /etc/NetworkManager/dispatcher.d/ and
gets given 2 arguments, the interface name ("eth0", "eth1" etc.)
followed by either "up" or "down".

Good idea.
I have created an EPICSWIKI page [1] that has updated scripts for Debian and RHEL/Fedora (and their derivatives).

Cheers,
~Ralph

[1] https://wiki-ext.aps.anl.gov/epics/index.php/How_to_Make_Channel_Access_Reach_Multiple_Soft_IOCs_on_a_Linux_Host


On 03/31/2014 10:15 AM, Ralph Lange wrote:
All,

As probably many of you know, running multiple IOCs on one host has an
annoying side effect: Clients that are using that host's IP address in
their EPICS_CA_ADDR_LIST with EPICS_CA_AUTO_ADDR_LIST=NO will only reach
one of the IOCs - usually the one that was started last. All clients
have to use broadcasts to reach all IOCs.
The same is true for CA Gateway machines that are set up in a way that
makes multiple Gateway processes serve channels into the same network.

Here's a little helper (for Linux hosts) that I recently was playing
around with - based on an idea by Rodrigo Bongers (CNPEM, Brazil).

If you drop the attached script into /etc/network/if-up.d *and*
/etc/network/if-down.d, it will automatically create/delete an iptables
rule that replaces the destination address of all incoming CA UDP
traffic on each interface with the broadcast address of that interface.
Simple and effective: the kernel will see all incoming name resolution
requests as broadcasts, and delivers them to all IOCs instead of one.

Note: This will not work for clients on the same host. (Adding that
feature makes things a lot more complicated, and I like things to be
simple.)
If you need connections between IOCs on one host, I would suggest adding
the broadcast address of the loopback interface (usually
127.255.255.255) to each IOC's EPICS_CA_ADDR_LIST setting.

Enjoy!
~Ralph

References:
Multiple IOCs on one Linux host Ralph Lange
Re: Multiple IOCs on one Linux host Andrew Johnson

Navigate by Date:
Prev: Re: Installing EPICS on the Raspberry Pi Torsten Bögershausen
Next: ITER software CCS 4.2 released Di Maio Franck
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Multiple IOCs on one Linux host Andrew Johnson
Next: gdd application function table read functions Patrick Thomas
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·