This file is indexed.

/usr/share/doc/traceroute/TODO is in traceroute 1:2.0.21-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
* It seems that `-l' and `-g' will not work correctly together (IPv6).

  Wait for "flow label" API to be appeared in kernel-headers and
  think about it immediately after that... :)


* Tune default parameters properly.

  Maybe decrease `-w' secs to 4.0 instead of 5.0 (as Network is faster now).


* Verbose output. Show method in use, what ports we are connecting to,
  more info about icmp response etc.


* The "final hop" issue.

  All methods, usable when firewalls are present in the network path,
  normally use some particular destination port. Most often it is a port
  of an already running application.

  It requires that the packet sent should be correct for such an application
  (for example, for tracing with udp to port 53, it should be correct DNS
  request), and the application normally should answer something on it.
  (TCP has no such an issue, as there are just syn to, and ack or reset from).

  In general, we should fill the packet's data depending on the dest port
  and protocol. It seems not a task for traceroute itself, it could be
  some cmdline option or even external hook...


* Think about SCTP method.


* Think about "multicast tracerouting" (mrouted(8) and other).
  The idea is to increase the room in the mtrace packet step-by-step
  (as well as we increase ttl). It seems that if there is no more space
  in the probe's room, the mrouted(8) daemon answers immediately, the same
  way as if it is a final hop.

  For IPv6 mtrace, there is an RFC draft for this already...


* Make the output more clean -- use two spaces before any printed address
  (not the first one only), and use two spaces between expired probes as well.


* Maybe implement some config file (both user and system-wide), 
  with directives (auto)generated from the general-type long-options.
  This could allow people to tune default parameters.

  The presence of such files even makes it reasonable to add some more
  long-options (fe. to tune the form of output), as the user can specify
  it in configfile just at once.