Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
For bugs related to Red Hat Enterprise Linux 4 product line. The current stable release is 4.9. For Red Hat Enterprise Linux 6 and above, please visit Red Hat JIRA https://issues.redhat.com/secure/CreateIssue!default.jspa?pid=12332745 to report new issues.

Bug 464044 (traceroute-f)

Summary: TRACEROUTE -F SHOULD NOT INCREASE PACKET REASSEMBLE FAILURE COUNTER
Product: Red Hat Enterprise Linux 4 Reporter: xiaowei.hu <xiaowei.hu>
Component: tracerouteAssignee: Jiri Skala <jskala>
Status: CLOSED ERRATA QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 4.9CC: aglotov, fleitner, mkoci, mmalik, rvokal, tao, xiaowei.hu
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://bugzilla.oracle.com/bugzilla/show_bug.cgi?id=7182
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-01-22 15:58:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
fix this bug none

Description xiaowei.hu 2008-09-26 01:52:07 UTC
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 15:55:56 UTC
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 Program Management 2008-11-26 16:28:31 UTC
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 15:58:44 UTC
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