Reputation: 1271
I'm trying to send multiple UDP datagrams to an embedded linux unit using multicast. The kernel version on the device is:
/ # uname -r
2.6.24.6
for testing purposes I'm using the codes found here (added a couple of headers and changed the ip address to match the ip address of the unit)
The problem is that other devices in the same multicast group (windows PCs) are able to receive data while the unit is not. I read somewhere that the value of the rp_filter must be modified. I tried all options but to no avail.
I can run the unit as a server without any problem. But it simply does not receive.
Please note, netstat -g
doesn't work.
/ # netstat -g
netstat: invalid option -- g
BusyBox v1.11.2 () multi-call binary
Usage: netstat [-laentuwxr]
Display networking information
Options:
-l Display listening server sockets
-a Display all sockets (default: connected)
-e Display other/more information
-n Don't resolve names
-t Tcp sockets
-u Udp sockets
-w Raw sockets
-x Unix sockets
-r Display routing table
Therefore I'm unable to check group memberships.
P.S: I ran the same program (code from the link above) on a linux PC and it worked normally. So the code is not the issue.
Upvotes: 2
Views: 9634
Reputation: 1271
Solved it. After messing around with everything i can find on the system, I got it to work by running eth0 in promiscuous mode
ifconfig eth0 promisc
Upvotes: 2