Re: UDP Broadcasts not delivered to IP address

From: David Miller
Date: Tue Mar 06 2007 - 02:09:04 EST


From: Detlef Vollmann <dv@xxxxxxxxxxx>
Date: Tue, 06 Mar 2007 07:52:56 +0100

> Bernd Eckenfels wrote:
> >
> > In article <45EC8D42.57D11665@xxxxxxxxxxx> you wrote:
> > > True, which in my case is 255.255.255.255 (local broadcast).
> > > (which is internally 0.0.0.0), but not if bound to 192.168.100.100
> >
> > 255.255.255.255 != 192.168.100.100 - thats why you dont receive traffic for
> > 255.255.255.255 if you bind to 192.168.100.100
> True, but isn't that the whole idea of broadcasts, that you get
> them even if your IP address doesn't match?
>
> I've read the RFCs, and I got the feeling that you should get
> them, but then the RFCs don't talk about sockets and bind...
>
> I'm told that other operating systems work as I expect, but I
> still have to test this.

Let's stop this idiotic thread already.

SO_BROADCAST, forever and since the beginning of time, allows your
socket to BIND to and SEND to broadcast addresses, otherwise attempts
to bind or send to broadcast addresses will error with -EACCESS.

That is the sole meaning of SO_BROADCAST, there is nothing more to it.
Please go read R. Stevens for more info, this list isn't "BSD sockets
101" :-)

Start with page 437 of TCP/IP Illustrated Volume 2, figure 15.4
"so_option" values, it explicitly states that SO_BROADCAST means
"socket can send broadcast messages" _NOT_ anything about the
socket receiving broadcast messages.

I can see where you perhaps get this idea from, the Linux section 7
man page for "socket" has language that suggests that SO_BROADCAST
influences packet reception, but this is totally wrong. It wouldn't
be the first time the Linux man pages have an inaccuracy :)

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html