Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c
From: Andrew Johnson <anj@aps.anl.gov>
To: "Williams Jr., Ernest L." <ernesto@slac.stanford.edu>, Michael Davidsaver <mdavidsaver@gmail.com>, Heinz Junkes <junkes@fhi-berlin.mpg.de>, "core-talk@aps.anl.gov" <core-talk@aps.anl.gov>
Cc: "Slepicka, Hugo Henrique" <slepicka@slac.stanford.edu>
Date: Tue, 22 Aug 2017 17:42:22 -0500
Hi Ernest,

On 08/18/2017 10:30 PM, Williams Jr., Ernest L. wrote:
> I am experiencing the same issue with EPICS R3.15.5 and RTEMS version "4.9.4"
> 
> Can you add the patch to the KnownProblems page?
> http://www.aps.anl.gov/epics/base/R3-15/5-docs/KnownProblems.html

We haven't agreed what the right fix should be yet — Heinz, presumably
your change is included in your RTEMS-4.12 branch?

I would be more inclined to add another typedef to the osdSock.h API for
this data type instead of adding more OS-specific #ifdefs into the
source. There are 2 places in Base-3.15 that make this call:

            if (setsockopt(..., IPPROTO_IP, IP_MULTICAST_LOOP,
                          (char *) &flag, sizeof(flag)) ...

Declaring the flag variable as say
        osiSockOptMcastLoop_t flag = 1;
would seem to be a cleaner solution, and in line with how other OS
socket API differences have been resolved in the past.

Any objections to implementing this in Base-3.15?

- Andrew


> From: core-talk-bounces@aps.anl.gov [core-talk-bounces@aps.anl.gov] on behalf of Andrew Johnson [anj@aps.anl.gov]
> Sent: Thursday, April 20, 2017 9:21 AM
> To: Michael Davidsaver; Heinz Junkes; core-talk@aps.anl.gov
> Subject: Re: RTEMS: rsrv: failed to set mcast loopback in       src/ioc/rsrv/caservertask.c
> 
> On 04/20/2017 10:19 AM, Michael Davidsaver wrote:
>> I see that linux (circa 3.16) will accept either 'int' or 'char' for
>> IP_MULTICAST_LOOP.  Also for most other integer flags.
>>
>> I find references which suggest that winsock wants BOOL (which I assume
>> is 'char').
>>
>> However, vxworks 5.5 clearly spec's 'int'.
>>
>> http://www.vxdev.com/docs/vx55man/vxworks/ref/sockLib.html
> 
> But as long as we're talking about Base-3.16 we don't have to support
> VxWorks 5.5 at all. Wind River completely replaced the network stack in
> VxWorks 6.x, and the newer stack looks like it will support either int
> or char (there's code in setsockopt() for IP_MULTICAST_LOOP which
> appears to handle both sizes, although they haven't updated the docs to
> actually say that).
> 
>> Seems like the IP_MULTI* socket options need unit-test coverage.  (maybe
>> add to blockingSocketTest.cpp ?)
> 
> Agreed, and that seems like the right place for it.
> 
> - Andrew
> 
> --
> Arguing for surveillance because you have nothing to hide is no
> different than making the claim, "I don't care about freedom of
> speech because I have nothing to say." -- Edward Snowdon
> 

-- 
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon

Replies:
Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Heinz Junkes
Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Michael Davidsaver
References:
RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Heinz Junkes
Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Heinz Junkes
Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Michael Davidsaver
Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Andrew Johnson
RE: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Williams Jr., Ernest L.

Navigate by Date:
Prev: Re: Add optimization switch to compiler dependencies Ralph Lange
Next: Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Heinz Junkes
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: RE: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Williams Jr., Ernest L.
Next: Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Heinz Junkes
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 23 Aug 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·