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
<2011>
2012
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
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|