Hi -
So I added a lot of debug in both send.c and recv.c. Turns out that only multicast works - unicast does not. When I changed the destination on push packets to the Alfred multicast address then they were received on the other side.
Unicast does not produce any errors at the sendto function and looks like it is working but tcpdump doesn't see it and nothing gets to the receive side. Tcpdump does see the multicast announcement packets.
I have a ton of output from netstat and tcpdump but I don't think it is really useful to throw at you guys.
We are still googling it over here but at least we know it is on the send side and not a firewall issue on the receive side.
Any idea why this would happen? Anything thing we should try?
Thanks again for the help!
Beth
-----Original Message----- From: Simon Wunderlich sw@simonwunderlich.de Sent: Wednesday, February 6, 2019 2:03 PM To: b.a.t.m.a.n@lists.open-mesh.org Cc: beth.flippo@telegrid.com; 'Sven Eckelmann' sven@narfation.org; s.pinsky@telegrid.com Subject: Re: [B.A.T.M.A.N.] Alfred problem reading other nodes
Hi Beth,
as Sven said, if both nodes are running in master mode then they should regularly synchronize their data. This happens by sending unicast (!) UDP packets to their respective link-local IPv6 addresses. In your dump, we can only see broadcasts of 4 bytes, most likely the announcements. But as you said, two different hosts are sending those announcements, so that part seems to work.
Since announcement from both ends are visible, it could still be that your firewall drops it. Did you try disabling the firewall completely (e.g. /etc/ init.d/firewall stop, iptable -F etc ...)?
If that doesn't help, the best way would be to instrument the code (recv.c as Sven suggested) to see if the announcements are received. we don't really have debug code there.
Cheers, Simon
On Wednesday, February 6, 2019 1:47:14 PM CET beth.flippo@telegrid.com wrote:
We are using a gateworks board and built the latest version from their bsp but we had batman-adv, batctl and Alfred ipk built at version 2018.0. Batman and batctl are both working.
root@OpenWrt:~# uname -a Linux OpenWrt 4.4.0 #16 SMP Tue Jan 29 19:41:46 UTC 2019 armv7l GNU/Linux root@OpenWrt:~# cat /etc/openwrt_release DISTRIB_ID='Gateworks' DISTRIB_RELEASE='Gateworks Ventana 16.02@dd98aee-dirty' DISTRIB_REVISION='r48868' DISTRIB_CODENAME='designated_driver' DISTRIB_TARGET='imx6/generic' DISTRIB_DESCRIPTION='Gateworks Designated Driver Gateworks Ventana 16.02@dd98aee-dirty' DISTRIB_TAINTS='no-all busybox' root@OpenWrt:~#
-----Original Message----- From: Sven Eckelmann sven@narfation.org Sent: Wednesday, February 6, 2019 1:14 PM To: b.a.t.m.a.n@lists.open-mesh.org Cc: beth.flippo@telegrid.com; s.pinsky@telegrid.com Subject: Re: [B.A.T.M.A.N.] Alfred problem reading other nodes
On Wednesday, 6 February 2019 17.56.00 CET beth.flippo@telegrid.com wrote: [...]
I am having a problem getting alfred retrieve info from other nodes. I am running openwrt and alfred 2018.0.
Which OpenWrt version should that be? There is no release with 2018.0 and the current version in master is also newer.
I am able to start the alfred server with no errors both from boot and the command line.
root@OpenWrt:~# /etc/init.d/alfred restart /etc/init.d/alfred: waiting 30 secs for br-lan address... /etc/init.d/alfred: starting alfred /etc/init.d/alfred: starting batadv-vis
I can see it with ps
4290 root 816 S /usr/sbin/alfred -i br-lan -m -b bat0
I can issue a set and then a receive and I see the value I set but only locally. It does not get any info from the other nodes in my network. They are all running alfred servers as master.
Have you checked whether process_alfred_announce_master (recv.c) rejects the incoming packet for some reason and thus doesn't add it to the
server list?
If not, have you checked whether sync_data (send.c) really sends out the data via push_data to the remote server?
I have added a firewall rule to open the port.
If I have 2 nodes running alfred and I run 'tcpdump -i br-lan udp port 16962' - I see packets from the other node:
16:21:49.279086 IP6 fe80::2d0:12ff:fe00:f0c7.16962 > ip6-allnodes.16962: UDP, length 4
[...]
I think these might be the master announcements but when I issue an alfred -r # - I do not see any new messages in the tcpdump.
If all daemons are in server mode then they will not create a request via `alfred -r`. Instead, they regularly sync [1] their facts between each other (same port but different packet type).
Kind regards, Sven
[1] https://www.open-mesh.org/projects/alfred/wiki/Alfred_architecture#Syn chroni zation