<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE report PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Status Report//EN"
                        "http://www.FreeBSD.org/XML/www/share/sgml/statusreport.dtd">

<!-- $FreeBSD$ -->

<report>
  <date>
    <month>September</month>

    <year>2001</year>
  </date>

  <cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS"
  version="1.0">
    <cvs:keyword name="freebsd">$FreeBSD$</cvs:keyword>
  </cvs:keywords>

  <section>
    <title>Introduction</title>

    <p>In the month of September, the FreeBSD Project continued its
    investment in long-term projects, including continuing work on a
    fine-grained SMP implementation, support for Kernel Schedulable
    Entities (KSE) supporting highly efficient threading, and
    broadening support for modern hardware platforms, including Intel's
    new IA64 architecture, UltraSparc, and PowerPC. Additional focus
    was placed on the release process, including work on the release
    notes infrastructure, support for DVD releases, and work on a
    binary updating tool.</p>

    <p>Due to the delay in getting the September report out the door,
    the November status report will also cover October. During the
    month of November, we look forward to BSDCon Europe, the first such
    event outside the continental United States. The USENIX conference
    paper submission deadlines are also in November, and FreeBSD users
    and developers are encouraged to submit to the general and FREENIX
    tracks. Please see www.usenix.org for more information.</p>
  </section>

  <project>
    <title>PRFW</title>

    <contact>
      <person>
        <name>
          <given>Evan</given>

          <common>Sarmiento</common>
        </name>

        <email>evms@csa.bu.edu</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freesoftware.fsf.org/jailuser/" />
    </links>

    <body>
      <p>PRFW provides hooks in the FreeBSD kernel, allowing users to
      insert their own checks in system calls and various kernel
      functions. PRFW is nearing 0.5, which will incorporate numerous
      structural changes such as, much faster per-process hooks, kernel
      function hooks, plus, a new way of adding hooks which would
      enable users to reference hooks by a string.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD libh Project</title>

    <contact>
      <person>
        <name>
          <given>Alexander</given>

          <common>Langer</common>
        </name>

        <email>alex@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <given>Nathan</given>

          <common>Ahlstrom</common>
        </name>

        <email>nra@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/projects/libh.html" />
    </links>

    <body>
      <p>The build process is now creating four different versions of
      the libs, which include support for TVision, Qt, both or none. I
      created some first packages from existing ports and installed
      those libh packages on my system only using libh's tools,
      including registering all the files in the package database,
      recording their checksums etc. Patches to the disk editor have
      been submitted, which include functionality to write the changes
      in the fdisk part and initial support for a disk label editor.
      We'll soon have a new committer.</p>
    </body>
  </project>

  <project>
    <title>RELNOTESng</title>

    <contact>
      <person>
        <name>
          <given>Bruce A.</given>

          <common>Mah</common>
        </name>

        <email>bmah@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.FreeBSD.org/~bmah/relnotes/" />
    </links>

    <body>
      <p>FreeBSD 4.4-RELEASE was the first release of FreeBSD with its
      new-style release documentation. Both English and Japanese
      versions of these documents were created. Regularly-built
      snapshots of -CURRENT and 4-STABLE release documentation are now
      available on the Web site, but they require a little HTML
      infrastructure to make them viewer-friendly. I intend to continue
      updating my snapshot site at the URL above, at least for a little
      while.</p>

      <p>Call for help: The hardware compatibility lists need to be
      updated in the areas of the Alpha architecture, USB devices, and
      PCCARD devices. I'm looking for volunteers to help; interested
      parties should contact me at the email address above. DocBook
      experience is not required; familiarity with the hardware above
      would be very helpful.</p>
    </body>
  </project>

  <project>
    <title>Fibre Channel Support</title>

    <contact>
      <person>
        <name>
          <given>Matthew</given>

          <common>Jacob</common>
        </name>

        <email>mjacob@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.feral.com/isp.html" />
    </links>

    <body>
      <p>Bug fixing and move to -STABLE of 2Gb support.</p>
    </body>
  </project>

  <project>
    <title>Intel Gigabit Ethernet</title>

    <contact>
      <person>
        <name>
          <given>Matthew</given>

          <common>Jacob</common>
        </name>

        <email>mjacob@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Quite a lot of cleanup of this driver. Bug fixes and some
      performance enhancements. However, this driver is likely to be
      removed shortly and replaced by one from Intel itself.</p>
    </body>
  </project>

  <project>
    <title>TIRPC</title>

    <contact>
      <person>
        <name>
          <given>Martin</given>

          <common>Blapp</common>
        </name>

        <email>mb@imp.ch</email>
      </person>
    </contact>

    <links>
      <url href="http://www.attic.ch/tirpc.html" />
    </links>

    <body>
      <p>As you know, in march 2001 the version 2.3 of TIRPC has been
      committed together with many userland changes. Alfred Perlstein
      and Ian Dowse have helped me a lot with the porting effort and if
      I had problems with understanding the code.</p>

      <p>Most bugs are now fixed, some remaining areas to fix are
      secure RPC (keyserv) and unix domain support. I've patches for
      these area available. Ian Dowse fixed a lot of outstanding bugs
      in the rpcbind binary itself. Thank you Ian !</p>

      <p>The plan is now to migrate slowly towards TIRPC 2.8, which is
      threadsafe for the server- and clientside. One first patch I've
      made available on my URL. TIRPC 2.8 is licensed under the "Sun
      Standards License Version 1.0" and we have to add some license
      lines and the license itself to all modified files.</p>

      <p>A example is timed_clnt_create.diff which can be found on the
      homepage.</p>
    </body>
  </project>

  <project>
    <title>binup</title>

    <contact>
      <person>
        <name>
          <given>Eric</given>

          <common>Melville</common>
        </name>

        <email>eric@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <given>Murray</given>

          <common>Stokely</common>
        </name>

        <email>murray@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/projects/updater.html" />
    </links>

    <body>
      <p>The project has gained a mailing list,
      freebsd-binup@FreeBSD.org - and the source tree has been moved
      into the projects/ directory in the FreeBSD CVS repository.
      Current work is focusing on extending the FreeBSD package
      framework, and the client library should be rewritten and
      completed by the end of the year.</p>

      <p>TODO: make the projects/ hierarchy into a cvsup distribution
      and add it to cvs-all. Then update distrib.self.</p>
    </body>
  </project>

  <project>
    <title>Porting ppp to hurd &amp; linux</title>

    <contact>
      <person>
        <name>
          <given>Brian</given>

          <common>Somers</common>
        </name>

        <email>brian@freebsd-services.com</email>
      </person>
    </contact>

    <body>
      <p>Status is unchanged since last month. Patches have been
      submitted to get ppp working under HURD, and mostly under Linux.
      There are GPL copyright problems that need to be addressed. Many
      conflicts are expected after the commit of IPv6 support in
      ppp.</p>
    </body>
  </project>

  <project>
    <title>PPP IPv6 Support</title>

    <contact>
      <person>
        <name>
          <given>Brian</given>

          <common>Somers</common>
        </name>

        <email>brian@freebsd-services.com</email>
      </person>
    </contact>

    <body>
      <p>The software has been committed to -current and seems
      functional. Outstanding issues include dealing with IPV6CP events
      (linkup &amp; linkdown scripts) and allocating site-local and
      global addresses (currently, ``iface add'' is the only way to
      actually use the link). A bug exists in -stable (running the
      not-yet-MFC'd ppp code) whereby routing entries are disappearing
      after a time (around 12 or 24 hours). No further details are yet
      available.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD DVD generation</title>

    <contact>
      <person>
        <name>
          <given>Brian</given>

          <common>Somers</common>
        </name>

        <email>brian@freebsd-services.com</email>
      </person>
    </contact>

    <body>
      <p>A two disc set has been mastered and sent for pressing. There
      are a few surprises with this release - details will be given in
      the official announcement (at BSDConEurope).</p>
    </body>
  </project>

  <project>
    <title>Netgraph ATM</title>

    <contact>
      <person>
        <name>
          <given>Harti</given>

          <common>Brandt</common>
        </name>

        <email>brandt@fokus.gmd.de</email>
      </person>
    </contact>

    <body>
      <p>ATM-Forum LAN-emulation version 2.0 without support for QoS
      has been implemented and tested. The ILMI daemon has been
      modularized into a general mini-SNMP daemon, an ILMI module and a
      not yet finished IPOA (IP over ATM) module.</p>
    </body>
  </project>

  <project>
    <title>jpman project</title>

    <contact>
      <person>
        <email>man-jp@jp.FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.jp.FreeBSD.org/man-jp/" />
    </links>

    <body>
      <p>We have finished updating section [125678] manpages to
      4.4-RELEASE based, 1 week after 4.4-RELEASE is announced. To
      finish this update, OKAZAKI Tetsurou has imported Ex/Rv macro
      support on ja-groff-1.17.2_1. SUZUKI Koichi did most Ex/Rv
      changes on Japanese manpages. He also find some issues of these
      macro usage on some original manpages and filed a PR. For
      post-4.4-RELEASE, now we target 4.5-RELEASE. Section 3 update is
      also in progress.</p>
    </body>
  </project>

  <project>
    <title>New Mount(2) API</title>

    <contact>
      <person>
        <name>
          <given>Poul-Henning</given>

          <common>Kamp</common>
        </name>

        <email>phk@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <given>Maxime</given>

          <common>Henrion</common>
        </name>

        <email>mux@qualys.com</email>
      </person>
    </contact>

    <body>
      <p>We've made some good progress now, and the new nmount(2)
      syscall is nearly finished. There is still some work to do to
      have a working kernel_mount() and to convert all filesystems to
      use this new API for their VFS_MOUNT() functions.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD/sparc64 port</title>

    <contact>
      <person>
        <name>
          <given>Jake</given>

          <common>Burkholder</common>
        </name>

        <email>jake@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <given>Thomas</given>

          <common>Moestl</common>
        </name>

        <email>tmm@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>I am pleased to announce that as of 1 AM Friday October 19th,
      the sparc64 port boots to single user mode. A few binaries from
      the base system have been built and verified to work properly.
      Much of this work is still in review for commit, but will be
      integrated into the cvs tree as soon as possible. EBus support
      has been ported from NetBSD, and ISA support has been written.
      The PCI host bridge code has stabilized, and busdma seems to work
      correctly now. The sio driver has had EBus support added, and the
      ATA driver has been modified so that it works on big-endian
      systems and uses the busdma API. With these changes, a root file
      system can now be successfully mounted from ATA disks on sparc64,
      even in DMA mode. The gem driver, which supports Sun GEM and ERI
      and Apple GMAC and GMAC2 ethernet adaptor, has been ported from
      NetBSD but has not yet had sufficient testing.</p>
    </body>
  </project>

  <project>
    <title>SYN cache implementation for FreeBSD</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>No new status to report, the code is still waiting to be
      committed. It is likely that this code will be expanded to
      include syn cookies as a further fallback mechanism.</p>
    </body>
  </project>

  <project>
    <title>Compressed TCP state</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Development on this project has been slowed, pending the
      commit of the syncache code, as this builds on part of that
      work.</p>
    </body>
  </project>

  <project>
    <title>Network SMP locking</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Not much progress has been made this month, with other
      projects occupying most of my time. However, reviewing all the
      code and data structures had a side benefit; a hash table for
      inet addresses has been added. This will significantly speed up
      interface address lookups in the case where there are a larger
      number of interface aliases.</p>
    </body>
  </project>

  <project>
    <title>Multiple console support</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Currently, a single device may act as a console at any time,
      which requires the user to choose the console device at boot
      time. With the upcoming network console support, it is desirable
      to allow multiple console devices which behave identically, and
      to alter consoles while the kernel is running.</p>

      <p>The code is completed, and needs some final polishing to clean
      up the rough edges. Console output can be sent to both syscons
      and sio, (as well as the network) and when in ddb, input can be
      taken from any input source. A small control program allows
      adding and removing consoles on the fly.</p>
    </body>
  </project>

  <project>
    <title>Network console</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>This project's goal is to add low level network functionality
      to FreeBSD. The initial target is to make a network console
      available for remote debugging with ddb or gdb. A secondary
      target is to utilize the code to perform network crash dumps. The
      design assumes that the network card and driver are working, but
      does not rely on other parts of the kernel.</p>

      <p>Initial development has been fairly rapid, and a minimal
      TCP/IP stack has been written. It is currently possible to telnet
      to a machine which is at the ddb&gt; prompt and interact with the
      debugger.</p>
    </body>
  </project>

  <project>
    <title>Network device nodes</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Network devices now support aliases in the form of /dev/netN,
      where N is the interface index. Devices may be wired down to a
      specific index number by entries in /boot/device.hints of
      either:</p>

      <p>hint.net.&lt;ifindex&gt;.dev="devname"
      hint.net.&lt;ifindex&gt;.ether="ethernet address"</p>

      <p>Additionally, ifconfig has been updated so that it will accept
      the alias name when configuring a device.</p>
    </body>
  </project>

  <project>
    <title>Intel Gigabit driver</title>

    <contact>
      <person>
        <name>
          <given>Jonathan</given>

          <common>Lemon</common>
        </name>

        <email>jlemon@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>The gx driver has finally been committed to the tree. The
      driver provides support for the Intel PRO/1000 cards, both fiber
      and copper variants. The driver supports VLAN tagging and TCP/IP
      checksum offload.</p>
    </body>
  </project>

  <project>
    <title>KSE</title>

    <contact>
      <person>
        <email>julian@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/~jasone/kse/" />

      <url href="http://www.FreeBSD.org/~julian" />
    </links>

    <body>
      <p>In the last month, not a lot has happened other than settling
      in of the big August commit. Largely due to me having a sudden
      increased workload at work, and a need for increased time to be
      spent elsewhere. However some design work has proceeded. The API
      has firmed up somewhat and several people have been reading
      through what has been done already in order to be able to help in
      the next phase.</p>

      <p>Milestone 3 will be to have the ability to generate and remove
      multiple threads/KSEs per process. Milestone 3 will NOT require
      that doing so will be safe. (especially in SMP systems), i.e.
      locking issues will not be fully addressed, so while some testing
      will be possible, it will not be possible to actually run in this
      mode with any load.</p>

      <p>This will require allocators and destructors for the new
      structures. Creation of the syscalls. Generation of an accurate
      written API for the userland crew. Writing of the upcall launch
      code. Production of a userland test program (not a full thread
      scheduler). Resolution of some of the more glaring
      incompatibilities (e.g. the scheduler) in a backwards compatible
      manner. (i.e. if there are no multi threaded processes on a
      system it should behave the same as now (and be as
      reliable)).</p>

      <p>Criteria for knowing when we have reached Milestone 3 is the
      ability for a simple process on an unloaded system to perform a
      series of blocking syscalls reliably. e.g. open 2 sockets, and
      send data on one, after having done a read on another, and then
      'respond' in like manner..</p>
    </body>
  </project>

  <project>
    <title>PowerPC Port</title>

    <contact>
      <person>
        <name>
          <given>Benno</given>

          <common>Rice</common>
        </name>

        <email>benno@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>There have been a few major successes in the PowerPC port this
      month. Mark Peek has succeeded in getting the FreeBSD/PowerPC
      kernel cross compiled on FreeBSD and booting under the PSIM
      simulator (now in /usr/ports/emulators/psim-freebsd). I have
      succeeded in getting the FreeBSD loader to load and execute
      kernels using the OpenFirmware found on Apple Macintosh hardware.
      Mark is now working on completing some of the startup and pmap
      code, while I am taking advantage of the simulator to work on
      some interrupt and device issues.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD Java Project</title>

    <contact>
      <person>
        <name>
          <given>Greg</given>

          <common>Lewis</common>
        </name>

        <email>glewis@eyesbeyond.com</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/java/">Official FreeBSD Java
      Project site.</url>
    </links>

    <body>
      <p>The project has moved forward on JDK 1.3.1 development this
      month, with the release of two more patchsets. The team is
      reasonably confident that the latest patchset is a stable release
      of the core JDK 1.3.1 tools and classes, when the default "green"
      threads subsystem is used. This is mostly thanks to hard work by
      Fuyuhiko Maruyama to stabilize and fix the code. Bill Huey has
      also been progressing with his work on the "native" threads
      subsystem, although this hasn't yet reached the stability of
      "green" threads. Another (arguably the) major highlight of the
      latest patchset was the integration of NetBSD support by Scott
      Bartram and Alistair Crooks (the latter of NetBSD packages fame).
      Hopefully OpenBSD support will follow, making it truly a united
      BSD Java Project.</p>
    </body>
  </project>

  <project>
    <title>Improving FreeBSD startup scripts</title>

    <contact>
      <person>
        <name>
          <given>Doug</given>

          <common>Barton</common>
        </name>

        <email>DougB@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <given>Gordon</given>

          <common>Tetlow</common>
        </name>

        <email>gordont@gnf.org</email>
      </person>
    </contact>

    <links>
      <url href="http://groups.yahoo.com/group/FreeBSD-rc/">Improving
      FreeBSD startup scripts</url>

      <url href="http://www.cs.rmit.edu.au/~lukem/bibliography.html">
      Luke Mewburn's papers</url>

      <url href="http://www.netbsd.org/Documentation/rc/">NetBSD
      Initialization and Services Control</url>
    </links>

    <body>
      <p>This group is for discussion about the startup scripts in
      FreeBSD, primarily the scripts in /etc/rc*. Primary focus will be
      on improvements and importation of NetBSD's excellent work on
      this topic.</p>

      <p>Alright folks, I finally got off my butt last night and put
      together a roadmap for the migration to the new rc.d init scripts
      that were imported from NetBSD a long time ago and just sat in
      the tree.</p>

      <p>M1 (Patch included) 
      <br />

      Setup infrastructure 
      <br />

      Make rcorder compile 
      <br />

      Hook rc.subr into the distribution (and mergemaster) 
      <br />

      Hook rcorder into the world 
      <br />

      Add toggle in rc.conf to switch between rc_ng and current boot
      scripts</p>

      <p>M2 
      <br />

      Get FreeBSD to boot with the new boot scripts 
      <br />

      Rewrite the /etc/rc.d scripts to work with FreeBSD</p>

      <p>M3 
      <br />

      Add some FreeBSD specific support into rc.subr</p>

      <p>M4 
      <br />

      Add true dependency checking to the infrastructure so that
      starting nfsd will start mountd and rpcbind 
      <br />

      add support into rc.subr 
      <br />

      Add dependencies into rc.d scripts</p>

      <p>I'd like a couple of people to take a look at this and then
      I'll submit a pr for it if there aren't too many objections. I'm
      expecting M2 to run into quite a bikeshed, but hey, I got my nice
      shiny asbestos back from the cleaners.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD C99/POSIX Conformance Project</title>

    <contact>
      <person>
        <name>
          <given>Mike</given>

          <common>Barcroft</common>
        </name>

        <email>mike@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <common>FreeBSD-Standards Mailing List</common>
        </name>

        <email>freebsd-standards@bostonradio.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.FreeBSD.org/~mike/c99/" />
    </links>

    <body>
      <p>The FreeBSD C99/POSIX Conformance Project aims to implement
      all requirements of the C99 Standard and the latest 1003.1-200x
      POSIX draft (currently Draft 7). In cases where aspects of the
      standard cannot be followed, those aspects will be documented in
      the c99(7) or posix(7) manuals. It is also an aim of this project
      to implement regression tests to ensure correctness whenever
      possible.</p>

      <p>Patches that implement the &lt;stdint.h&gt; and
      &lt;inttypes.h&gt; headers, and modifications to printf(3) have
      been developed and will be committed shortly. They will allow us
      to use some of the new types C99 introduces, such as intmax_t and
      the printf(3) conversion specifier "%j".</p>
    </body>
  </project>

  <project>
    <title>SMPng Status Report</title>

    <contact>
      <person>
        <name>
          <given>John</given>

          <common>Baldwin</common>
        </name>

        <email>jhb@FreeBSD.org</email>
      </person>

      <person>
        <email>smp@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/~jasone/smp/" />
    </links>

    <body>
      <p>Some progress has been made on the proc locking this month.
      Also, a new LOCK_DEBUG macro was defined to allow some locking
      infrastructure to be more efficient. Kernels now only include the
      filenames of files calling mutex, sx, or semaphore lock
      operations if the filenames are needed. Also, mutex operations
      are no longer inlined if any debugging options are turned on. The
      ucred API was also overhauled to be more locking friendly. A
      group has also started investigating the tty subsystem to design
      and possibly implement a locking strategy.</p>
    </body>
  </project>
</report>

