tracepath with specified pktlen=28 bytes fails with the following errmsg: # tracepath -l 28 10.100.100.4 Error: length must be >= 28 Reproducible: Always Steps to Reproduce: 1. # tracepath -l 28 10.100.100.4 Actual Results: Error: length must be >= 28 Expected Results: 28 >= 28 results positive after changing the pktlen to 29 bytes: # tracepath -l 29 10.100.100.4 1: 10.0.0.1 0.464ms 2: 10.100.100.1 9.557ms 3: somehost.com 15.503ms reached Resume: pmtu 29 hops 3 back 62
iputils-sss20100418 2.6.36-gentoo-r1 x86_64
Created attachment 262879 [details, diff] Correct the error message.
Actually, if you try to patch it the other way, you get this: bastiaan ~ # /var/tmp/portage/net-misc/iputils-20100418-r1/work/iputils-s20100418/tracepath -l 28 www.gentoo.org 1: send failed Resume: pmtu 28 bastiaan ~ # [blink]
Thank you Jeroen, The ip plus the icmp header is 28 so ">" is the only way to go... i thought it could be possible to send no payload.. just headers in the packet. Thanks again! Mike (In reply to comment #3) > Actually, if you try to patch it the other way, you get this: > bastiaan ~ # > /var/tmp/portage/net-misc/iputils-20100418-r1/work/iputils-s20100418/tracepath > -l 28 www.gentoo.org > 1: send failed > Resume: pmtu 28 > bastiaan ~ # [blink] >
Hello again, well, it is possible to send 0 bytes in the payload using ICMP... just the IP and icmp header, so via tracepath it also should be possible to specify 28 bytes... am I missing something here? Thanks! Mike
Ideally the command line switch shouldn't set the packet length but the payload length.
# ping -s 0 [host] sends no payload, only headers tracepath, also icmp, requires payload ( in our case ) so if it would require payload size instead of packet size it still would have to still requre payload_length > 0
ive added the error message fix to iputils-20101006. as for improving the behavior in general, take it upstream -> netdev@vger.kernel.org.