Hello list,

It is most likely something wrong with my own code, but I was hoping I could 
get some pointers in tracking down what that might be. I have a UPnP lister 
program, that opens port 1900 for UDP, and adds itself to membership.  

I have VLC UPnP client, and a Media device using Intel's UPnP stack to send out 
queries.

My program, when compiled on OsX, and when compiled for media device itself in 
Linux, will see the UDP multicast/broadcast packets from both VLC and the 
commercial client.

When I compile my program on Solaris, everything runs well (as in, no errors) 
but I do not see any broadcast discovery packets. 

My multicast code consists of:

        mreq.imr_multiaddr.s_addr=htonl(maddr);
        mreq.imr_interface.s_addr=htonl(INADDR_ANY);
        rc = setsockopt(node->socket,
                                        IPPROTO_IP,IP_ADD_MEMBERSHIP,
                                        (void *) &mreq, sizeof(mreq));

Where maddr comes from "239.255.255.250".

The interface is:
rge0: flags=1004843 UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4 mtu 1500 index 2
        inet 192.168.11.26 netmask ffffff00 broadcast 192.168.11.255
        ether 0:1c:c0:d0:d2:37

# snoop -r multicast or broadcast or port 1900
[ssdp] creating listener...
IP_ADD_MEMBERSHIP 0
192.168.11.26 -> 224.0.0.22   IGMP v3 membership report

Starting VLC I see (on my OsX dekstop):
en0: flags=8863 UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST mtu 1500
        inet6 fe80::217:f2ff:fe07:8836%en0 prefixlen 64 scopeid 0x4 
        inet 192.168.11.10 netmask 0xffffff00 broadcast 192.168.11.255
        ether 00:17:f2:07:88:36 

16:41:02.743166 IP 192.168.11.26 > 224.0.0.22: igmp v3 report, 1 group record(s)
16:41:05.380487 IP 192.168.11.10.55688 > 239.255.255.250.1900: UDP, length 127
16:41:05.480596 IP 192.168.11.10.55688 > 239.255.255.250.1900: UDP, length 127

But snoop does not see these packets at all. I was under the impression that 
snoop is fairly low-level so I should see the broadcasts even if I have not 
joined the group correctly?

If I send a directed UDP packet all is ok:

# nc -u 192.168.11.26 1900
hello

[ssdp] >> 'hello'
192.168.11.10 -> 192.168.11.26 UDP D=1900 S=55732 LEN=14


So why not broadcast packets? I looked at ndd values, and tried 
ip_strict_dst_multihoming ip_forward_directed_broadcasts but it made no 
difference.
I also noticed that "netstat -nr" no longer lists a 224.0.0.0 route, is this 
still required? I added one just in case, but no difference.

I also tried setting IP_MULTICAST_TTL to 255, but that made no difference. I 
think that is for sending though. 

There is no ipfilter running.
-- 
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to