Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard): (6 Items)
   
Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard)  
Hi folks :)

We have an interesting problem. We have in our lab two ARMv7 boards running the same binaries. One is the Freescale 
sabre lite and the other one is the Zedboard.

The two boards are in the same subnet.

We have been doing multicast tests between each of these two boards, and other boards in the same sabnet (some i86QNX, 
some i86Linux).

The only one not working and not communicating via multicast is the zedboard. The libraries and sofwtare we use in the 
Zedboard is exactly the same as the one we run on the sabre lite. We use the same binaries, however they work on sabre 
lite and they dont in the zedboard.

Now, this is the sabre lite network configuration:
$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
fec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	address: 00:19:b8:01:61:e6
	media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
	status: active
	inet 10.10.65.17 netmask 0xffff0000 broadcast 10.10.255.255
	inet6 fe80::219:b8ff:fe01:61e6%fec0 prefixlen 64 scopeid 0x11

And this is the Zedboard network configuration:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
xzynq0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	address: 00:0a:35:11:00:01
	media: Ethernet autoselect (1000baseT full-duplex)
	status: active
	inet 10.10.65.13 netmask 0xffff0000 broadcast 10.10.255.255
	inet6 fe80::20a:35ff:fe11:1%xzynq0 prefixlen 64 scopeid 0x11

The only difference that I see is "rxpause,txpause".

Can you see what might be the problem here? Unicast data works just fine, it is just multicast packets somehow not going
 out/in from/to the interface.

Could this be a QNX driver issue for the zedboard rather than a board issue?

Thanks a lot for any insight you might provide :)

Thank you!
Re: Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard)  
An update on this issue. I used netstat to see to debug anything from the target. For that, I did run the application 
that uses multicast, and then after doing "netstat -s". discobvered this:

udp:
	1073 datagrams received
	0 with incomplete header
	0 with bad data length field
	0 with bad checksum
	40 dropped due to no socket
	67 broadcast/multicast datagrams dropped due to no socket
	0 dropped due to full socket buffers
	966 delivered
	1108 PCB hash misses
	992 datagrams output


As you can see, there are a lot of packets dropped due to no socket. Do I need to sleep some period after I enable the 
ethernet driver for /dev/socket? Smth like waitfor /dev/socket?

ANy advice would be appreciated,
Thanks!
Re: Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard)  
One step back. I did reboot my target, and without anything running, I also see the dropped packets due to no socket, so
 that might not be the issue here:

# netstat -p udp                
udp:
	389 datagrams received
	0 with incomplete header
	0 with bad data length field
	0 with bad checksum
	8 dropped due to no socket
	323 broadcast/multicast datagrams dropped due to no socket
	0 dropped due to full socket buffers
	58 delivered
	404 PCB hash misses
	62 datagrams output

I guess I am puzzled now...
Re: Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard)  
Another hint,

I could isolate the problem to receiving multicast packets. If I send a multicast packet from my application to another 
app in another board, it works, and the other board receives the multicast packet.

On the other hand, if I just create a socket, enable SO_REUSEADDR to allow multiple instances to receive multicast 
copies, bind the socket to a port using INADDR_ANY, join the interface to the multicast group and just read from the 
socket until it receives smth...then the application never receives a datagram.
Re: Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard)  
Multicast MAC filtering isn't working in the xzynq network driver. I'll chase it up internally but if you can come in 
through your support channel that will help get the appropriate priority on it.

UDP drops for no socket are to be expected when connected to a normal network segment, that's just Broadcast packets 
that are for things that we are not listening for.

Regards,
Nick.
Re: Multicast not working on QNX 6.6.0 (on ARMv7 Zezboard)  
Hi Nick,

Thanks a lot for the response. What you say would definitely explain what we are seeing. I will follow the right 
channels for this.

Thank you, much appreciated!
Victor.