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: Heinz Junkes <junkes@fhi-berlin.mpg.de>
To: "core-talk@aps.anl.gov" <core-talk@aps.anl.gov>, "Williams Jr., Ernest L." <ernesto@slac.stanford.edu>, Michael Davidsaver <mdavidsaver@gmail.com>, Andrew Johnson <anj@aps.anl.gov>
Cc: Slepicka, Hugo Henrique <slepicka@slac.stanford.edu>
Date: Tue, 22 Aug 2017 18:47:07 -0600
Sounds much more feasible … I tried it out and it worked for me with linux and rtems….
Heinz



On 22. August 2017 at 16:42:37, Andrew Johnson (anj@aps.anl.gov) wrote:

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

Attachment: smime.p7s
Description: S/MIME cryptographic signature


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.
Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Andrew Johnson

Navigate by Date:
Prev: Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Andrew Johnson
Next: Still can not successful compile/run epicsV4CPP from github Heinz P. 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 Andrew Johnson
Next: Re: RTEMS: rsrv: failed to set mcast loopback in src/ioc/rsrv/caservertask.c Michael Davidsaver
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 ·