Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Nov 2005 12:13:42 +0100
From:      Michael Voucko <voucko@gmx.li>
To:        freebsd-stable@freebsd.org
Subject:   "message too long" when sending broadcasts
Message-ID:  <437B1466.8030202@gmx.li>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------000304070202090800010101
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

I'm trying to install the latest version of heartbeat (linux-ha), which 
unfortunately is not available from the ports tree yet.
Setup is two boxes running (5.4-STABLE FreeBSD from Oct 17 2005) both connected 
to a hub with lnc NICs on a private 10.0.0.0/24 subnet (actually its only a 
'simulated hub' provided by VMWare if this matters).

After some initial struggles configuration, build and installations works as 
expected - but now the most basic parts of this application won't work anymore. 
When trying to use UDP broadcast messages for the heartbeat it would error out 
with "Message too long" for packets larger than 1472 bytes, in other words as 
soon as fragmentation of the package would be necessary (MTU is 1500).

I received a code snippet from the heartbeat developers to isolate the problem 
(create sender and receiver socket, send broadcast packets of a certain size). 
To rule out VMware as the basic problem I tried real boxes but the problem 
persists.

Is there any size restriction for UDP broadcast messages?
Is there anything which prevents UDP broadcast from being fragmented?

I searched RFCs, man pages for socket, setsockopt, ioctl, sendto and other 
places but did not find anything that could explain the behaviour (which seems 
to be no problem on other OS).

Any pointers, comments?

Thanks,
  Michael

N.B:
Code snippet is attached in case somebody cares to take a look - it works fine 
for me when using "./bcast-test -r -i lnc1 -p 1500" on the receiving box and
"./bcast-test -r -i lnc1 -p XXX" on the sending box for XXX < 1473.

--------------000304070202090800010101
Content-Type: text/plain;
 name="bcast.c"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="bcast.c"

I2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxp
Yi5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNp
bmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KI2luY2x1ZGUgPG5l
dC9pZi5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgoKI2Rl
ZmluZSBQT1JUIDY5NAojZGVmaW5lIE1BWEJVRiAyMDQ4Cgp2b2lkCnVzYWdlKGludCBhcmdj
LCBjaGFyICoqIGFyZ3YpCnsKCXByaW50ZigiVXNhZ2U6ICVzIFstc10gWy1yXSAtcCBwYWNr
ZXRzaXplIC1pIGV0aDAvZXRoMS8uLi5cbiIsIGFyZ3ZbMF0pOwoJcHJpbnRmKCIjZGVmYXVs
dCBpcyB0byByZWNlaXZlXG4iKTsKCXJldHVybjsKfQoKaW50CmNyZWF0ZV9yZWN2X3NvY2tl
dChjaGFyKiBpZm5hbWUpCnsKCXN0cnVjdCBzb2NrYWRkcl9pbiBteV9hZGRyOwoJaW50IHNv
Y2tmZDsKCWludCBvbmUgPSAxOwoJc3RydWN0IGlmcmVxIGk7CgoKCW1lbXNldCgmbXlfYWRk
ciwgMCwgc2l6ZW9mKG15X2FkZHIpKTsKCW15X2FkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7
CglteV9hZGRyLnNpbl9wb3J0ID0gaHRvbnMoUE9SVCk7CglteV9hZGRyLnNpbl9hZGRyLnNf
YWRkciA9IGh0b25sKElOQUREUl9BTlkpOwoKCWlmICgoIHNvY2tmZCA9IHNvY2tldChBRl9J
TkVULCBTT0NLX0RHUkFNLCAwKSkgPT0gLTEpewoJCXByaW50ZigiRXJyb3IgZ2V0dGluZyBz
b2NrZXQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwoJCWV4aXQoMSk7Cgl9CgoJaWYgKHNl
dHNvY2tvcHQoIHNvY2tmZCwgU09MX1NPQ0tFVCwKCQkJU09fUkVVU0VBRERSLCAoY29uc3Qg
dm9pZCopJm9uZSwgc2l6ZW9mKG9uZSkpIDwgMCl7CgkJcHJpbnRmKCJFcnJvciBzZXR0aW5n
IHNvY2tldCBvcHRpb24gU09fUkVVU0VBRERSOiAlc1xuIiwKCQkgICAgICAgc3RyZXJyb3Io
ZXJybm8pKTsKCQlleGl0KDEpOwoJfQoKCXN0cmNweShpLmlmcl9uYW1lLCBpZm5hbWUpOwoK
CWlmIChiaW5kKHNvY2tmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmIG15X2FkZHIsIHNpemVv
ZihzdHJ1Y3Qgc29ja2FkZHIpKQoJICAgIDwgMCl7CgkJcHJpbnRmKCJFcnJvciBiaW5kaW5n
IHNvY2tldDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CgkJZXhpdCgxKTsKCX0KCglyZXR1
cm4gc29ja2ZkOwp9CgoKdm9pZApyZWN2X3BhY2tldHMoaW50IHNvY2tmZCwgaW50IHBhY2tl
dHNpemUpCnsKCWludCBidWZzaXplID0gcGFja2V0c2l6ZSArIDEwMDsKCWNoYXIgYnVmW01B
WEJVRl07CglpbnQgbjsKCXN0cnVjdCBzb2NrYWRkcl9pbiB0aGVpcmFkZHI7CglpbnQgbGVu
ID0gc2l6ZW9mKHRoZWlyYWRkcik7CgoJd2hpbGUoMSl7CgoJCW1lbXNldChidWYsIDAsIE1B
WEJVRik7CgkJaWYgKChuID0gcmVjdmZyb20oc29ja2ZkLCBidWYsIGJ1ZnNpemUgLSAxLCAw
LAoJCQkJICAoc3RydWN0IHNvY2thZGRyKikmdGhlaXJhZGRyLCAmbGVuKSkgPT0gLTEpewoJ
CQlwcmludGYoIkVycm9yIHJlY2VpdmluZyBmcm9tIHNvY2tldDogJXNcbiIsIHN0cmVycm9y
KGVycm5vKSk7CgkJCWV4aXQoMSk7CgkJfQoJCXByaW50ZigiTWVzc2FnZSByZWNlaXZlZDog
KCVkIGJ5dGVzKVxuJXNcbiIsIG4sIGJ1Zik7Cgl9Cgp9CgppbnQKY3JlYXRlX3NlbmRfc29j
a2V0KGNoYXIqIGlmbmFtZSkKewoJaW50IHNvY2tmZDsKCWludCBvbmUgPSAxOwoJc3RydWN0
IGlmcmVxIGk7CglzdHJjcHkoaS5pZnJfbmFtZSxpZm5hbWUpOwoKCWlmICgoc29ja2ZkID0g
c29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0sIDApKSA8PSAwKSB7CgkJcHJpbnRmKCJFcnJv
ciBpbiBnZXR0aW5nIHNvY2tldDogJXMiLCBzdHJlcnJvcihlcnJubykpOwoJCWV4aXQoMSk7
Cgl9CgoKCWlmIChzZXRzb2Nrb3B0KHNvY2tmZCwgU09MX1NPQ0tFVCwgU09fQlJPQURDQVNU
LCAoY29uc3Qgdm9pZCopICZvbmUsIHNpemVvZihvbmUpKSA9PSAtMSkKCQl7CgkJCXByaW50
ZigiRXJyb3Igc2V0dGluZyBzb2NrZXQgb3B0aW9uIFNPX0JST0FEQ0FTVDogc29ja2ZkID0l
ZCAsICVzXG4iLAoJCQkgICAgICAgc29ja2ZkLCBzdHJlcnJvcihlcnJubykpOwoJCQljbG9z
ZShzb2NrZmQpOwoJCQlleGl0KDEpOwoJCX0KCglyZXR1cm4gc29ja2ZkOwp9CgoKaW50Cmdl
dF9iYWRkcihzdHJ1Y3Qgc29ja2FkZHJfaW4qIGJhZGRyLCBjaGFyKiBpZm5hbWUpCnsKCXN0
cnVjdCBpZnJlcSBpZnI7CglpbnQgZmQ7CglpbnQgcmV0dXJuX3ZhbDsKCglmZCA9IHNvY2tl
dCAoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7CgoJaWYgKGZkIDwwKSB7CgkJcHJpbnRmKCJF
cnJvciBvcGVuaW5nIHNvY2tldDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CgkJZXhpdCgx
KTsKCX0KCglzdHJjcHkgKGlmci5pZnJfbmFtZSwgaWZuYW1lKTsKCglyZXR1cm5fdmFsID0g
aW9jdGwoZmQsIFNJT0NHSUZCUkRBRERSLCAmaWZyKTsKCWlmIChyZXR1cm5fdmFsID09IDAg
KQoJCXsKCQkJaWYgKGlmci5pZnJfYnJvYWRhZGRyLnNhX2ZhbWlseSA9PSBBRl9JTkVUKQoJ
CQkJewoJCQkJCXN0cnVjdCBzb2NrYWRkcl9pbiBzaW5fcHRyOwoJCQkJCW1lbWNweSgmc2lu
X3B0ciwgJmlmci5pZnJfYnJvYWRhZGRyLAoJCQkJCSAgICAgICBzaXplb2Yoc2luX3B0cikp
OwoJCQkJCW1lbWNweSgmYmFkZHItPnNpbl9hZGRyLCAmc2luX3B0ci5zaW5fYWRkciwKCQkJ
CQkgICAgICAgc2l6ZW9mKGJhZGRyLT5zaW5fYWRkcikpOwoJCQkJfQoJCQllbHNlCgkJCQl7
CgkJCQkJcHJpbnRmKCJXcm9uZyBmYW1pbHkgZm9yIGJyb2FkY2FzdCBpbnRlcmZhY2UgOiAl
cyIsCgkJCQkJICAgICAgIHN0cmVycm9yKGVycm5vKSk7CgkJCQkJZXhpdCgxKTsKCQkJCX0K
CgkJfQoJZWxzZQoJCXsKCQkJcHJpbnRmKCJHZXQgYnJvYWRjYXN0IGZvciBpbnRlcmZhZGUg
ZmFpbGVkOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKCQkJZXhpdCgxKTsKCQl9CgoJYmFk
ZHItPnNpbl9mYW1pbHkgPSBBRl9JTkVUOwoJYmFkZHItPnNpbl9wb3J0ID0gaHRvbnMoUE9S
VCk7CgoJcmV0dXJuIDA7Cn0KCgoKdm9pZApzZW5kX3BhY2tldHMoaW50IHNvY2tmZCwgc3Ry
dWN0IHNvY2thZGRyKiBhZGRyLCBpbnQgcGFja2V0c2l6ZSkKewoJaW50IGk7CgljaGFyIHBh
Y2tldFtNQVhCVUZdOwoJY2hhciBzaXplWzEwXTsKCWludCByZXQ7CgoJbWVtc2V0KHBhY2tl
dCwgJ0EnLCBwYWNrZXRzaXplKTsKCXBhY2tldFtwYWNrZXRzaXplLTFdID0gJ1wwJzsKCXNw
cmludGYoc2l6ZSwgIiVkIiwgcGFja2V0c2l6ZSk7CglzdHJjcHkocGFja2V0LCBzaXplKTsK
CXBhY2tldFtzdHJsZW4oc2l6ZSldID0gJyAnOwoKCWZvciAoIGkgPSAwOyBpIDwgMTAwMDsg
aSsrKQoJCXsKCQkJcHJpbnRmKCJzZW5kaW5nIHBhY2tldCAlZFxuIiwgaSk7CgkJCWlmICgg
KHJldCA9IHNlbmR0byhzb2NrZmQsIHBhY2tldCwgcGFja2V0c2l6ZSwgMCxhZGRyICxzaXpl
b2Yoc3RydWN0IHNvY2thZGRyKSkpCgkJCSAgICAgIT0gcGFja2V0c2l6ZSkKCQkJCXsKCQkJ
CQlwcmludGYoIlVuYWJsZSB0byBzZW5kIGJjYXN0IHBhY2tldHM6ICVzXG4iLCBzdHJlcnJv
cihlcnJubykpOwoJCQkJCWV4aXQoMSk7CgkJCQl9CgkJfQoKfQoKCgppbnQKbWFpbihpbnQg
YXJnYywgY2hhcioqIGFyZ3YpCnsKCglpbnQgaXNzZW5kZXIgPSAwOwoJaW50IGlzcmVjdmVy
ID0gMDsKCWludCBwYWNrZXRzaXplID0gMDsKCWludCBjOwoJY2hhciogaWZuYW1lOwoKCXdo
aWxlICgoYyA9IGdldG9wdCAoYXJnYywgYXJndiwgInNyaTpwOiIpKSAhPSAtMSkKCQlzd2l0
Y2goYykKCQkJewoJCQljYXNlICdzJzoKCQkJCWlzc2VuZGVyID0xOwoJCQkJYnJlYWs7CgkJ
CWNhc2UgJ3InOgoJCQkJaXNyZWN2ZXIgPTE7CgkJCQlicmVhazsKCQkJY2FzZSAnaSc6CgkJ
CQlpZm5hbWUgPSBvcHRhcmc7CgkJCQlicmVhazsKCQkJY2FzZSAncCc6CgkJCQlwYWNrZXRz
aXplID0gYXRvaShvcHRhcmcpOwoJCQkJYnJlYWs7CgkJCWNhc2UgJz8nOgoJCQkJcHJpbnRm
KCJ1bmtub3duIG9wdGlvbnNcbiIpOwoJCQkJdXNhZ2UoYXJnYywgYXJndik7CgkJCQlyZXR1
cm4oMSk7CgkJCX0KCglpZiAoaXNzZW5kZXIgJiYgaXNyZWN2ZXIpCgkJewoJCQlwcmludGYo
InNlbmRlciBhbmQgcmVjdmVyIGluIG9uZSBwcm9ncmFtIgoJCQkgICAgICAgImlzIG5vdCBz
dXBwb3J0ZWRcbiIpOwoJCQl1c2FnZShhcmdjLCBhcmd2KTsKCQkJZXhpdCgxKTsKCgkJfQoK
CWlmIChwYWNrZXRzaXplID09IDApCgkJewoJCQlwcmludGYoImludmFsaWQgcGFja2V0c2l6
ZVxuIik7CgkJCXVzYWdlKGFyZ2MsIGFyZ3YpOwoJCQlleGl0KDEpOwoKCQl9CgoJaWYgKGlz
c2VuZGVyKQoJCXsKCQkJaW50IHNlbmRfc29ja2ZkID0gY3JlYXRlX3NlbmRfc29ja2V0KGlm
bmFtZSk7CgoJCQlzdHJ1Y3Qgc29ja2FkZHJfaW4gYmFkZHI7CgoJCQlnZXRfYmFkZHIoJmJh
ZGRyLCBpZm5hbWUpOwoKCQkJc2VuZF9wYWNrZXRzKHNlbmRfc29ja2ZkLChzdHJ1Y3Qgc29j
a2FkZHIqKSZiYWRkciwgcGFja2V0c2l6ZSk7CgoJCQlwcmludGYoIlNlbmRpbmcgZmluaXNo
ZWQhXG4iKTsKCgkJfQoJZWxzZQoJCXsKCQkJaW50IHJlY3Zfc29ja2ZkID0gY3JlYXRlX3Jl
Y3Zfc29ja2V0KGlmbmFtZSk7CgkJCXJlY3ZfcGFja2V0cyggcmVjdl9zb2NrZmQsIHBhY2tl
dHNpemUpOwoJCX0KCglwcmludGYoIlByb2dyYW0gZW5kcyBzdWNjZXNzZnVsbHkhXG4iKTsK
CXJldHVybiAxOwp9Cg==
--------------000304070202090800010101--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?437B1466.8030202>