Bug 464044 - (traceroute-f) TRACEROUTE -F SHOULD NOT INCREASE PACKET REASSEMBLE FAILURE COUNTER
TRACEROUTE -F SHOULD NOT INCREASE PACKET REASSEMBLE FAILURE COUNTER
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: traceroute (Show other bugs)
4.9
All Linux
high Severity high
: rc
: ---
Assigned To: Jiri Skala
http://bugzilla.oracle.com/bugzilla/s...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-09-25 21:52 EDT by xiaowei.hu
Modified: 2014-11-09 17:31 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-01-22 10:58:44 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
fix this bug (311 bytes, patch)
2008-09-25 21:52 EDT, xiaowei.hu
no flags Details | Diff

  None (edit)
Description xiaowei.hu 2008-09-25 21:52:07 EDT
Created attachment 317753 [details]
fix this bug

Description of problem:

running:  traceroute -F localhost (or any other host, public/private,
external) fails the trace route operation:

  traceroute localhost -F
 traceroute to localhost (127.0.0.1), 30 hops max, 46 byte packets
  1  * * *
  2  * * *
  3  * * *
  4  * * *
  5  * * *
 .
 During that time increase in the 'packet reassembles failed' counter is seen
 using netstat -s, about one error per printed *.

 This is not an issue on rhel5/oel5 only on rhel3/4 & oel3/4. Tried different
 packet sizes for traceroute, from 46 bytes up to 1500, all fail..


Version-Release number of selected component (if applicable):
traceroute-1.4a12

How reproducible:
run: traceroute -F localhost

Steps to Reproduce:
1.
2.
3.
  
Actual results:
* * *

Expected results:
should return immediately,one hop

Additional info:

This problem is caused by one of the patches,traceroute-1.4a5-lsrr.patch.
In this old patch removed one defination of BYTESWAP_IP_HDR from the configure
file.So there is byte order problem when compile.Linux box can't convert the
byte order correctly for the -F option.Made a patch for this.
Comment 1 Flavio Leitner 2008-11-26 10:55:56 EST
Hello,

The proposed patch in one liner which reverses some changes introduced by
traceroute-1.4a5-lsrr.patch as said before.

RHEL-5 doesn't reproduce because it uses setsockopt(2) 

80 static int dontfrag = 0;
...
353         { "F", "dont-fragment", 0, "Set DF (don't fragment bit) on",
354                         CLIF_set_flag, &dontfrag, 0, CLIF_ABBREV },
...
828             i = dontfrag ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT;
829             if (setsockopt (sk, SOL_IP, IP_MTU_DISCOVER, &i, sizeof(i)) < 0)

so the task of setting frag_off is handled by the kernel which does:
net/ipv4/ip_output.c
int ip_build_and_send_pkt(...
...
136         if (ip_dont_fragment(sk, &rt->u.dst))
137                 iph->frag_off = htons(IP_DF);
138         else
139                 iph->frag_off = 0;

the same happens on others functions, i.e. ip_queue_xmit().

RHEL-4 builds the packet manually and so, needs to use htons() too.
695 #ifdef BYTESWAP_IP_HDR
696         outip->ip_len = htons(packlen);
697         outip->ip_off = htons(off);
698 #else
699         outip->ip_len = packlen;
700         outip->ip_off = off;
701 #endif

IMO, the proposed patch is correct.

Flavio
Comment 3 RHEL Product and Program Management 2008-11-26 11:28:31 EST
This request was evaluated by Red Hat Product Management for
inclusion, but this component is not scheduled to be updated in
the current Red Hat Enterprise Linux release. If you would like
this request to be reviewed for the next minor release, ask your
support representative to set the next rhel-x.y flag to "?".
Comment 13 errata-xmlrpc 2009-01-22 10:58:44 EST
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2008-0883.html

Note You need to log in before you can comment on or make changes to this bug.