|
From: Lars E. <Lar...@li...> - 2004-10-03 19:29:01
|
/ 2004-10-03 17:11:26 +0200 \ BlaisorBlade: > On Sunday 03 October 2004 04:36, Lars Ellenberg wrote: > > in the upcomming new heartbeat design of linux-ha, we use relatively > > large udp packets (passing large xml blobs back and forth between the > > nodes). now, cluster development and testing is convenient on UML. > > > > but: > > uml seems to silently and systematically lose all fragmented > > udp packets, that is packages larger than mtu, and 1480 byte > > max for xml blobs just does not work out too good ... > > > I investigated a little bit (using two simple perl snippets to > > generate/[not]receive the udp packets), and it turns out that: > > > sending large (up to 64K; fragmented) udp packets > > using tuntap: > > HOST -> UML works. > > UML -> HOST nope :( > > UML <-> UML nope :( [ neither with mcast or other ] > > > > looking into /proc/net/snmp on the UMLs and the HOST > > show on the not receiving side an increase of > > InHdrError! > > (it never is reassembled into a proper udp packet) > > > > this is easy to reproduce (because it just happens all the time) > > tested with 2.6.6 and 2.6.8 plus respective UML patches. > > Have you tried to use different UML transports (ethertap/uml_switch)- tuntap with uml_switch, uml_switch -hub multicast > tcpdump'ing the traffic - other things? host tcpdump sees packets, they appear to be correct. tcpdump in the uml segfaults on the second fragment for two-fragment udp packet :-) > Changing the host version? host linux kernel: 2.4.21-suse something, 2.4.26, 2.6.6, 2.6.8 > Increasing the MTU somewhere (but seems not to work)? right. does not work. > What is strange is that the UML code does not even parse the IP header > when using tuntap - it only works at the Ethernet layer. > IIRC, the fragmentation happens at the IP layer... hm... I only describe what I see. > Also, can you post the scripts you use? attached. on one side: perl UdpRecv.pl & on other uml, host, or same system, does not matter: perl UdpSend.pl [<target ip>] btw, uml to itself via uml-lo does work... > > it seems to me that UML corrupts the ip header of > > fragmented udp packets somehow at sending time. > > > > I wonder, if someone uses nfs over udp on uml, this should > > be a long known issue and turn up loads of hits in a search. > > I did not find a single reference to that problem, though. > > Does NFS uses large UDP packets? sometimes. and yes, I just exported from uml, nfs-mounted on host, did an ls in a directory with MANY files, and it never came back (udp never reached host, host increases InHdrError) blocksize of exported file system was 1024, mtu is 1500, on would assume it should just work ... but that is still an other problem. thanks, lge |