On 1/22/14, 8:30 AM, [email protected] wrote:
>>> we are looking to run a set of IOCs that bind channel access to just
>>> the loopback interface on the computer; however I saw from the 3.14
>>> docs that EPICS_CAS_INTF_ADDR_LIST is not currently implemented in the
>>> iocCore CA Server. I had a look at the code in base/src/rsrv and the
>>> attached diff (against 3.14.12.2) seems to work for us with:
>>>
>>> EPICS_CAS_INTF_ADDR_LIST=127.0.0.1
>>> EPICS_CAS_BEACON_ADDR_LIST=127.255.255.255
>>>
>>> I was just wondering if these additions are sufficient, or have I
>>> missed something elsewhere that either needs changing too or might
>>> cause issues later on?
I agree with Ralph's assessment, this patch looks like it should do what
is necessary to bind the server to one interface/IP address.
On 28.01.2014 23:28, J. Lewis Muir asked:
>> Have you had a chance to consider the patch sent by Freddie? You seem
>> open to reviewing and accepting such a patch in the following Tech-Talk
>> post:
>>
>> http://www.aps.anl.gov/epics/tech-talk/2013/msg01493.php
>>
>> I haven't looked at the patch, but the ability to specify the addresses
>> on which the IOC CA server listens has been a feature I've wished for
>> for a long time.
I am indeed happy to review and accept patches that will implement this
functionality. The main limitation of Freddie's patch is that it only
accepts a single hostname or IP address in the EPICS_CAS_INTF_ADDR_LIST
variable (as comments in his code acknowledge). It won't help you if you
need to configure an IOC to bind to more than one interface. I would be
reluctant to incorporate these changes into Base without the full
multi-interface functionality, which also seems to be Ralph's preference:
On 01/29/2014 03:15 AM, Ralph Lange added:
> At first glance, this patch looks fine and should cover almost all use
> cases. That feature has been on the wish list for a long time, I know.
> However, I would prefer a slightly more elaborate implementation that
> makes the server side environment variables work the same on both CAS
> and rsrv. (This will also minimize the necessary changes in the
> documentation.)
The work needed to support multiple independently-configured interfaces
is unfortunately not trivial, the current code in src/rsrv uses the
INADDR_ANY wild-card to open a socket on all the currently configured
interfaces at once. As a result it only needs one thread to handle the
UDP socket and one thread for the TCP socket.
To allow configuring of multiple interfaces implies creating multiple
UDP and TCP sockets, so we have to add a list to hold the parsed
interface addresses and split the existing code up to create a separate
task for each socket. Adding those new tasks implies checking for
sufficient mutexes and possible deadlocks, and adding information about
them to the CA server-report 'casr' output.
This isn't impossible to do, but as I said it's not trivial; I could see
it taking a few weeks for someone to get it right.
However this doesn't take away from the usefulness of Freddie's patch;
it if meets the needs of some sites they can still apply it locally.
- Andrew
--
Advertising may be described as the science of arresting the human
intelligence long enough to get money from it. -- Stephen Leacock
- Replies:
- Re: Binding an IOC to a single network interface Till Straumann
- References:
- Binding an IOC to a single network interface freddie.akeroyd
- Re: Binding an IOC to a single network interface J. Lewis Muir
- Re: Binding an IOC to a single network interface Ralph Lange
- Navigate by Date:
- Prev:
Re: asyn driver problem running Linux 3.8.13 with arm processor Till Straumann
- Next:
Linux on PPC VME Boards Philip Taylor
- 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:
RE: Binding an IOC to a single network interface Hill, Jeff
- Next:
Re: Binding an IOC to a single network interface Till Straumann
- 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
|