freebsd-dev/contrib/traceroute
David Malone e4ad3d8dd8 Make traceroute decode all the ICMP unreachable messages defined
in http://www.iana.org/assignments/icmp-parameters. Thankfully
IANA's list aggrees with <netinet/ip_icmp.h>.

I've tried to do this in a way which is mostly consistent with
tcptraceroute and Debian's version of traceroute. However, sometimes
a letter is used twice by these versions, so I've gone with:

                                LBL     tcptr   Debian          (chosen)
ICMP_UNREACH_NET                !N      !N      !N              !N
ICMP_UNREACH_HOST               !H      !H      !H              !H
ICMP_UNREACH_PROTOCOL           !P      !P      !P              !P
ICMP_UNREACH_PORT               !       !p      !               !
ICMP_UNREACH_NEEDFRAG           !F-%d   !F      !F-<%d>         !F-<%d>
ICMP_UNREACH_SRCFAIL            !S      !S      !S              !S
ICMP_UNREACH_NET_UNKNOWN        !<%d>   !U      !<%d>           !U
ICMP_UNREACH_HOST_UNKNOWN       !<%d>   !U      !<%d>           !W
ICMP_UNREACH_ISOLATED           !<%d>   !I      !I              !I
ICMP_UNREACH_NET_PROHIB         !<%d>   !A      !A              !A
ICMP_UNREACH_HOST_PROHIB        !<%d>   !C      !C              !Z
ICMP_UNREACH_TOSNET             !<%d>   !T      !T              !Q
ICMP_UNREACH_TOSHOST            !<%d>   !T      !T              !T
ICMP_UNREACH_FILTER_PROHIB      !X      !A      !A              !X
ICMP_UNREACH_HOST_PRECEDENCE    !V      !<%d>   !V              !V
ICMP_UNREACH_PRECEDENCE_CUTOFF  !C      !<%d>   !C              !C

Graham Wilson is planning to use the same codes in Debian's version.

MFC after:	3 weeks
2006-06-13 14:59:07 +00:00
..
lbl
aclocal.m4
acsite.m4
CHANGES
config.guess
config.sub
configure
configure.in
FILES
findsaddr-generic.c
findsaddr-linux.c
findsaddr-mib.c
findsaddr-socket.c
findsaddr.h
FREEBSD-upgrade
ifaddrlist.c
ifaddrlist.h
INSTALL
install-sh
Makefile.in
mean.awk
median.awk
mkdep
README
rip_output.c
strerror.c
traceroute.8 Make traceroute decode all the ICMP unreachable messages defined 2006-06-13 14:59:07 +00:00
traceroute.c Make traceroute decode all the ICMP unreachable messages defined 2006-06-13 14:59:07 +00:00
traceroute.h
usleep.c
VERSION

@(#) $Id: README,v 1.9 2000/09/16 05:32:01 leres Exp $ (LBL)

TRACEROUTE 1.4
Lawrence Berkeley National Laboratory
Network Research Group
traceroute@ee.lbl.gov
ftp://ftp.ee.lbl.gov/traceroute.tar.gz

Traceroute is a system administrators utility to trace the route
ip packets from the current system take in getting to some
destination system.  See the comments at the front of the
program for a description of its use.

This program uses raw ip sockets and must be run as root (or installed
setuid to root).

A couple of awk programs to massage the traceroute output are
included.  "mean.awk" and "median.awk" compute the mean and median time
to each hop, respectively.  I've found that something like

    traceroute -q 7 foo.somewhere >t
    awk -f median.awk t | xgraph

can give you a quick picture of the bad spots on a long path (median is
usually a better noise filter than mean).

Problems, bugs, questions, desirable enhancements, source code
contributions, etc., should be sent to the email address
"traceroute@ee.lbl.gov".