[CUWiN-Dev] HSLSD Not Sending HSLS(9191) Packets

David Young dyoung at pobox.com
Mon Feb 12 15:14:09 CST 2007


On Mon, Feb 12, 2007 at 02:50:52PM -0600, David Young wrote:
> On Mon, Feb 12, 2007 at 03:55:55PM +0200, Socrates Socrates wrote:
> > Hi Dave
> > 
> > It's me again ;)
> > 
> > Right at the start of running the hslsd (of my Linux port side) I get an
> > error that it cannot resolve the IP address of the other node (CUWiN box).
> > 
> > Below is the meesage from the debug window.
> > ********************************
> > root at appletiser:/home/lawrence/work/new_hsls/HSLS/linux/src/hsls# ./run-hsls
> > 20070212105713 hsls_server_create: created server 0x808e824
> > 20070212105713 main: event(3) initialized
> > 20070212105713 beacon_rx_socket: bound 0.0.0.0 port 9191
> > 20070212105713 beacon_tx_socket: bound 169.254.237.50 port 9191
> > 20070212105713 LSU first global in 3.000000s
> > 20070212105713 hsls_server_start: bound 127.0.0.1 9292
> > 20070212105713 hsls_router_start: start
> > 20070212105713 RX 220B iface 2 src 169.254.237.110 dst 224.0.0.2
> > hsls_interface_recv: cannot resolve source 169.254.237.110
> > 20070212105713 hsls_interface_recv: cannot resolve source 169.254.237.110
> > 
> > ************************************
> > 
> > I traced the problem to function hsls_interface_peer_by_srcaddr() in file
> > hsls_interface.c. This function returns NULL because slh_first=0x0,
> > (slh_first  from SLIST_FOREACH).
> 
> I do not know if this is a problem, yet.  It is normal for hslsd to say
> that it cannot resolve every source once, the first time it receives a
> packet from that source.

Is hslsd misbehaving in some way, or does it route packets as you expect
it to?

> > My questions are:
> > What does slh_first=0x0 mean?
> 
> The SLIST_ macros implement a singly-linked list.  You should not
> be concerned with the implementation details (slh_first, et cetera),
> however, slh_first is the pointer to the first element in the list.
> If it is NULL, then the list is empty.  SLIST_ macros are described in
> a manual page, queue(3).

BTW, avoid accessing the members of the list structures directly.
Instead, use the macros.  You can check whether a singly-linked list is
empty using the macro SLIST_EMPTY().  This has the nice side-effect that
it is easier to interpret the code and check that it is correct.

Dave

-- 
David Young             OJC Technologies
dyoung at ojctech.com      Urbana, IL * (217) 278-3933


More information about the CU-Wireless-Dev mailing list