Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jun 2006 09:55:16 +0400
From:      "Andrey V. Elsukov" <bu7cher@yandex.ru>
To:        Bruce M Simpson <bms@FreeBSD.org>
Cc:        Robert Watson <rwatson@FreeBSD.org>, freebsd-bugs@FreeBSD.org, Gleb Smirnoff <glebius@FreeBSD.org>, andre@freebsd.org, citrin@citrin.ru
Subject:   Re: kern/99558: FreeBSD 6.1 can't send packets to INADDR_BROADCAST
Message-ID:  <44A36B44.1030100@yandex.ru>
In-Reply-To: <200606282026.k5SKQF76000393@freefall.freebsd.org>
References:  <200606282026.k5SKQF76000393@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce M Simpson wrote:
> Please read the manual page ip(4) for information on the IP_ONESBCAST
> option. The INADDR_BROADCAST destination is by its nature non specific
> and link local therefore you need to use the IP_ONESBCAST option to
> cause undirected broadcasts to be sent on a particular interface.
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=99558

Ok. I've tested 5.4-STABLE.
Without IP_ONESBCAST:
09:24:50.293393 IP 10.0.0.4.5000 > 10.0.7.255.5000: UDP, length: 4
0x0000:  ffff ffff ffff 0007 e909 d5b3 0800 4500  ..............E.
0x0010:  0020 24d7 0000 4011 39f4 0a00 0004 0a00  ..$...@.9.......
0x0020:  07ff 1388 1388 000c 1c20 7465 7374       ..........test

With IP_ONESBCAST:
09:28:08.275418 IP 10.0.0.4.54715 > 255.255.255.255.5000: UDP,length:4
0x0000:  ffff ffff ffff 0007 e909 d5b3 0800 4500  ..............E.
0x0010:  0020 8987 0000 4011 e742 0a00 0004 ffff  ......@..B......
0x0020:  ffff d5bb 1388 000c 0a21 7465 7374       .........!test

In result we have difference only in IP destination address.
I want to pay attention that a Ethernet destination address is a
ethernet broadcast!

Now for 6.1-STABLE. Without IP_ONESBCAST:
10:43:15.384080 IP 172.21.81.19.58298 > 255.255.255.255.5000: UDP, 
length 4
0x0000:  0011 936b 3c91 0080 4819 86df 0800 4500  ...k<...H.....E.
0x0010:  0020 a670 0000 4011 d734 ac15 5113 ffff  ...p..@..4..Q...
0x0020:  ffff e3ba 1388 000c 2391 7465 7374 0000  ........#.test..
0x0030:  0000 0000 0000 0000 0000 0000            ............

With IP_ONESBCAST:
10:44:20.320314 IP 172.21.81.19.53276 > 255.255.255.255.5000: UDP, 
length 4
0x0000:  0011 936b 3c91 0080 4819 86df 0800 4500  ...k<...H.....E.
0x0010:  0020 a998 0000 4011 d40c ac15 5113 ffff  ......@.....Q...
0x0020:  ffff d01c 1388 000c 372f 7465 7374 0000  ........7/test..
0x0030:  0000 0000 0000 0000 0000 0000            ............

In result we have an identical datagrams with *incorrect* ethernet
destination addresses. When my system don't have default route, he
can not send broadcast. I've got error message "sendto(): Network is
unreachable"!

-- 
WBR, Andrey V. Elsukov



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44A36B44.1030100>