RFC 919 compliance (broadcasts to 255.255.255.255)

Benjamin Lutz benlutz at datacomm.ch
Fri Aug 4 15:12:21 UTC 2006


Hello,

I've noticed that FreeBSD does not by default comply to RFC 919, Chapter 7 
(http://tools.ietf.org/html/rfc919). Specifically, it does not handle IP 
packets with a destination address of 255.255.255.255 properly.

255.255.255.255 is a "limited broadcast address" (the term is not mentioned in 
the RFC, but seems to be in use everywhere else). An IP packet send to that 
address should be broadcast to the whole IP subnet of the broadcasting 
device. However, in FreeBSD (4.11, 5.5, 6.1) this does not work, as is 
evident by this tcpdump output:

17:00:59.125132 00:12:17:5a:b3:b6 > 00:40:63:d9:a9:28, ethertype IPv4 
(0x0800), length 98: 10.0.0.1 > 255.255.255.255: ICMP echo request, id 33319, 
seq 0, length 64

The destination MAC address is that of my gateway, but it should be 
ff:ff:ff:ff:ff:ff. You can reproduce this by running "tcpdump -en ip proto 1" 
and "ping 255.255.255.255".

I found a discussion from 2003 about this, but it seems to have trailed off 
without coming to a conclusion:
http://lists.freebsd.org/pipermail/freebsd-net/2003-July/000921.html

I've noticed that the ip(7) manpage lists a SO_ONESBCAST option. The intention 
seems to be to enable packets to 255.255.255.255. However a test with a small 
program showed that this option seems to have no effect, outgoing packets 
still carried the gateway's MAC address as destination.

Btw, Linux and NetBSD both handle packets to 255.255.255.255 as broadcasts.

Now, is this behaviour intentional? Is there a way to turn on RFC 919 
compliance? If not, would someone be willing to add this to the kernel? Should 
I submit a PR?

Cheers
Benjamin


More information about the freebsd-hackers mailing list