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  <20112012  2013  2014  2015  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  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: epics on FreeBSD: broadcast problem
From: "Jeff Hill" <[email protected]>
To: "'Jeff Hill'" <[email protected]>, <[email protected]>
Cc: [email protected]
Date: Thu, 24 Feb 2011 09:37:07 -0700
Hello again Gerrit,

This macro, in src/libCom/osi/os/freebsd/osdSock.h, should be well
scrutinized, especially in its contrast with its implementation for the
other flavors of unix.

#define ifreq_size(pifreq) (sizeof(pifreq->ifr_name))

In particular, you may, on this version of free bsd, need this

#define ifreq_size(pifreq) ((pifreq)->ifr_addr.sa_len +
sizeof((pifreq)->ifr_name))

to support a range of free bsd versions you will most likely need a BSD
version switch - this is what we have currently for vxWorks

#if ( defined (BSD) && ( BSD >= 44 ) )
#   define ifreq_size(pifreq) (pifreq->ifr_addr.sa_len +
sizeof(pifreq->ifr_name))
#else
#   define ifreq_size(pifreq) sizeof(*pifreq)
#endif

let us know how this goes so we can fix the distribution

Jeff
______________________________________________________
Jeffrey O. Hill           Email        [email protected]
LANL MS H820              Voice        505 665 1831
Los Alamos NM 87545 USA   FAX          505 665 5107

Message content: TSPA

With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead. -- RFC 1925


> -----Original Message-----
> From: Jeff Hill [mailto:[email protected]]
> Sent: Thursday, February 24, 2011 9:19 AM
> To: '[email protected]'
> Cc: '[email protected]'
> Subject: RE: epics on FreeBSD: broadcast problem
> 
> > EPICS_CA_AUTO_ADDR_LIST=YES
> > When EPICS_CAS_AUTO_BEACON_ADDR_LIST is YES
> 
> ...
> 
> > Channel Access Address List
> > 10.15.254.2:5065
> 
> > This last address belongs to some vpn connections the machine has, not
> to
> > the physical interfaces (em0 and em1). The IOC I actually want to talk
> to
> > sits on 192.168.64.9 and is reachable via em1.
> 
> suspect that something is amiss with the code in EPICS base which we use
> to interrogate the broadcast address used by each network interface,
> see src/libCom/osi/os/default/osdNetIntf.c.
> 
> > I have a fairly recent FreeBSD 8.1-something
> 
> There is maybe something new about ioctl SIOCGIFCONF in recent Free BSD.
> 
> It might help out with fault isolation to enable the debug messages
> at the top of the source file.
> 
> #ifdef DEBUG
> #   define ifDepenDebugPrintf(argsInParen) printf argsInParen
> #else
> #   define ifDepenDebugPrintf(argsInParen)
> #endif
> 
> Jeff
> ______________________________________________________
> Jeffrey O. Hill           Email        [email protected]
> LANL MS H820              Voice        505 665 1831
> Los Alamos NM 87545 USA   FAX          505 665 5107
> 
> Message content: TSPA
> 
> With sufficient thrust, pigs fly just fine. However, this is
> not necessarily a good idea. It is hard to be sure where they
> are going to land, and it could be dangerous sitting under them
> as they fly overhead. -- RFC 1925
> 
> 
> > -----Original Message-----
> > From: Gerrit Kühn [mailto:[email protected]]
> > Sent: Thursday, February 24, 2011 8:34 AM
> > To: Jeff Hill
> > Cc: [email protected]; [email protected]
> > Subject: Re: epics on FreeBSD: broadcast problem
> >
> > On Wed, 23 Feb 2011 12:08:12 -0700 "Jeff Hill" <[email protected]> wrote
> > about RE: epics on FreeBSD: broadcast problem:
> >
> > JH> Make certain that the netmasks for the network interfaces in your
> > JH> FreeBSD system match the networks to which they are attached. See
> also
> > JH> the "Troubleshooting" portion of the CA reference manual.
> >
> > They do. Actually this particular machine is serving as router and
> > dhcp-server for the subnet:
> >
> > ---
> > firefly1# ifconfig em1
> > em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
> 1500
> >
> >
> options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MA
> > GIC>
> >         ether 00:25:90:02:16:31
> >         inet 192.168.64.254 netmask 0xffffe000 broadcast 192.168.95.255
> >         media: Ethernet autoselect (1000baseT <full-duplex>)
> >         status: active
> > ---
> >
> > A Linux-system in the network looks quite the same:
> >
> > ---
> > psl@psl-fe4 ~ $ /sbin/ifconfig eth0
> > eth0      Link encap:Ethernet  HWaddr 00:25:90:15:3e:16
> >           inet addr:192.168.64.9  Bcast:192.168.95.255
> Mask:255.255.224.0
> >           inet6 addr: fe80::225:90ff:fe15:3e16/64 Scope:Link
> >           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
> >           RX packets:2994432254 errors:0 dropped:0 overruns:0 frame:0
> >           TX packets:4677428405 errors:0 dropped:0 overruns:0 carrier:0
> >           collisions:0 txqueuelen:1000
> >           RX bytes:277941608130 (258.8 GiB)  TX bytes:3767794266485 (3.4
> > TiB) Memory:d9020000-d9040000
> > ---
> >
> > JH> If there are not routing issues, then I suspect that something is
> > JH> amiss with the code in EPICS base which we use to interrogate the
> > JH> broadcast address used by each network interface.
> >
> > There is no routing involved, all is happening inside this network.
> >
> > JH> This code runs when
> > JH> EPICS_CA_AUTO_ADDR_LIST is YES. For POSIX, reference
> > JH> src/libCom/osi/os/default/osdNetIntf.c. We have occasionally needed
> to
> > JH> make some minor changes here before because socket library interface
> > JH> changes were not backwards compatible.
> >
> > Even setting this explicitely to "YES" does not help:
> >
> > ---
> > firefly1# setenv | grep EPICS
> > EPICS_HOST_ARCH=freebsd-x86_64
> > EPICS_CA_AUTO_ADDR_LIST=YES
> > firefly1# ./caget G3:PSL-OSC_PZTVOLT
> > Channel connect timed out: 'G3:PSL-OSC_PZTVOLT' not found.
> > ---
> >
> >
> > Only setting the broadcast directly does make it work:
> >
> > ---
> > firefly1# setenv | grep EPICS
> > EPICS_HOST_ARCH=freebsd-x86_64
> > EPICS_CA_AUTO_ADDR_LIST=YES
> > EPICS_CA_ADDR_LIST=192.168.95.255
> > firefly1# ./caget G3:PSL-OSC_PZTVOLT
> > G3:PSL-OSC_PZTVOLT             4.78195
> > ---
> >
> > JH> When running a soft IOC on this FreeBSD system, what does casr, with
> a
> > JH> high interest level (i.e. casr 100), show? There should be a list of
> > JH> network addresses listed there - which are the server's beacon
> > JH> destinations. When EPICS_CAS_AUTO_BEACON_ADDR_LIST is YES (the
> > JH> default) the code in src/libCom/osi/os/default/osdNetIntf.c is used
> to
> > JH> populate this list of beacon destination addresses.
> >
> > ---
> > epics> casr 100
> > Channel Access Server V4.13
> > No clients connected.
> > UDP Server:
> > UDP 0.0.0.0:0(): User="", V4.0, 0 Channels, Priority=0
> >         Task Id=0x80204f760, Socket FD=6
> >         Secs since last send   3.02, Secs since last receive   3.02
> >         Unprocessed request bytes=0, Undelivered response bytes=16
> >         State=up
> >         272 bytes allocated
> >
> >         Send Lock
> > epicsMutexId 0x802236b80 source ../caservertask.c line 730
> > ownerTid 0x0 count 0 owned 0
> >         Put Notify Lock
> > epicsMutexId 0x802236b20 source ../caservertask.c line 731
> > ownerTid 0x0 count 0 owned 0
> >         Address Queue Lock
> > epicsMutexId 0x802236ac0 source ../caservertask.c line 732
> > ownerTid 0x0 count 0 owned 0
> >         Event Queue Lock
> > epicsMutexId 0x802236a60 source ../caservertask.c line 733
> > ownerTid 0x0 count 0 owned 0
> >         Block Semaphore
> > There are currently 1904 bytes on the server's free list
> > 7 client(s), 0 channel(s), 0 event(s) (monitors) 0 putNotify(s)
> > 0 small buffers (16384 bytes ea), and 0 jumbo buffers (16408 bytes ea)
> > The server's array size limit is 16408 bytes max
> > Channel Access Address List
> > 10.15.254.2:5065
> > ---
> >
> > This last address belongs to some vpn connections the machine has, not
> to
> > the physical interfaces (em0 and em1). The IOC I actually want to talk
> to
> > sits on 192.168.64.9 and is reachable via em1.
> >
> >
> > cu
> >   Gerrit



References:
epics on FreeBSD: broadcast problem Gerrit Kühn
Re: epics on FreeBSD: broadcast problem Gerrit Kühn

Navigate by Date:
Prev: RE: epics on FreeBSD: broadcast problem Jeff Hill
Next: Anyone working on PCO camera support? peter.leicester
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: epics on FreeBSD: broadcast problem Jeff Hill
Next: Re: epics on FreeBSD: broadcast problem Gerrit Kühn
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·