NIST Net bug list/alpha status

Last updated:
Wed Mar 14 10:05:36 EST 2001

What's the status of the alpha release? 2.0.10 (tenth alpha revision) has been released. This one should now work for most Linux kernels, at least of the 2.0.xx, 2.2.xx and 2.4.xx varieties. (It probably will work on 2.1 and 2.3 kernels as well, but may need some tweaking to compile.) This version is entirely modular, with no kernel patches required!

2.0.11 (eleventh alpha revision) will improve the documentation. This should be the last alpha release before the "final" 2.1 version.

Bug reporting

A temporary mail alias for alpha bug reports only has been set up. Send bug reports on 2.0a only to:

For the bug reports to be useful, keep the following points in mind:

Current bug/feature request list

Here is a not-very-well-prioritized list of the current known bugs/misfeatures/needed improvements for the NIST Net alpha releases.

  1. Version 2.0a.1
    1. Port back 2.0 changes into 1.4 release to the extent possible. After this, the two releases will have common base code (with some #ifdef LINUX_VERSION_CODE stuff, of course), but of course different kernel patch files. Again, I'm thinking of dropping the 1.4/2.0 nonsense and calling them all 2.0, since the install scripts will now work on either kernel version.
      Status: Done. I've also dropped the 1.4/2.0 version nonsense.
    2. I need to update the 1.4alpha ones to work with the 2.0.38 kernel. While I am at it, I should update these patches to be as close to the current 2.0 patches as possible.
      Status: Done.

  2. Version 2.0a.2
    1. CoS lines got deleted from library routines! Add them back.
      Status: Done.

  3. Version 2.0a.3
    1. X interface - need to tab-chain the text input fields.
      Status: Done.
    2. X interface - possible memory leak needs investigating. This may be a bogus complaint from dmalloc.
      Status: Done (complaints were mostly bogus).
    3. X interface - gets confused when you make duplicate entries, then remove one of the duplicates. Rather than report repeated errors on stat, it should either remove the others, or silently ignore them.
      Status: Done.
    4. X interface - need to be able to specify numeric-only entries, so things don't get mixed up converting to names and back. A global button would be easiest to implement, but per-entry buttons would be more useful.
      Status: Done (with global button).
    5. Red Hat default font server setup isn't supporting one of the fonts used (16 point Helvetica). Come up with an alternative.
      Status: Done (switched to 14 point).
    6. TextField widget doesn't understand reverse video.
      Status: Done (sort of; specified colors used).
    7. Conversion bug can blank out drop value display in xnistnet.
      Status: Done.
    8. Don't apply ntohs to protocol numbers!
      Status: Done.

  4. Version 2.0a.4
    1. Still some sort of display/conversion bug in X user interface
      Status: Done.

  5. Version 2.0a.5
    1. The clock code for 2.2 kernels is ok, but not perfect. This needs some more investigation. With the emulator active, it seems to drift off about 10 seconds per day. (Actually, it is about 1 minijiffy slow per second, which leads me to suspect a systematic error on my part.)
      Status: Done (I think), for sure in 2.0.7.
    2. Old demo addons (linmunge, nistspy) need more updating to work effectively with new setup. In particular, need to fix things up so they work with CONFIG_MODVERSIONS.
      Status: Done.
    3. Several reports of demo addons (linmunge, nistspy) not working with some versions of Red Hat. This is the MODVERSIONS problem
      Status: Done.
    4. Port to Linux running on Alphas.
      Status: "Light snacking" code done.
    5. Port to Linux running on Suns.
      Status: "Light snacking" code done.
    6. The infamous overlapping fast_timer bug seems to have resurfaced. Symptoms: under extraordinarily high loads, the patient dies! (Continuing the medical analogies.)
      Status: Done.

  6. Version 2.0.6
    1. Red Hat must hate me. In particular, they don't include code for other platforms in their kernel tree, so the Alpha and Sparc patches fail. Separate them out from the others.
      Status: Done.

  7. Version 2.0.7
    1. 2.0 version should use more "principled" packet interception. In general, try to make the whole thing modular, so no kernel patching is required. For the fast timer, this can be done by switching to the real time clock (RTC) rather than the i8254 timer.
      Status: Done, half in 2.0a.5 and half in 2.0.7
    2. Problems with SMP systems in 2.2.xx - the SMP code uses the 8254 to calibrate the APIC clock, so we can't mess with the timer until after the system boots. Also, there's a system hang the "unexpected" timer interrupts can generate. This may be fixable by making them XT PICS(???)
      Status: Changed to RTC clock, which is a better fix anyway.
    3. One problem with the RTC is its tendency to "stall," which makes it lose interrupts. See how this can be improved.
      Status: Fixed to use the (non-fast) i8254 to restart and recalibrate.
    4. New Linux timer queueing code uses a sort of deferred radix sort, but has some peculiar ordering properties. The effect is that under certain circumstances, packets will be reordered, even with fixed delays. Change the sort to be stable under all circumstances.
      Status: Done.
    5. Port to 2.4.xx as well, now that it's out.
      Status: Done.
    6. Fix the install stuff to put the modules in a more standard place.
      Status: Done.

  8. Version 2.0.8
    1. A crucial line was missing from fast_sched.c! Fumble-fingered editing...
      Status: Done.

  9. Version 2.0.9
    1. Still didn't like the cleanup behavior in fast_sched.c, so fixed again.
      Status: Done.
    2. Linux 2.2.18 incorporated some 2.4 stuff, so adjust the version stuff.
      Status: Done.
    3. Speaking of versions, MODVERSIONS is a continuing pain, so just "noversion" the exported interfaces for now. They'll never change anyway...
      Status: Done.

  10. Version 2.0.10
    1. Is there a statistical bug in 2.0??? New round of tests came out sort of OK, but still with sigma elevated and rho depressed. (Sounds like a medical show.)
      Status: Done.
    2. Stats are definitely off for very small values or very large variances. This can be fixed by improving the table and making the conversion routines a little better behaved.
      Status: Done.
    3. Missing these mask combinations: host:.prot to any and vice versa. Might be nice to add.
      Status: Done.
    4. Lib doesn't parse igmp groups properly.
      Status: Done.
    5. Don't use getservbyport() on protocols other than tcp and udp. Ideal would be to use the standard naming scheme for icmp and the like.
      Status: Done.
    6. Other protocols need fleshing out and testing. In particular, ipip tunnels need to handle tunneled IP addresses.
      Status: Done.
    7. Do detailed investigation of all locking and interrupt level handling. With certain Ethernet adapters, there are complaints about things like transmitter access conflicts and frees on the wrong hard irq, which the right games with flags might fix.
      Status: Apparently fixed, though in "improper" fashion...
    8. Thorough cleanout of redundant and unused code. Reduce size and improve performance. In particular, table lookup can be speeded up considerably with just a little work.
      Status: Done, mostly. Redid "fingers" for recently used table entries, and removed the unused statistical "corrections" from the code in the kernel.
    9. New widget updates are a little slow. Try to speed up.
      Status: Partly fixed in 2.0.7, couldn't find much more worth doing.
    10. Give cnistnet/library code the ability to dump current settings.
      Status: Done.

  11. Planned for Version 2.0.11
    1. Documentation needs updating.
      Status: Partly done in 2.0.7, rest planned for 2.0.11
    2. The "other architecture" code wasn't updated for 2.0.7. See what can be done with it.
      Status: Planned.

  12. Currently on hold
    1. Add a web interface to the emulation tool. Even a simple cgi script that calls cnistnet would be better than nothing. I had a primitive version of this long ago, but it hasn't been kept up-to-date. More useful, of course, would be something like a Java applet that could do continuous status updates.
      Status: There is an old version of this somewhere. Try to resuscitate.
    2. Add hooks in the bridge code, to make a layer 2 network emulator.
      Status: On hold

Comments? Questions? Let us know at
[ NIST Net Home Page] [Installing NIST Net] [Using NIST Net] [NIST Net FAQ]