Hi everyone,

This is the "todo" file for mtr. I just realized that some people
might think that this is all in MY queue to implement. That is not
true: This is the "for everybody" todo list. Feel free to pick a
"project" and implement something off this list.

Students: Feel free to take up one of these as a programming exercise
for one of your courses.

Everybody: If you want to start on something, contact me first, so
that the effort isn't wasted by someone who finishes just a tad
earlier. I'll happily provide "coaching" to anyone who wants to
implement something on this list. That way we get the design of
these things the way I like them. This should result in a better
maintainable mtr.

Oh, Feel free to provide suggestions for this list.


-- REW

----------------------------------------------------------------------

- cleanup
  - cleanup warnings that the newer GCC produces.

- Stuff to implement:

  - Allow mtr to log the return packets, for later analysis.
    Done: 0.25 . Todo: allow the user interface(s) to work while
    still logging to a file. Write a "logfile displaying" mode to
    mtr.

  - Request timestamping at the remote site.
       Andreas Fasbender has an algorithm that will allow us to
       convert these measurements into one-way measurements, not just
       round-trip.

  - allow "keyboard navigation" in the GTK version.

  - Keep all packets and make the "best" and "worst" columns show the
    xx-th percentile....

  - Being able to expand the "column width" of the hosts listed would
    be nice, too.

  - Display per host stats when multiple servers respond at a particular
    hop count.


- Bugs to fix?

  - Do something useful if host couldn't be resolved.
       -- Done.

  - Revert to curses mode even if DISPLAY is set, but a problem
    prevents us from running in X11 mode.
       -->  The problem is that gtk_init simply calls exit for us if
            it finds a problem. Tricky! Suggestions welcome.
       --> Call "gtk_check_init" when available. (i.e. new enough
           (1.2?) GTK version).

- Nice to have:

  - stop sending packets when a new host is getting entered.

  - Show state ("looking up host") while doing the DNS lookup for a new
    host.

  - to have a choice of icmp, tcp, and udp pings. -- Matt Martini

  - Autoconf 2.13 has a neat function that can be used to find the
    res_init function:

	   AC_SEARCH_LIBS(res_init, bind resolv, ,
	      AC_MSG_ERROR(No resolver library found))

    At the moment (march 1999) autoconf 2.13 is still too new to require
    everyone to upgrade. About a year from now we can put this in....

  - Implement rfc2317 mechanism to do reverse lookups for networks that
    have DNS delegations on non-octet boundaries. -- Daniel Bergstrom
    (noa@melody.se)

  - The longer MTR runs, the less meaningful the packet loss
    statistic. Or more meaningful, depending on your point of view.
    Perhaps MTR should use a circular buffer of some configurable
    number of results, and calculate the loss against that. -- Jacob Elder

  - It would be nice if the window size wasn't fixed. If I'm only 5
    hops from the host I'm monitoring, MTR wastes a lot of screen real
    estate. -- Jacob Elder

  - Colors in the curses version. -- Amix

  - If we run a mtr to monitor a connection it would be nice if the time at
    which mtr was started is print somewhere. -- Sebastian Ganschow



------------------------------------------------------------------------

Things that shouldn't be on the TODO list because they're done. ;-)

  - Allow a toggle between hostname/IP number display. (for example a
    click on the hostname could revert to ip number display in gtk version.
    curses: "n" key toggles hostnames/ipnumbers?)

  - Allow mtr to also send larger packets.
       This will enable us to get a feel for the speed of the links
       we're traversing. (Van Jacobson was working on this His tool
       was slow, mtr will rock with this feature.... :-)
       (Anybody have the statistics experience to tell me how
       to do the data analysis?)
	-- DONE. Thanks to Olav Kvittem ...

  - The "don't probe all hosts at once" strategy can be improved a bit.
    It should not probe more than 10 unknown hosts, but the counter need
    not be reset at the start of the "round". This way if you probe
    slowly (relative to the RTT time to the end host), it can probe
    all hosts in the first "round".
       -- DONE.

  - Read environment variable "MTR_DEFAULTS" as a commandline before
    parsing the commandline.  -- DONE. (ok it's MTR_OPTIONS.)
