From jesper@pebbles.tele.dk  Sat Nov 11 08:28:08 2000
Return-Path: <jesper@pebbles.tele.dk>
Received: from pebbles.tele.dk (pebbles.tele.dk [193.162.159.96])
	by hub.freebsd.org (Postfix) with ESMTP id AFBE237B479
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 11 Nov 2000 08:28:07 -0800 (PST)
Received: (from jesper@localhost)
	by pebbles.tele.dk (8.11.1/8.11.1) id eABGS5P14524;
	Sat, 11 Nov 2000 17:28:05 +0100 (CET)
	(envelope-from jesper)
Message-Id: <200011111628.eABGS5P14524@pebbles.tele.dk>
Date: Sat, 11 Nov 2000 17:28:05 +0100 (CET)
From: jesper@skriver.dk
Sender: jesper@pebbles.tele.dk
Reply-To: jesper@skriver.dk
To: FreeBSD-gnats-submit@freebsd.org
Cc: ncbp@wheel.dk, hjj@wheel.dk, jesper@skriver.dk
Subject: traceroute enhancement
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         22770
>Category:       bin
>Synopsis:       traceroute enhancement for multiple paths
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 11 08:30:00 PST 2000
>Closed-Date:    Sun Dec 3 15:27:11 PST 2000
>Last-Modified:  Sun Dec 03 15:28:11 PST 2000
>Originator:     Jesper Skriver
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
Tele Danmark
>Environment:
System: FreeBSD pebbles.tele.dk 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Wed Nov 8 17:21:35 CET 2000 root@pebbles.tele.dk:/export/obj/usr/src/sys/PEBBLES i386

>Description:
	When using traceroute, and multiple paths exist, we currently get a 
ugly and hard to read output like the below

$ /usr/sbin/traceroute pannxt1
traceroute to pannxt1.ip.tele.dk (195.249.8.42), 30 hops max, 40 byte packets
 1  eth9-0-0.sltnxt2.ip.tele.dk (193.162.159.76)  1.098 ms  0.885 ms  0.833 ms
 2  pos0-3.155M.arcnxg2.ip.tele.dk (195.249.12.245)  0.988 ms  1.003 ms  0.901 ms
 3  atm0-0-0-72.60M.abnxt2.ip.tele.dk (195.249.11.25)  16.220 ms  8.541 ms  8.289 ms
 4  fe1-0-0.100M.abnxt1.ip.tele.dk (195.249.112.225)  11.734 ms  8.727 ms  10.048 ms
 5  ser3-0.bstnxt1.ip.tele.dk (195.249.13.45)  11.791 ms ser6-2.bstnxt1.ip.tele.dk (195.249.13.69)  9.034 ms ser3-1.bstnxt1.ip.tele.dk (195.249.4.109)  8.462 ms
 6  ser3-2.pannxt1.ip.tele.dk (195.249.5.21)  8.954 ms *  9.245 ms

With my patch the output is much nicer

$ /usr/local/sbin/traceroute pannxt1
traceroute to pannxt1.ip.tele.dk (195.249.8.42), 30 hops max, 40 byte packets
 1  eth9-0-0.sltnxt2.ip.tele.dk (193.162.159.76)  1.101 ms  1.008 ms  0.913 ms
 2  pos0-3.155M.arcnxg2.ip.tele.dk (195.249.12.245)  1.329 ms  0.961 ms  1.016 ms
 3  atm0-0-0-72.60M.abnxt2.ip.tele.dk (195.249.11.25)  8.499 ms  13.927 ms  8.320 ms
 4  fe1-0-0.100M.abnxt1.ip.tele.dk (195.249.112.225)  8.812 ms  8.898 ms  8.980 ms
 5  ser3-1.bstnxt1.ip.tele.dk (195.249.4.109)  8.643 ms
    ser3-0.bstnxt1.ip.tele.dk (195.249.13.45)  11.241 ms
    ser6-2.bstnxt1.ip.tele.dk (195.249.13.69)  9.013 ms
 6  ser3-2.pannxt1.ip.tele.dk (195.249.5.21)  9.083 ms *  9.084 ms

>How-To-Repeat:
	run traceroute to a distination where multiple paths exist.
>Fix:

	Apply the below patch to /usr/src/contrib/traceroute/traceroute.c

--- traceroute.c.old	Sat Nov 11 17:05:04 2000
+++ traceroute.c	Sat Nov 11 17:16:53 2000
@@ -790,6 +790,9 @@
 				if (i == 0)
 					continue;
 				if (from.sin_addr.s_addr != lastaddr) {
+					if ( probe != 0 ) {
+						Printf("\n   ");
+					}
 					print(packet, cc, &from);
 					lastaddr = from.sin_addr.s_addr;
 				}

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: will 
State-Changed-When: Sun Dec 3 15:27:11 PST 2000 
State-Changed-Why:  
Since Craig (traceroute maintainer at LBL) won't merge this into the official 
traceroute distribution, it can't be put on the vendor branch and thus it's 
not worth it.  As Craig sugested, you can just make a sed script or something. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=22770 
>Unformatted:
