<?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>December 2001 - January 2002</month>

    <year></year> <!-- XXX -->
  </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>This bi-monthly report covers development activities on the FreeBSD
      Project for December 2001 and January 2002.  A variety of
      accomplishments have been made over the last couple of months,
      including strong progress relating to the KSE project, which
      brings Scheduler Activations to the FreeBSD kernel, as well
      as less visible infrastructure projects such as improvements
      to the mount interface, PAM integration work, and translation
      efforts.  Shortly following the deadline for this status
      report, the BSD Conference and FreeBSD Developer Summit were
      held, and will be covered in the next bi-monthly report at
      the end of March.  Plans are already under way for the USENIX
      Annual Technical Conference in Monterey, CA, later this year,
      and all and sundry are encouraged to attend to get further
      insight in FreeBSD development.</p>

      <p>Robert Watson</p>
  </section>


  <project>
    <title>USB stack maintenance</title>

    <contact>
      <person>
	<name>
	  <given>Josef</given>

	  <common>Karthauser</common>
	</name>

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

    <body>
      <p>I've been working to integrate recent improvements in the
      NetBSD usb stack to FreeBSD -current. Both NetBSD and OpenBSD
      currently share the same source, as FreeBSD did too at once point
      before it diverged. The goal is to get back to that state, but
      there are many improvements on both sides that need to be merged
      before this is complete.</p>

      <p>I'm currently looking for someone to help maintain usb in
      -stable. Please let me know if you're interested.</p>
    </body>
  </project>

  <project>
    <title>TrustedBSD ACLs</title>

    <contact>
      <person>
	<name>
	  <given>Chris</given>

	  <common>Faulhaber</common>
	</name>

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

    <links>
      <url href="http://www.fxp.org/jedgar/ACL/">
      </url>
    </links>

    <body>
      <p>Patches for cp(1), ls(1), and mv(1) to bring in
      POSIX.1e-compliant Access Control List support have been updated
      to patch against builds of -CURRENT. Other system utilities are
      currently being evaluated for ACL support including install(1)
      (patch available) and mtree(8). Work is in progress to verify the
      native getfacl(1), setfacl(1), and other utilities build and work
      correctly on other ACL-enabled systems (e.g. Linux w/ACL patches)
      and to help verify POSIX-compliance of the continuing TrustedBSD
      work along with other systems. Finally, experimental Perl and PHP
      modules are available allowing limited access to native ACLs for
      languages other than C.</p>
    </body>
  </project>

  <project>
    <title>Bluetooth stack for FreeBSD (Netgraph
    implementation)</title>

    <contact>
      <person>
	<name>
	  <given>Maksim</given>

	  <common>Yevmenkin</common>
	</name>

	<email>m_evmenkin@yahoo.com</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>The project is making progress. The goal is to design and
      implement Host Controller Interface (HCI) and Link Layer Control
      and Adaptation Protocol (L2CAP) layers using Netgraph framework.
      More distant goal is to write support for Service Discovery
      Protocol (SDP) and RFCOMM protocol (Serial port emulation over
      Bluetooth link) . All information was obtained from Bluetooth
      Specification Book v1.1.</p>

      <p>Project status: In progress. 1) Design: mostly complete, there
      are some minor issues to be resolved. 2) Implementation: Kernel -
      HCI and L2CAP Netgraph nodes have been implemented; 3) User space
      (API, library, utilities) - in progress. 4) Testing: In progress.
      I do not have real Bluetooth hardware at this point, so i wrote
      some tools that allow me to test the code. Some of them will be
      used as foundation for future user space utilities.</p>

      <p>Issues: 1) Bluetooth hardware; I do not have real Bluetooth
      hardware, so if people can donate hardware/specs it would be
      great. I promise to write all required drivers and make them
      available. I also promise to return hardware/specs on first
      request. 2) Project name; I would like to see the name that
      reflects the following: it is a Bluetooth stack, implementation
      is for FreeBSD and implementation is based on Netgraph
      framework</p>
    </body>
  </project>

  <project>
    <title>"GEOM" - generalized block storage manipulation</title>

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

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

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

    <links>
      <url href="http://www.FreeBSD.org/~phk/Geom/">Old concept paper
      here.</url>
    </links>

    <body>
      <p>This project is now finally underway, thanks to DARPA and NAI
      getting a sponsorship lined up. The infrastructure code and data
      structures are currently taking form inside a userland simulation
      harness. Basic MBR and BSD methods have been written and device
      attach/taste/dettach algorithms been implemented and
      validated.</p>
    </body>
  </project>

  <project>
    <title>jp.FreeBSD.org daily SNAPSHOTs project</title>

    <contact>
      <person>
	<name>
	  <given>Makoto</given>

	  <common>Matsushita</common>
	</name>

	<email>matusita@jp.FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://snapshots.jp.FreeBSD.org/">Project
      Webpage</url>

      <url href="http://www.jp.FreeBSD.org/snapshots/notes.html">
      SNAPSHOTs Notes (in Japanese)</url>
    </links>

    <body>
      <p>I've update OS of buildboxes to the latest FreeBSD 5-current
      and 4-stable. Everything goes fine. From January 2002, I've
      started a webzine, SNAPSHOTS Notes (only Japanese version is
      available). SNAPSHOTs Notes pickups tips and information
      especially for the people living with FreeBSD 5-current/4-stable.
      Article or idea for SNAPSHOTs notes are always welcome (you don't
      need to write in Japanese :-).</p>
    </body>
  </project>

  <project>
    <title>TrustedBSD Audit</title>

    <contact>
      <person>
	<name>
	  <given>trustedbsd-discuss</given>
	</name>

	<email>trustedbsd-discuss@TrustedBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.TrustedBSD.org/">TrustedBSD project
      website</url>
    </links>

    <body>
      <p>Robert Watson created the TrustedBSD audit perforce tree,
      which is a branch from the TrustedBSD base tree, in order to
      start pushing development efforts towards using a revision
      control system. Andrew Reiter started to merge in some framework
      related code for generation of audit records, enqueueing writes,
      and handling data writing. There is a great deal of work to be
      done with updates and discussion on the
      trustedbsd-discuss@TrustedBSD.org mailing list.</p>
    </body>
  </project>

  <project>
    <title>KSE Status Report</title>

    <contact>
      <person>
	<name>
	  <given>Julian</given>

	  <common>Elischer</common>
	</name>

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

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

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

    <body>
      <p>The KSE project (an attempt to support scalable thread in
      FreeBSD using kernel support), has reached What I call "milestone
      3". At this milestone it is possible to run a multithreaded
      program on a single CPU but with full concurrency of threads on
      that CPU. In other words the kernel supports the fact that one
      thread can block by allowing another thread to run in its place.
      A test program that demonstrates this is available at the above
      website.</p>

      <p>Milestone 4 will be to allow threads from the same program to
      run on multiple CPUs but may require more input from the SMPng
      project. I am at the moment (Feb 6) getting ready to commit a
      first set of changes for milestone 3, that have no real effect
      but serve to drastically reduce the complexity of the remaining
      diff so that others can read it more easily. After changes to
      libkvm to support this diff have been added it should be possible
      to run 'ps' and look at multiple threads in a treaded process. I
      will be demonstrating KSE/M3 at BSDcon.</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>

    <links>
      <url
      href="ftp://ftp.fokus.gmd.de/pub/cc/cats/usr/harti/ngatm/" />
    </links>

    <body>
      <p>The Netgraph ATM package has been split into a number of
      smaller packages: bsnmp is a general-purpose SNMP daemon with
      support for loadable modules. Two modules come with it: one
      implementing the standard network-interface and IP related parts
      of MIB-2 and one for interfacing other modules to the NetGraph
      sub-system. ngatmbase contains the drivers for the ATM hardware,
      the ng_atm netgraph type and a few test tools. This package
      allows one to use ATM PVCs. It should be possible, for example,
      to do PPP over ATM with this package. Both bsnmp and ngatmbase
      are available in version 1.0 under the link above. Two other
      modules will be released in February: ngatmsig containing the
      UNI-4.0 signalling stack as netgraph nodes and ngatmip containing
      CLIP and LANE-2.0.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD C99 &amp; 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>standards@FreeBSD.org</email>
      </person>
    </contact>

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

    <body>
      <p>A significant amount of progress was made in December and
      January, particularly in the area of utility conformance. Several
      utilities were updated to conform to SUSv3, they include: at(1),
      mailx(1), pwd(1), split(1), and uudecode(1). Several patches have
      been submitted to increase conformance in other utilities, they
      include: fold(1), patch(1), m4(1), nice(1), pr(1), renice(1),
      wc(1), and xargs(1). These are in the process of being reviewed
      and committed. Two new utilities have been written, specifically
      pathchk(1) and tabs(1). These are also being reviewed and will be
      committed shortly.</p>

      <p>A patch which implements most of the requirements of scanf(3) is
      being reviewed and is expected to be committed shortly. This will
      allow us to MFC a number of new functions and headers.
      Additionally, work has started on wide string and complex number
      support.</p>
    </body>
  </project>

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

    <contact>
      <person>
	<name>
	  <given>Kazuo</given>

	  <common>Horikawa</common>
	</name>

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

    <links>
      <url href="http://www.jp.FreeBSD.org/man-jp/">jpman project (in
      Japanese)</url>
    </links>

    <body>
      <p>For 4.5-RELEASE, port ja-man-doc-4.5.tgz is in sync with base
      system except for OpenSSH pages (OpenSSH 2.3 based instead of
      2.9) and perl5 pages (jpman project do not maintain). Section 3
      updating has 55% finished.</p>

      <p>OKAZAKI Tetsurou has incorporated changes on base system's
      groff into port japanese/groff. MORI Kouji has fixed two bugs of
      port japanese/man.</p>
    </body>
  </project>

  <project>
    <title>KAME</title>

    <contact>
      <person>
	<name>
	  <given>KAME core team</given>

	  <common>
	  </common>
	</name>

	<email>core@kame.net</email>

	<name>
	  <given>KAME Users Mailing List</given>

	  <common>
	  </common>
	</name>

	<email>snap-users@kame.net</email>
      </person>
    </contact>

    <links>
      <url href="http://www.kame.net/" />
    </links>

    <body>
      <p>The KAME project is currently focusing on the scoped
      addressing architecture, the advanced API implementation, NATPT
      and the mobile ipv6 implementation. Though these stuffs are not
      stable enough to be merge into the FreeBSD tree, you can get and
      try them from the above URL.</p>
    </body>
  </project>

  <project>
    <title>FreeBSD in Bulgarian</title>

    <contact>
      <person>
	<name>
	  <given>Peter</given>

	  <common>Pentchev</common>
	</name>

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

    <links>
      <url href="http://www.FreeBSD-bg.ringlet.net/" />

      <url href="http://people.FreeBSD.org/~roam/bg/" />
    </links>

    <body>
      <p>The FreeBSD in Bulgarian project aims to bring a more
      comfortable working environment to Bulgarian users of the FreeBSD
      OS. This includes, but is not limited to, font, keymap and locale
      support, translation of the FreeBSD documentation into Bulgarian,
      local user groups and various forms of on-line help channels and
      discussion forums to help Bulgarians adopt and use FreeBSD.</p>

      <p>A guide for using FreeBSD with Bulgarian settings has been put
      up on the project's website. The CVS repository will be made
      public shortly, linked to on the URL's above.</p>

      <p>An independent project for making FreeBSD easier to use by
      Bulgarians has appeared, <a
      href="http://www.FreeBSD-bg.org/">http://www.FreeBSD-bg.org/</a>.
      It also hosts a mailing list for discussions of FreeBSD in
      Bulgarian, <a href="mailto:stable@FreeBSD-bg.org">
      stable@FreeBSD-bg.org</a>. For more information about the mailing
      list, send an e-mail with "help" in the message body to 
      <a href="mailto:majordomo@FreeBSD-bg.org">
      majordomo@FreeBSD-bg.org</a>.</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" />
    </links>

    <body>
      <p>The past two months have been an exciting time in the FreeBSD
      Java Project with the signing of a license between the FreeBSD
      Foundation and Sun allowing us access to updated JDK source code
      and the Java Compatibility Kit (JCK). This license will also
      allow the project to release a binary version of both the JDK and
      JRE once JCK testing is complete. Work on this testing is under
      way with the project hopeful of being able to make a binary
      release in the not too distant future.</p>

      <p>In lieu of the binary release which was hoped for with FreeBSD
      4.5 the project will release an updated source patchset this
      weekend. This patchset will feature further work on the FreeBSD
      "native" threads subsystem from Bill Huey. Also, thanks to hard
      work by Joe Kelsey and Fuyuhiko Maruyama, the patchset will for
      the first time feature a working Java browser plugin!</p>
    </body>
  </project>

  <project>
    <title>Revised {mode,log}page support for camcontrol</title>

    <contact>
      <person>
	<name>
	  <given>Kelly</given>

	  <common>Yancey</common>
	</name>

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

    <body>
      <p>Extending camcontrol's page definition file format to include
      both modepage and logpage definitions; adding support to
      camcontrol to query and reset log page parameters. Consideration
      is being made to possibly include support for diagnostic and
      vital product data pages, but that is outside the current project
      scope. New page definition file format includes capability to
      conditionally include page definitions based on SCSI INQUIRY
      results allowing vendor-specific pages to be described also.
      Approximately 90% complete.</p>
    </body>
  </project>

  <project>
    <title>Pluggable Authentication Modules</title>

    <contact>
      <person>
	<name>
	  <given>Mark</given>

	  <common>Murray</common>
	</name>

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

      <person>
	<name>
	  <given>Dag-Erling</given>

	  <common>Sm&#248;rgrav</common>
	</name>

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

    <links>
      <url href="http://openpam.sourceforge.net/">OpenPAM</url>
    </links>

    <body>
      <p>OpenPAM, a new library intended to replace Linux-PAM in
      FreeBSD, has been written and is undergoing integration testing.
      It is available for download from the URL listed above.</p>

      <p>In addition to this, a couple of new modules have been written
      (pam_lastlog(8), pam_login_access(8)), and the pam_unix(8) module
      has been extended to perform most of the tasks normally performed
      by login(1), which is now fully PAMified.</p>

      <p>The PAM FDP article has been put on hold until OpenPAM
      replaces Linux-PAM in CVS, to avoid wasting effort on soon-to-be
      obsolete documentation.</p>
    </body>
  </project>

  <project>
    <title>TrustedBSD MAC Implementation</title>

    <contact>
      <person>
	<name>
	  <given>Robert</given>

	  <common>Watson</common>
	</name>

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

    <links>
      <url href="http://www.TrustedBSD.org/">TrustedBSD Project Web
      Site</url>
    </links>

    <body>
      <p>Substantial progress has been made towards a working MAC
      implementation. The focus over the last two months has been
      moving from a hard-coded series of MAC policies to a more
      flexible implementation. A pluggable policy framework has been
      created (and is still under development), supporting Biba, MLS,
      TE, a "BSD Extended" model, and a sample mac_none module. Some
      modules must be compiled in or loaded prior to boot; others may
      be introduced at run-time. Support for networking has improved,
      with improved handling of IP fragmentation in IPv4, support for
      various pseudo-interfaces such as if_tun and if_tap, improved
      integration into userland, NFS-related fixes, moving the VFS
      enforcement out of individual filesystems, support for a
      'multilevel' mount flag, support for explicit labeling in procfs
      and devfs, addition of an 'extattrctl lsattr' argument to list
      EAs on a filesystem, support for label ranges in the Biba and MAC
      policies, and much more.</p>

      <p>Targets for the next two months include more universal
      enforcement of VFS-related calls, improved support for
      alternative ABIs, improved flexibility of in-kernel subject and
      object labels, support for IPv6 and IPsec, and improved support
      for NFS serving.</p>

      <p>Development continues in the FreeBSD Perforce repository,
      which may be accessed using cvsup.</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@sneakerz.org</email>
      </person>
    </contact>

    <body>
      <p>Now that the patch has been mailed to the
      freebsd-arch@FreeBSD.org mailing list, and that there were no
      objections, the commit will happen soon. Poul is currently
      testing it in his own tree. After it has been committed, it will
      be time to modify the filesystems in the tree to use VFS_NMOUNT
      instead of VFS_MOUNT. Mount(8) will also need some modifications.
      Some new manpages -- nmount(2) and kernel_vmount(9) -- are being
      created in the meantime.</p>
    </body>
  </project>


  <project>
    <title>SMPng</title>
  
    <contact>
      <person>
	<name>
	<given>smp@FreeBSD.org</given>
	</name>
  
	<email>smp@FreeBSD.org</email>
      </person>
    </contact>
  
    <links>
      <url href="http://www.FreeBSD.org/smp/">SMPng project
	website</url>
    </links>
  
    <body>
      <p>Alfred Perlstein committed file descriptor locking code
	which was definitely a good push towards trying to lock down
	some important pieces of global data.  Peter Wemm has made
	progress on pmap cleanups for x86 SMP TLB shootdowns.  Matt
	Dillon and John Baldwin have made progress on getting patches
	done for moving accesses to ucred's out from under Giant's
	protection.  John Baldwin has also made some commits in order
	to get the alpha port's SMP working.  Matt Dillon has plans
	for hunting down fileops locking issues in order to continue
	his previous Giant pushdown work.</p>
    </body>
  </project>

</report>

