diff --git a/en/docproj/who.sgml b/en/docproj/who.sgml index 60e7a6877b..2e15ff7d42 100644 --- a/en/docproj/who.sgml +++ b/en/docproj/who.sgml @@ -1,38 +1,38 @@ - + ]> &header;

The project is a fairly loosely knit group of people, and the only thing we have got in common is that we are subscribed to the mailing list FreeBSD-doc@FreeBSD.org.

Some of us can commit changes directly to the FreeBSD documentation tree. You can view a complete list of all FreeBSD developers with commit privileges, as well as a list of the + href="../administration.html#t-doceng"> principal committers for the FreeBSD Documentation Project.

Others do not have commit privileges, but they write and submit documentation nonetheless. Once the documentation has been submitted according to the Submit Documentation page, one of the committers will then review it and include it in the documentation set.

If you want to help out with the documentation project (and I fervently hope you do) all you have to do is subscribe to the mailing list and participate. As soon as you have done that, you're a member of the project.

FreeBSD Documentation Project Home

&footer; diff --git a/en/internal/internal.sgml b/en/internal/internal.sgml index 5cf3eaaffb..5a13e35b81 100644 --- a/en/internal/internal.sgml +++ b/en/internal/internal.sgml @@ -1,68 +1,69 @@ - + ]> &header;

This page contains pointers to pages documenting aspects of the FreeBSD project itself, as viewed separately from the codebase.

Projects

There are various projects which lie outside the mainstream development path, in which a number of groups are working on the 'cutting edge' to expand FreeBSD's range of capabilities in new directions.

Here is an overview of the FreeBSD Release Engineering Process.

Here are the official package building procedures.

And here you will find the schedules for upcoming official releases of FreeBSD.

Policies

To avoid chaos with a project this large spread out all over the globe, there have to be some Policies for FreeBSD Committers.

People

-

The -FreeBSD Project Staff -consists of the FreeBSD Core Team and the FreeBSD Developers; this document -contains a list of them, as well as explanations of who is responsible -for what.

+

The &os; Project Staff consists of teams, groups and individuals + with designated project roles and areas of responsibility and the developers. + By following the links, one will find a list of them, as well as + explanations of who is responsible for what.

Here are some personal homepages hosted at FreeBSD.org, as well as some photos from social events.

Resources

Here is a list of some technical resources for FreeBSD committers.

For those with accounts on the main FreeBSD.org network, here are the machine resources that are available and the sorts of work they are intended for.

You can learn more about the FreeBSD WWW server, including the machine, the software, mirroring the FreeBSD web pages.

&footer; diff --git a/en/news/status/report-2004-07-2004-12.xml b/en/news/status/report-2004-07-2004-12.xml index 95ecc402f0..d706e6dbf3 100644 --- a/en/news/status/report-2004-07-2004-12.xml +++ b/en/news/status/report-2004-07-2004-12.xml @@ -1,2341 +1,2341 @@ July-December 2004
Introduction

The FreeBSD status report is back again after another small break. The second half of 2004 was incredibly busy; FreeBSD 5.3 was released, the 6-CURRENT development branch started, and EuroBSDCon 2004 was a huge success, just to name a few events. This report is packed with an impressive 44 submissions, the most of any report ever!

It's also my pleasure to welcome Max Laier and Tom Rhodes to the status report team. They kindly volunteered to help keep the reports on time and help improve their quality. Max in particular is responsible for the reports being divided up into topics for easier browsing. Many thanks to both for their help!

proj Projects doc Documentation kern Kernel arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous Project Frenzy (FreeBSD-based Live-CD) Sergei Mozhaisky technix@ukrpost.com.ua Official web site English version

Frenzy is a "portable system administrator toolkit," Live-CD based on FreeBSD. It generally contains software for hardware tests, file system check, security check and network setup and analysis. Current version 0.3, based on FreeBSD 5.2.1-RELEASE, contains almost 400 applications in 200MB ISO-image.

Tasks for next release: script for installation to HDD; unified system configuration tool; updating of software collection.

ALTQ Max Laier mlaier@FreeBSD.org ALTQ(4) man-page.

ALTQ is part of FreeBSD 5.3 release and can be used to do traffic shaping and classification with PF. In CURRENT IPFW gained the ability to do ALTQ classification as well. A steadily increasing number of NIC drivers has been converted to support ALTQ. For details see the ALTQ(4) man-page.

Convert/test more NIC drivers. Write documentation.
TCP Reassembly Rewrite and Optimization Andre Oppermann andre@FreeBSD.org

Currently TCP segment reassembly is implemented as a linked list of segments. With today's high bandwidth links and large bandwidth*delay products this doesn't scale and perform well.

The rewrite optimizes a large number of operational aspects of the segments reassembly process. For example it is very likely that the just arrived segment attaches to the end of the reassembly queue, so we check that first. Second we check if it is the missing segment or alternatively attaches to the start of the reassembly queue. Third consecutive segments are merged together (logically) and are skipped over in one jump for linear searches instead of each segment at a time.

Further optimizations prototyped merge consecutive segments on the mbuf level instead of only logically. This is expected to give another significant performance gain. The new reassembly queue is tracking all holes in the queue and it may be beneficial to integrate this with the scratch pad of SACK in the future.

Andrew Gallatin was able to get 3.7Gb/sec TCP performance on dual-2Gbit Myrinet cards with severe packet reordering (due to a firmware bug) with the new TCP reassembly code. See second link.

TTCPv2: Transactional TCP version 2 Andre Oppermann andre@FreeBSD.org

The old TTCP according to RFC1644 was insecure, intrusive, complicated and has been removed from FreeBSD >= 5.3. Although the idea and semantics behind it are still sound and valid.

The rewrite uses a much easier and more secure system with 24bit long client and server cookies which are transported in the TCP options. Client cookies protect against various kinds of blind injection attacks and can be used as well to generally secure TCP sessions (for BGP for example). Server cookies are only exchanged during the SYN-SYN/ACK phase and allow a server to ensure that it has communicated with this particular client before. The first connection is always performing a 3WHS and assigning a server cookie to a client. Subsequent connections can send the cookie back to the server and short-cut the 3WHS to SYN->OPEN on the server.

TTCPv2 is fully configurable per-socket via the setsockopt() system call. Clients and server not capable of TTCPv2 remain fully compatible and just continue using the normal 3WHS without any delay or other complications.

Work on implementing TTCPv2 is done to 90% and expected to be available by early February 2005. Writing the implementation specification (RFC Draft) has just started.

CPU Cache Prefetching Andre Oppermann andre@FreeBSD.org

Modern CPU's can only perform to their maximum if their working code is in fast L1-3 cache memory instead of the bulk main memory. All of today's CPU's support certain L1-3 cache prefetching instructions which cause data to be retrieved from main memory to the cache ahead of the time that it is already in place when it is eventually accessed by the CPU.

CPU Cache Prefetching however is not a golden bullet and has to be used with extreme care and only in very specific places to be beneficial. Incorrect usage can lead to massive cache pollution and a drop in effective performance. Correct and very carefully usage on the other can lead to drastic performance increases in common operations.

In the linked patch CPU cache prefetching has been used to prefetch the packet header (OSI layer 2 to 4) into the CPU caches right after entering into the network stack. This avoids a complete CPU stall on the first access to the packet header because packets get DMA'd into main memory and thus never are already pre-cache in the CPU caches. A second use in the patch is in the TCP input code to prefetch the entire struct tcpcb which is very large and used with a very high probability. Use in both of these places show a very significant performance gain but not yet fully quantified.

The final patch will include documentation and a guide to evaluate and assess the use of CPU cache prefetch instructions in the kernel.

TCP Cleanup and Optimizations Andre Oppermann andre@FreeBSD.org

The TCP code in FreeBSD has evolved significantly since the fork from 4.4BSD-Lite2 in 1994 primarily due to new features and refinements of the TCP specifications.

The TCP code now needs a general overhaul, streamlining a cleanup to make it easily comprehensible, maintainable and extensible again. In addition there are many little optimizations that can be done during such an operation propelling FreeBSD back at the top of the best performing TCP/IP stacks again, a position it has held for the longest time in the 90's.

This overhaul is a very involved and delicate matter and needs extensive formal and actual testing to ensure no regressions compared to the current code. The effort needed for this work is about two man-month of fully focused and dedicated time. To get it done I need funding to take time off my day job and to dedicate me to FreeBSD work much the way PHK did with his buffer cache and vnode rework projects.

In February 2005 I will officially announce the funding request with a detailed description of the work and how the funding works. In general I can write invoices for companies wishing to sponsor this work on expenses. Tax exempt donations can probably be arranged through the FreeBSD foundation. Solicitations of money are already welcome, please contact me on the email address above.

Funding for two man-month equivalents of my time. If you want or intend to sponsor US$1k or more please contact me in advance already now.
Move ARP out of routing table Andre Oppermann andre@FreeBSD.org Qing Li qingli@speackeasy.net

The ARP IP address to MAC address mapping does not belong into the routing table (FIB) as it is currently done. This will move it to its own hash based structure which will be instantiated per each 802.1 broadcast domain. With this change it is possible to have more than one interface in the same IP subnet and layer 2 broadcast domain. The ARP handling and the routing table will be quite a bit simplified afterwards. As an additional benefit full MAC address based accounting will be provided.

Qing Li has become the driver and implementor of this project and is expected to post a first patch for comments shortly in February 2005.

Layer 2 PFIL_HOOKS Andre Oppermann andre@FreeBSD.org

IPFW2 has been converted to use PFIL_HOOKS for the IP[46] in/output path. (See link.) Not converted yet is the Layer 2 Etherfilter functionality of IPFW2. It is still directly called from the ether_input/output and bridging code.

Layer 2 PFIL_HOOKS provide a general abstraction for packet filters to hook into the Layer 2 packet path and filter or manipulate such packets. This makes it possible to use not only IPFW2 but also PF and others for Layer 2 filtering.

Common Address Redundancy Protocol - CARP Max Laier mlaier@FreeBSD.org

CARP is an alternative to VRRP. In contrast to VRRP it has full support for IPv6 and uses crypto to protect the advertisements. It was developed by OpenBSD due to concerns that the HSRP patent might cover VRRP and CISCO might defend its patent. CARP has, since then, improved a lot over VRRP.

CARP is implemented as an in-kernel multicast protocol and displays itself as a pseudo interface to the user. This makes configuration and administration very simple. CARP also incorporates MAC based load-balancing.

Patches for RELENG_5 and recent HEAD are available from the URL above. I plan to import these patches in the course of the next two to four month. RELENG_5 has all necessary ABI to support CARP and I might MFC it for release 5.4 or 5.5 - depending how well the HEAD import goes.

Please test and send feedback! Write documentation. Import newest OpenBSD changes.
FreeBSD Source Repository Mirror for svn/svk Kao Chia-liang clkao@FreeBSD.org Repository browser. RSS for RELENG_5 commits. RSS for CURRENT commits. svk homepage.

A public Subversion mirror of the FreeBSD repository is provided at svn://svn.clkao.org/freebsd/. This is intended for people who would like to try the svk distributed version control system.

svk allows you to mirror the whole repository and commit when offline. It also provides history-sensitive branching, merging, and patches. Non-committers can easily maintain their own branch and track upstream changes while their patches are being reviewed.

Secure Updating Colin Percival cperciva@FreeBSD.org Portsnap FreeBSD Update

In my continuing quest to secure the mechanisms by which FreeBSD users keep their systems up to date, I've added a new tool: Portsnap. Available as sysutils/portsnap in the ports tree, this utility securely downloads and updates a compressed snapshot of the ports tree; this can then be used to extract or update an uncompressed ports tree. In addition to operating in an end-to-end secure manner thanks to RSA signatures, portsnap operates entirely over HTTP and can use under one tenth of the bandwidth of cvsup for users who update their ports tree more than once a week.

FreeBSD Update -- my utility for secure and efficient binary tracking of the Security/Errata branches -- continues to be widely used, with over 100 machines downloading security or errata updates daily.

At some point in the future I intend to bring both of these utilities into the FreeBSD base system, probably starting with portsnap.

Cronyx Adapters Drivers Roman Kurakin rik@FreeBSD.org Cronyx Software download page.

Currently FreeBSD supports three family of Cronyx sync adapters: Tau-PCI - cp(4), Tau-ISA - ctau(4) and Sigma - cx(4). All these drivers were updated (in 6.current) and now they are Giant free. However, this is true only for sppp(4). If you are using Netgraph or async mode (for Sigma) you may need to turn mpsafenet off for that driver with appropriate kernel variable.

Now all these drivers and sppp(4) are using recursive lock. So the first task is to make these locks non recursive. Second task is to check/make drivers workable in netgraph/async mode. I think about ability to switch between sppp/netgraph mode at runtime. For now you should recompile module/kernel to change mode.
EuroBSDCon 2005 - Basel / Switzerland Max Laier mlaier@FreeBSD.org EuroBSDCon Homepage

This year's EuroBSDCon will be held at the University of Basel, Switzerland from 25th through 27th November. The call for papers should happen shortly. Please consider attending or even presenting. Check the conference homepage for more information.

FreeSBIE Status Report FreeSBIE Staff staff@FreeSBIE.org FreeSBIE Website FreeSBIE Mailing List

FreeSBIE is a Live-CD based on the FreeBSD Operating system, or even easier, a FreeBSD-based operating system that works directly from a CD, without touching your hard drive.

On December, 6th, 2004, FreeSBIE Staff released FreeSBIE 1.1, based on FreeBSD 5.3-RELEASE. Some of the innovations are: a renewed series of scripts to support power users in the use of FreeSBIE 1.1, an installer to let users install FreeSBIE 1.1 on their hard drives, thus having a powerful operating system such as FreeBSD, but with all the personalizations FreeSBIE 1.1 carries, the presence of the best open source software, chosen and personalized, such as X.Org 6.7, XFCE 4.2RC1, Firefox 1.0 and Thunderbird 0.9.2.

For a complete list of the included software, please consult: http://www.freesbie.org/doc/1.1/FreeSBIE-1.1-i386.pkg_info.txt

At EuroBSDCon 2004 in Karlsruhe, Germany, people from the FreeSBIE staff gave a talk, deeping into FreeSBIE scripts implementation and use.

Translating website and documentation
PowerPC Port Peter Grehan grehan@FreeBSD.org Miniinst ISO. Miniinst relnotes.

A natively built 6.0-CURRENT miniinst ISO is available at the above link. It runs best on G4 Powermacs, but may run on other Newworld machines. See the release notes for full details.

As usual, lots of help is needed. This is a great project for those who want to delve deeply into FreeBSD kernel internals.

Dingo Monthly Report George Neville-Neil gnn@FreeBSD.org Network Stack Cleanup Project.

In the last month we set up the project page noted above and also created a p4 branch for those of us who use p4 to do work outside of CVS.

FreeBSD GNOME Project Status Report Joe Marcus marcus@FreeBSD.org FreeBSD GNOME Project

We haven't produced a status report in a while, but that's just because we've been busy. Since our last report in March 2004, we have added three new team members: Koop Mast (kwm), Jeremy Messenger (mezz), and Michael Johnson (ahze). Jeremy has been quite helpful in GNOME development porting while Michael and Koop have been focusing on improving GNOME multimedia, especially GStreamer. The stable release of GNOME is now up to 2.8.2, and we are actively working on the GNOME 2.9 development branch with is slated to become 2.10 on March 9 of this year.

The GNOME Tinderbox is still cranking away, and producing packages for both the stable and development releases of GNOME for all supported i386 versions of FreeBSD.

Thanks to Michael Johnson, the FreeBSD GNOME team has recently been given permission to use the Firefox and Thunderbird names , official icons, and to produce officially branded builds. Mozilla has also been very interested in merging our local patches back into the official source tree. This should greatly improve the quality of Firefox and Thunderbird on FreeBSD moving forward.

Finally, Adam Weinberger (adamw) has been pestering the team for photos so that we can finally show the community who we are. It is still unclear as to whether or not this will attract more FreeBSD GNOME users, or land us on the Homeland Security no-fly list.

Need help porting HAL to FreeBSD (contact marcus@FreeBSD.org ) Need help porting libburn to FreeBSD (contact bland@FreeBSD.org ) Anyone interested in reviving Gnome Meeting should contact kwm@FreeBSD.org
SMPng Status Report John Baldwin jhb@FreeBSD.org smp@FreeBSD.org

Lots of changes happened inside the network stack that will hopefully be covered by a separate report. Outside of the network stack, several changes were made however including changes to proc locking, making the kernel thread scheduler preemptive, fixing several priority inversion bugs in the scheduler, and a few performance tweaks in the mutex implementation.

Locking work on struct proc and its various substructures continued with locking added where needed for struct uprof, struct rusage, and struct pstats. This also included reworking how the kernel stores process time statistics to store the raw struct bintime and tick counts internally and only compute the more user friendly values when requested via getrusage() or wait4().

Support for kernel thread preemption was added to the scheduler. Basically, when a thread makes another thread runnable, it may yield the current CPU to the new thread if the new thread has a more important priority. Previously, only interrupt threads preempted other threads and the implementation would occasionally trigger spurious context switches. This change exposed bugs in other parts of the kernel and was turned off by default in RELENG_5. Currently, only the i386, amd64, and alpha platforms support native preemption.

Several priority inversion bugs present in the scheduler due to various changes to the kernel from SMPng were also fixed. Most of the credit for these fixes belongs Stephan Uphoff who has recently been added as a new committer. Fixes include: closing a race in the turnstile wakeup code, changing the sleep queue code to store threads in FIFO order so that the sleep queue wakeup code properly handles having a thread's priority changes, and abstracting the concept of priority lending so that the thread scheduler is now able to properly track priority inheritance and handle priority changes for threads blocked on a turnstile.

Works in progress include separating critical sections from spin mutexes some so that bare critical sections become very cheap as well as continuing to change the various ABI compatibility layers to use in-kernel versions of system calls to reduce stackgap usage and make the system call wrappers MPSAFE.

i386 Interrupt Code & PCI Interrupt Routing John Baldwin jhb@FreeBSD.org

The ACPI PCI link support code was reworked to work around some limitations in the previous implementation. The new version more closely matches the current non-ACPI $PIR link support. Enhancements include disabling unused link devices during boot and using a simpler and more reliable algorithm for choosing ISA IRQs for unrouted link devices.

Support for using the local APIC timer to drive the kernel clocks instead of the ISA timer and i8254 clock is currently being worked on in the jhb_clock perforce branch. It is mostly complete and will probably hit the tree in the near future. By letting each CPU use its own private timer to drive the kernel clocks, the kernel no longer has to IPI all the other CPUs in the system every time a clock interrupt occurs.

Low-overhead performance monitoring for FreeBSD Joseph Koshy jkoshy@FreeBSD.org A best-in-class performance monitoring system for FreeBSD built over the hardware performance monitoring facilities of modern CPUs.

System-wide and process-virtual counting-mode performance monitoring counters are now supported for the AMD Athlon and Intel P4 CPUs. SMP works, but is prone to freezes. Immediate next steps include: (1) implementing the system-wide and process-virtual sampling modes, (2) debugging, (3) writing a test suite and (4) improving the project's documentation.

Wiki with new software Josef El-Rayes josef@FreeBSD.org Wiki

After experiencing spam attacks on the old wiki-engine caused by non-existent authentification mechanism, I had to replace it with a more advanced software. Instead of usemod, we now run moinmoin. As a consequence it's no longer just a 'browse & edit', but you have to sign up and let someone who is already in the ACL group 'developers' add you to the group. So it is a 'developers-only' resource now. The old wiki is found at http://wiki2.daemon.li

Move content from old wiki to new one.
kgi4BSD Nicholas Souchu nsouch@FreeBSD.org Homepage

The project was very quiet (but still alive!) and mostly dedicated to testing by volunteers. New documentation at http://wiki.daemon.li/moin.cgi/KGI .

Help improving the documentation
OpenOffice.org port status Maho Nakata maho@FreeBSD.org FreeBSD OpenOffice.org porting status page Stable OOo Packages for FreeBSD Some volatile WIP status of packages

OpenOffice.org 2.0 status

OpenOffice.org 1.1 status General Acknowledgments Two persons contributed in many aspects. Pavel Janik (reviewing and giving me much advice) and Kris Kennaway (extremely patient builder). and (then, alphabetical order by first name). daichi, Eric Bachard, kan, lofi, Martin Hollmichel, nork, obrien, Sander Vesik, sem, Stefan Taxhet, and volunteers of OpenOffice.org developers (esp. SUN Microsystems, Inc.) for cooperation and warm encouragements.

OpenBSD packet filter - pf Max Laier mlaier@FreeBSD.org Daniel Hartmeier dhartmei@FreeBSD.org PF4FreeBSD Homepage

FreeBSD 5.3 is the first release to include PF. It went out okay, but some bugs were discovered too late to make it on the CD. It is recommend to update `src/sys/contrib/pf' to RELENG_5. The specific issues addressed are:

Most of these issues were discovered by FreeBSD users and got fed back to OpenBSD. This is a prime example of open source at work.

The Handbook's Firewall section was modified to mention PF as an alternative to IPFW and IPF.

Write more documentation/articles. Write an IPFilter to PF migration guide/tool.
New Modular Input Device Layer Philip Paeps philip@FreeBSD.org

Following a number of mailing lists discussions on the topic, work has been progressing on the development of a new modular input device layer for FreeBSD. The purpose of this is twofold:

Currently, implementing support for new input devices is a painful process and there is great potential for code-duplication. The new input device layer will provide a simple API for developers to send events from their hardware on to the higher regions of the kernel in a consistent way, much like the 'input-core' driver in the Linux kernel.

Using multiple input devices at the moment is painful at best. With the new input device layer, events from different devices will be properly serialized before they are sent to other parts of the kernel. This will allow one to easily use, for instance, multiple USB keyboards in a virtual terminal.

The work on this is still in very rudimentary state. It is expected that the first visible changes will be committed to -CURRENT around late February or early March.

Funded FreeBSD kernel development Poul-Henning Kamp phk@FreeBSD.org Long winded status report.

A longish status report for the 6 months of funded development was posted on announce, rather than repeat it here, you can find it at the link provided.

The FreeBSD Dutch Documentation Team Remko Lodder Remko@FreeBSD.org The project's webpage. The officially released documentation. Preview of the documentation.

The FreeBSD Dutch Documentation Project is a ongoing project to translate the documentation into the Dutch language. Currently we are mainly focused on the Handbook, which is progressing pretty well. However, lots need to be translated and checked before we have a 'complete' translation ready. So if you are willing to help out, please checkout our website and/or contact me.

Translating the Handbook Checking the grammar of the Dutch Handbook Translate the rest of the documentation
Ports Collection Mark Linimon linimon_at_FreeBSD_dot_org Erwin Lansing erwin@FreeBSD.org The FreeBSD ports collection FreeBSD ports monitoring system

Since the last report on the Ports Collection, much has changed. Organizationally, the portmgr team saw the departure of some of the long-term members, and the addition of some newer members, Oliver Eikemeier, Kirill Ponomarew and Mark Linimon. Later on, portmgr also had to say goodbye to Will Andrews. In addition, we have gained quite a few new ports committers during this time period, and their contributions are quite welcome!

Most effort was devoted to two releases. The 5.3 release saw an especially long freeze period, but due to the good shape of the ports tree, the freeze for the 4.11 could be kept to a minimum. Several iterations of new infrastructure changes were tested on the cluster and committed. Also, the cluster now builds packages for 6-CURRENT, increasing the total number of different build environment to 10.

Additionally, several sweeps through the ports tree were made to bring more uniformity in variables used in the different ports and their values, e.g. BROKEN , IGNORE , DEPRECATED , USE_GCC , and and others.

In technical terms, the largest change was moving to the X.org codebase as our default X11 implementation. At the same time, code was committed to be able to select either the X.org code or the XFree86 code, which also saw an update during that time. Due to some hard work by Eric Anholt, new committer Dejan Lesjak, and Joe Marcus Clarke, all of this happened more smoothly than could have reasonably been expected.

As well, GNOME and KDE saw updates during this time, as did Perl and the Java framework. Further, there were some updates to the Porter's Handbook, but more sections are still in need of updates to include recent changes in practices. Also, during this time, Bill Fenner was able to fix a bug in his distfile survey .

Shortly before the release for 4.11 our existing linux_base was marked forbidden due to security issues. A lot of effort was spent to upgrade the default version to 8 from 7 to ship 4.11 with a working linuxolator.

Due to stability problems in the April-May timeframe, the package builds for the Alpha were dropped. After Ken Smith and others put some work into the Alphas in the build cluster, package builds for 4.X were reenabled late in 2004.

Ports QA reminders -- portmgr team members are now sending out periodic email about problems in the Ports Collection. The current set includes:

The idea behind each of these reminders is to try to increase the visibility of problems in the Ports Collection so that problems can be fixed faster.

Finally, it should be noted that we passed yet another milestone and the Ports Collection now contains over 12,000 ports.

The majority of our build errors are still due to compilation problems, primarily from the gcc upgrades. Thanks to the efforts of many volunteers, these are decreasing, but there is still much more work to be done. The next highest number of build errors are caused by code that does not build on our 64-bit architectures due to the assumption that "all the world's a PC." Here is the entire list ; the individual bars are clickable. This will become more and more important now that the amd64 port has been promoted to tier-1 status. A lot of progress has been meed to crack down on ports that install files outside the approved directories and/or do not de-install cleanly (see "Extra files not listed in PLIST" on pointyhat ) and this will remain a focus area.
Hardware Notes Simon L. Nielsen simon@FreeBSD.org Christian Brueffer brueffer@FreeBSD.org FreeBSD/i386 5.3-RELEASE Hardware Notes FreeBSD/i386 6.0-CURRENT Hardware Notes

The FreeBSD Hardware Notes have been (mostly) converted to being directly generated from the driver manual pages. This makes it much simpler to maintain the Hardware Notes, so they should be more accurate. The Hardware Notes for FreeBSD 5.3 use this new system.

Update of the Linux userland infrastructure Alexander Leidinger netchild@FreeBSD.org

The default linux_base port port was changed from the RedHat 7 based emulators/linux_base to the RedHat 8 based emulators/linux_base-8 just in time for FreeBSD 4.11-Release because of a security problem in emulators/linux_base. In the conversion process several problems where fixed in some Linux ports.

Both RedHat 7 and 8 are at their end of life, so expect an update to a more recent Linux distribution in the future. For QA reasons this update wasn't scheduled before FreeBSD 4.11-Release.

FreeBSD Security Officer and Security Team Jacques Vidrine nectar@FreeBSD.org Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org FreeBSD Security Information FreeBSD Security Officer Charter + href="http://www.freebsd.org/administration.html#t-secteam"> FreeBSD Security Team members FreeBSD VuXML web site portaudit

During 2004, there were several notable changes and events related to the FreeBSD Security Officer role and Security Team.

The charter for the Security Officer (SO) as approved by Core in 2002 was finally published on the web site. This document describes the mission, responsibilities, and authorities of the SO. (The current SO is Jacques Vidrine.)

The SO is supported by a Deputy SO and the Security Team. In April, Chris Faulhaber resigned as Deputy SO and Dag-Erling Smorgrav was appointed in his place. Also during the year, the following team members resigned: Julian Elischer, Bill Fumerola, Daniel Harris, Trevor Johnson, Kris Kennaway, Mark Murray, Wes Peters, Bruce Simpson, and Bill Swingle; while the following became new members: Josef El-Rayes, Simon L. Nielsen, Colin Percival, and Tom Rhodes. A huge thanks is due to all past and current members! The current Security Team membership is published on the web site.

With the release of FreeBSD 4.8, the SO began extended support for some FreeBSD releases and their corresponding security branches. "Early adopter" branches, such as FreeBSD 5.0 (RELENG_5_0), are supported for at least six months. "Normal" branches are supported for at least one year. "Extended" branches, such as FreeBSD 5.3 (RELENG_5_3), are supported for at least two years. The currently supported branches and their estimated "end of life" (EoL) dates are published on the FreeBSD Security Information web page. In 2004, four releases "expired": 4.7, 4.9, 5.1, and 5.2.

With the releases of FreeBSD 4.10 and 5.3, the SO and the Release Engineering team extended the scope of security branches to incorporate critical bug fixes unrelated to security issues. Currently, separate Errata Notices are published for such fixes. In the future, Security Advisories and Errata Notices will be merged and handled uniformly.

17 Security Advisories were published in 2004, covering 8 issues specific to FreeBSD and 9 general issues.

2004 also saw the introduction of the Vulnerabilities and Exposures Markup Language (VuXML). VuXML is a markup language designed for the documentation of security issues within a single package collection. Over 325 security issues in the Ports Collection have been documented already in the FreeBSD Project's VuXML document by the Security Team and other committers. This document is currently maintained in the ports repository, path ports/security/vuxml/vuln.xml. The contents of the document are made available in a human-readable form at the FreeBSD VuXML web site. The "portaudit" tool can be used to audit your local system against the listed issues. Starting in November, the popular FreshPorts.org web site also tracks issues documented in VuXML.

Sync Protocols (SPPP and NETGRAPH) Roman Kurakin rik@FreeBSD.org My FreeBSD home page. You could find here some results of my work. Unfortunately I do not update this page often.

sppp(4) was updated (in 6.current) to be able to work in mpsafe mode. For compatibility if an interface is unable to work in mpsafe mode, sppp will not use mpsafe locks.

Support of FrameRelay AnnexD was added as a historical commit. Many of Cronyx users were expecting this commit for a long long time, and most of them still prefer sppp vs netgraph because of simplicity of its configuration (especially for ppp (vs mpd) and fr (vs a couple of netgraph modules). After MFCing this I'll finally close a PR 21771, from 2000/10/05

Improved Multibyte/Wide Character Support Tim Robbins tjr@FreeBSD.org

Support for multibyte characters has been added to many more base system utilities, including basename, col, colcrt, colrm, column, fmt, look, nl, od, rev, sed, tr, and ul. As a result of changes to the C library (see below), most utilities that perform regular expression matching or pathname globbing now support multibyte characters in these aspects.

The regular expression matching and pathname globbing routines in the C library have been improved and now recognize multibyte characters. Various performance improvements have been made to the wide character I/O functions. The obsolete 4.4BSD "rune" interface and UTF2 encoding have been removed from the 6-CURRENT branch.

Work is progressing on implementations of the POSIX iconv and localedef interfaces for potential inclusion into the FreeBSD 6.0 release.

FreeBSD/arm status report Olivier Houchard cognet@FreeBSD.org FreeBSD/arm project page.

FreeBSD/arm made some huge progress. It can boot multiuser, and run things like "make world" and perl on the IQ31244 board. It also now has support for various things, including DDB, KTR, ptrace and kernel modules. A patch is available for early gdb support, and the libpthread almost works.

ATA Driver Status Report Søren Schmidt sos@FreeBSD.org

The ATA driver is undergoing quite a few important changes, mainly it is being converted into modules so it can be loaded/unloaded at will, and just the pieces for wanted functionality need be present.

This calls for ata-raid to finally be rewritten. This is almost done for reading metadata so arrays defined in the BIOS can be used, and its grown quite a few new metadata formats. This also paves the way for ataraid to finally be able to take advantage of some of the newer controllers "RAID" abilities. However this needs more work to materialize but now its finally possible

There is also support coming for a few new chipsets as usual.

The work is just about finished enough that it can be released as patches to sort out eventual problems before hitting current. The changes are pretty massive as this touches all over the driver infrastructure, so lots of old bugs and has also been spotted and fixed during this journey

Atheros Wireless Support Sam Leffler sam@FreeBSD.org

The ath driver was updated to support all the new features added to the net80211 layer. As part of this work a new version of the Hardware Access Layer (HAL) module was brought in; this version supports all available Atheros parts found in PCI and Cardbus products. Otherwise, adhoc mode should now be usable, antenna management has been significantly improved, and soft LED support now identifies traffic patterns.

The transmit rate control algorithm was split out of the driver into an independent module. Two different algorithms are available with other algorithms (hopefully) to be added.

Work is actively going on to add Atheros' SuperG capabilities.

New DHCP Client Sam Leffler sam@FreeBSD.org

The OpenBSD dhcp client program has been ported and enhanced to listen for 802.11-related events from the kernel. This enables immediate IP address acquisition when roaming (as opposed to the polling done by the old code). The main change from the previous client is that there is one dhclient process per interface as opposed to one for the entire system. This necessitates changes to the system startup scripts.

Incorporation into the base system is waiting on a volunteer who will shepherd the changes into the tree and deal with bugs.

EuroBSDCon 2004 submitted papers are online Patrick M. Hausen hausen@punkt.de Papers/Presentations Download Page

Finally all of the papers and presentations are online for download from our conference website. Thanks again to all who helped make EuroBSDCon 2004 a success.

ifconfig Overhaul Sam Leffler sam@FreeBSD.org

The ifconfig program used to configure network interfaces was overhauled. Over the years ifconfig has grown into a complex and often contorted piece of software that is hard to understand and difficult to maintain. The primary motivation for this work was to enable minimal configurations (for embedded use) without changing the code and to support future additions in a modular way. Functionality is now broken out into separate files and operations are registered with the central ifconfig code base. Features are configured simply by specifying which code is to be included when building the program.

In the future the plan is for ifconfig to auto-load functionality through dynamic libraries. This mechanism will allow, for example, third party software packages to provide kernel services and ifconfig add-on code without changing the base system.

Network Stack Locking Robert Watson rwatson@FreeBSD.org FreeBSD Project Netperf project web page. Robert Watson's personal Netperf web page.

The netperf project is working to enhance the performance of the FreeBSD network stack. This work grew out of the SMPng Project, which moved the FreeBSD kernel from a "Giant Lock" to more fine-grained locking and multi-threading. SMPng offered both performance improvement and degradation for the network stack, improving parallelism and preemption, but substantially increasing per-packet processing costs. The netperf project is primarily focused on further improving parallelism in network processing while reducing the SMP synchronization overhead. This in turn will lead to higher processing throughput and lower processing latency. Tasks include completing the locking work, optimizing locking strategies, amortizing locking costs, introducing new synchronization primitives, adopting non-locking synchronization strategies, and improving opportunities for parallelism through additional threading.

Between July, 2004, and December, 2004, the Netperf project did a great deal of work, for which there is room only to include limited information. Much more information is available by visiting the URLS above, including information on a variety of on-going activities. Accomplishments include:

July, 2004: A variety of improvements to PCB locking in the IPv6 implementation; locking for the if_xl driver; socket locking for the NFS client; cleanup of the soreceive() code path including structural improvements, assertions, and locking fixes; cleanup of the IPX/SPX code in preparation for locking; additional locking and locking assertions for the TCP implementation; bug fixes for locking and memory allocation in raw IP; netatalk cleanup and locking merged to FreeBSD CVS ; locking for many netgraph nodes merged to FreeBSD CVS ; SLIP structural improvements; experimental locking for netatalk ifaddrs; BPF locking optimizations (merged); Giant assertions for VFS to check VFS/network stack boundaries; UNIX domain socket locking optimizations; expansion of lock order documentation in WITNESS, additional NFS server code running MPSAFE; pipe locking optimizations to improve pipe allocation performance; Giant no longer required for fstat on sockets and pipes (merged); Giant no longer required for socket and pipe file descriptor closes (merged); IFF_NEEDSGIANT interface flag added to support compatibility operation for unlocked device drivers (merged) ; merged accept filter locking to FreeBSD CVS; documented uidinfo locking strategy (merged); Giant use reduced in fcntl().

August, 2004: UMA KTR tracing (merged); UDP broadcast receive locking optimizations (merged); TCP locking cleanup and documentation; IPv6 inpcb locking, cleanup, and structural improvements; IPv6 inpcb locking merged to FreeBSD CVS ; KTR for systems calls added to i386; substantial optimizations of entropy harvesting synchronization (merged) ; callout(9) sampling converted to KTR (merged); inpcb socket option locking (merged); GIANT_REQUIRED removed from netatalk in FreeBSD CVS; merged ADAPTIVE_GIANT to FreeBSD CVS, resulting in substantial performance improvements in many kernel IPC-intensive benchmarks ; prepend room for link layer headers to the UDP header mbuf to avoid one allocation per UDP send (merged); a variety of UDP bug fixes (merged); additional network interfaces marked MPSAFE; UNIX domain socket locking reformulated to protect so_pcb pointers; MP_WATCHDOG, a facility to dedicate additional HTT logical CPUs as watchdog CPUs developed (merged) ; annotation of UNIX domain socket locking merged to FreeBSD CVS; kqueue locking developed and merged by John-Mark Gurney ; task list for netinet6 locking created; conditional locking relating to kqueues and socket buffers eliminated (merged); NFS server locking bugfixes (merged); in6_prefix code removed from netinet6 by George Neville-Neil, lowering the work load for netinet6 (merged); unused random tick code in netinet6 removed (merged); ng_tty, IPX, KAME IPSEC now declare dependence on Giant using compile-time declaration NET_NEEDS_GIANT("component") permitting the kernel to detect unsafe components and automatically acquire the Giant lock over network stack operation if needed (merged) ; additional locking optimizations for entropy code (merged); Giant disabled by default in the netperf development branch (merged).

September, 2004: bugs fixed relating to Netgraph's use of the kernel linker while not holding Giant (merged); merged removal of Giant over the network stack by default to FreeBSD CVS ; races relating to netinet6 and if_afdata corrected (merged); annotation of possible races in the BPF code; BPF code converted to queue(3) (merged); race in sopoll() corrected (merged).

October, 2004: IPv6 netisr marked as MPSAFE; TCP timers locked, annotated, and asserted (merged); IP socket option locking and cleanup (merged); Netgraph ISR marked MPSAFE; netatalk ISR marked MPSAFE (merged); some interface list locking cleanup (merged); use after free bug relating to entropy harvesting and ethernet fixed (merged); soclose()/sofree() race fixed (merged); IFF_LOCKGIANT() and IFF_UNLOCKGIANT() added to acquire Giant as needed when entering the ioctls of non-MPSAFE network interfaces.

November, 2004: cleanup of UDPv6 static global variables (merged); FreeBSD 5.3 released! First release of FreeBSD with an MPSAFE and Giant-free network stack as the default configuration! ; additional TCP locking documentation and cleanup (merged); optimization to use file descriptor reference counts instead of socket reference counts for frequent operations results in substantial performance optimizations for high-volume send/receive (merged) ; an accept bug is fixed (merged) experimental network polling locking introduced; substantial measurement and optimization of mutex and locking primitives (merged) ; experimental modifications to UMA to use critical sections to protect per-CPU caches instead of mutexes yield substantial micro-benchmark benefits when combined with experimental critical section optimizations ; FreeBSD Project Netperf page launched; performance micro-benchmarks benchmarks reveal IP forwarding latency in 5.x is measurably better than 4.x on UP when combined with optional network stack direct dispatch; several NFS server locking bugfixes (merged); development of new mbufqueue primitives and substantial experimentation with them permits development of amortized cost locking APIs for handoff between the network stack and network device drivers (work in collaboration with Sandvine, Inc) ; Linux TCP_INFO API added to allow user-space monitoring of TCP state (merged); SMPng task list updated; UDP static/global fixes merged to RELENG_5.

December, 2004: UDP static/global fixes developed for multi-threaded in-bound UDP processing (merged); socket buffer locking fixes for urgent TCP input processing (merged); lockless read optimizations for IF_DEQUEUE() and IF_DRAIN(); Giant-free close for sockets/pipes/... merged to FreeBSD CVS; optimize mass-dequeues of mbuf chains in netisr processing; netrate tool merged to RELENG_5; TCP locking fixes merged to RELENG_5; "show alllocks" added to DDB (merged); IPX locking bugfixes (merged); IPX/SPX __packed fixes (merged); IPX/SPX moved to queue(9) (merged); TCP locking fixes and annotations merged to FreeBSD CVS; IPX/SPX globals and pcb locking (merged); IPX/SPX marked MPSAFE (merged) ; IP socket options locking merged to FreeBSD; SPPP locked by Roman Kurakin (merged); UNIX domain socket locking fixes by Alan Cox (merged).

On-going work continues with regard to locking down network stack components, including additional netinet6 locking, mbuf queue facilities and operations; benchmarking; moving to critical sections or per-CPU mutexes for UMA per-CPU caches; moving to critical sections or per-CPU mutexes for malloc(9) statistics; elimination of separate mbuf allocator statistics; additional interface locking; a broad variety of cleanups and documentation of locking; a broad range of optimizations.

FreeBSD profile.sh Tobias Roth ports@fsck.ch FreeBSD profile.sh site

FreeBSD profile.sh is targeted at laptops. It allows to define multiple network environments (eg, home, work), and will then detect in which environment the laptop is started and configure it accordingly. Almost everything from under /etc can be configured per environment, and only the overrides to the default /etc have to be defined. Suspending in one environment and resuming in a different one is also supported.

Proper integration into the acpi/apm and several small improvements are underway. More testing with different system configurations is needed.

FreeBSD Release Engineering Scott Long re@FreeBSD.org

At long last, FreeBSD 5.3 was released in November of 2004. This marked the start of the RELENG_5/5-STABLE branch and the beginning of the 6-CURRENT development branch. Many thanks to the tireless efforts of the FreeBSD developer and user community for making this release a success.

FreeBSD 4.11 release engineering is also now in progress. This will be the final release from the 4.x series and is mainly incremental bug fixes and a handful of feature additions. Of note is that the IBM ServeRAID 'IPS' driver is now supported on 4.x and will be included in this release, and the Linux emulation layer has been updated to support a RedHat 8.0 userland. The release is expected to be available on January 24.

Looking forward, there will be several FreeBSD 5.x releases in the coming year. FreeBSD 5.4 release engineering will start in March, and FreeBSD 5.5 release engineering will likely start in June. These releases are expected to be more conservative than previous 5.x releases and will follow the same philosophy as previous -STABLE branches of fixing bugs and adding incremental improvements while maintaining API stability.

For the 6-CURRENT development branch as well as all future development and stable branches, we are planning to move to a schedule with fixed timelines that move away from the uncertainty and wild schedule fluctuations of the previous 5.x releases. This means that major branches will happen at 18 month intervals, and releases from those branches will happen at 4 month intervals. There will also be a dedicated period of testing and bug fixing at the beginning of each branch before the first release is cut from that branch. With the shorter and more defined release schedules, we hope to lessen the problem of needed features not reaching users in a reasonable time, as happened too often with 5.x. This is a significant change in our strategy, and we look forward to realizing the benefits of it. This will kick off with the RELENG_6 branch happing in June of 2005, followed by the 6.0 release in August of 2005.

Also on the roadmap is a plan to combine the live-iso disk2 and the install distributions of disk1 into a single disk which can be used for both installation and for recovery. 3rd party packages that currently reside on disc1 will be moved to a disk2 that will be dedicated to these packages. This move will allow us to deal with the ever growing size of packages and also provide more flexibility to vendors that wish to add their own packages to the releases. It also opens the door to more advanced installers being put in place of sysinstall. Anyone interested in helping with this is encouraged to contact us.

Wireless Networking Support Sam Leffler sam@FreeBSD.org

The wireless networking layer was updated to support the 802.1x, WPA, and 802.11i security protocols, and the WME/WMM multi-media protocol. As part of this work extensible frameworks were added for cryptographic methods, authentication, and access control. Extensions are implemented as loadable kernel modules that hook into the net80211 layer. This mechanism is used, for example, to implement WEP, TKIP, and CCMP crypto protocols. The Atheros driver (ath) is currently the only driver that uses the full set of features. Adding support to other drivers is simple but waiting on volunteers. Ports of the wpa_supplicant and hostapd programs enable use of the new security protocols.

The support for tracking stations in a bss (managed or adhoc) and stations found when scanning was overhauled. Multiple tables are now used, each with different management policies, reference counting is now done consistently, and inactivity processing is done more intelligently (e.g. associated stations are probed before removal). This is the first step towards proper roaming support and other advanced features.

AP power save support was added. Associated stations may now operate in power save mode; frames sent to them will be buffered while they are sleeping and multicast traffic will be deferred until after the next beacon (per the 802.11 protocol). Power save support is required in a standards-compliant access point. Only the ath driver currently implements power save support.

Work is actively going on to add Atheros' SuperG capabilities, WDS, and for multi-bss support (ssid and/or bssid) on a single device.

Drivers other than ath need updates to support the new security protocols hostapd needs work to support the IAPP and 802.11i preauthentication protocols (these are simple conversion of existing Linux code)
FreeBSD on Xen Kip Macy kmacy@fsmware.com binaries + source + slightly out of date HOWTO Xen project page

FreeBSD 5.2.1 is stable on the stable branch of Xen as a guest. FreeBSD 5.3 runs on the stable branch of Xen as a guest, but a couple of bugs need to be tracked down.

FreeBSD support for running in Domain 0 (host) FreeBSD support for VM checkpoint and migration
diff --git a/en/news/status/report-2005-01-2005-03.xml b/en/news/status/report-2005-01-2005-03.xml index b9b43ada34..86e3a63a41 100644 --- a/en/news/status/report-2005-01-2005-03.xml +++ b/en/news/status/report-2005-01-2005-03.xml @@ -1,2147 +1,2147 @@ January-April 2005
Introduction

The first quarter of 2005 has been extremely active in both FreeBSD-CURRENT and -STABLE. With FreeBSD 5.4 in the final RC stage and an anticipated branch of FreeBSD-6 this summer we have seen a lot of performance improvements in 5 and a couple of exciting new features in 6.

The report turnout was extremely good and it seems that the webform provided by Julian Elischer has made it more enjoyable to write reports. Many thanks to Julian for providing this. We also like to get your attention to the open tasks section provided in some reports.

On special note, please take a look at the report about the upcoming BSDCan in Ottawa. There will be lots of interesting FreeBSD related talks and activities. If you enjoy reading these reports, you will love the conference. See you there!

Thanks to all the reporters, we hope you enjoy reading.

proj Projects doc Documentation kern Kernel net Network infrastructure bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous Secure Updating Colin Percival cperciva@FreeBSD.org

Shortly before the ports freeze for FreeBSD 5.4, I released a new version of Portsnap. In addition to being secure and more efficient than CVSup, this latest version distributes INDEX, INDEX-5, and INDEX-6 files, thereby eliminating the need to run "make fetchindex" and ensuring that the ports INDEX will match the existing ports tree. In addition, portsnap builds have now moved onto hardware managed by the FreeBSD project, thereby sharply increasing portsnap's chances of survival if I get hit by a bus.

In early February hardware problems caused both FreeBSD Update and Portsnap to stop functioning for a few days, but those were resolved thanks to a server donated by layeredtech.com.

I intend bring Portsnap into the FreeBSD base system before the end of the month, followed by FreeBSD Update a few months later.

if_bridge from NetBSD Andrew Thompson andy@fud.org.nz

This project aims to import the bridging code and interface from NetBSD and OpenBSD. The bridge is a cloned interface which can be modified by ifconfig and brconfig. It supports assigning an IP address directly to the bridge (e.g. bridge0) instead of one of the member interfaces, and can be used with tcpdump to inspect the bridged packets. The code also supports spanning tree (802.1D) for loop detection and link redundancy. Any pfil(9) packet filter can be used to filter the bridged packets.

Testing performance and functionality against the existing bridge code. Testers welcome!
ARM Support for TS-7200 John-Mark Gurney jmg@FreeBSD.org TS-7200 Board Perforce Code Location FreeBSD/arm TS-7200 dmesg output

I have been working on getting FreeBSD/arm running on the TS-7200. So far the board boots, and has somewhat working ethernet (some unexplained packet loss). I can netboot from a FreeBSD/i386 machine, and I can also mount msdosfs's on CF.

Figuring out why some small packets transmit with error EP93xx identification information to properly attach various onboard devices
Update of the Linux userland infrastructure Alexander Leidinger netchild@FreeBSD.org Emulation Mailinglist freebsd-emulation@FreeBSD.org

The update to RedHat 8 as discussed in the last status report went smoothly (just some minor glitches which got resolved fast).

As a next step a cleanup/streamlining and the possibility of overriding the default Linux base is in progress. This depends on changes which need at least one testrun on the ports build cluster, so the final date for those changes depends upon the availability of the cluster resources.

Refactoring the common RPM code into bsd.rpm.mk. Determining which up-to-date Linux distribution to use as the next default Linux base. Important criteria:
  • RPM based (to be able to use the existing infrastructure)
  • good track record regarding availability of security fixes
  • packages available from several mirror sites
  • available for several hardware architectures (e.g. i386, amd64, sparc64; Note: not all architectures have a working linuxolator for their native bit with, but as long as there are no userland bits available, no motivation regarding writing the kernel bits will arise)
Moving the linuxolator userland to an up-to-date version (see above).
Pipe namespace added to portalfs Diomidis Spinellis dds@FreeBSD.org

A new sub-namespace, called pipe, has been added to portalfs. The pipe namespace executes the named command, starting back at the root directory. The command's arguments can be provided after the command's name, by separating them with spaces or tabs. Files opened for reading in the pipe namespace will receive their input from the command's standard output; files opened for writing will send the data of write operations to the command's standard input. The pipe namespace allows us to perform scatter gather operations without using temporary files, create non-linear pipelines, and implement file views using symbolic links.

Low-overhead performance monitoring for FreeBSD Joseph Koshy jkoshy@FreeBSD.org Project home page

Many modern CPUs have on-chip performance monitoring counters (PMCs) that can be used to count low-level hardware events like instruction retirals, branch mispredictions, cache and TLB misses and the like. PMC architectures and capabilities vary between CPU vendors and between CPU generations from the same vendor, making the creation of portable applications difficult. This project attempts to provide a uniform API for applications to use, and the necessary infrastructure to "virtualize" and manage the available PMC hardware resources. The creation of performance analysis tools that use this infrastructure is also part of the project's goals.

Work since the last status report:

The code needs to be tested on Intel Pentium-M, Celeron, Pentium II and Pentium Pro CPUs.
GELI - GEOM class for providers encryption Pawel Jakub Dawidek pjd@FreeBSD.org Kernel module. Userland configuration utility.

GELI is a GEOM class used for GEOM providers encryption. I decided to work on this, as I needed some feature, which cannot be found in similar projects. Here is the list of features, I found interesting:

Code audit/review is more than welcome!
FreeBSD Dutch Documentation Project Remko Lodder remko@FreeBSD.org FreeBSD Dutch Handbook FreeBSD Dutch Handbook preview The Project Page

The FreeBSD Dutch Documentation Project is a ongoing project in translating the English documentation to the Dutch language. Currently we have translated almost the entire handbook, and more to come. If you want to help out by review the Dutch documents, or you want to help translating the remainders of the handbook or other documents, feel free to contact me at remko@FreeBSD.org

Translate the English handbook, then review the Dutch handbook Translate the English FAQ, then review the Dutch FAQ Translate the English Articles, then review the Dutch Articles
FreeBSD Java Project Greg Lewis glewis@FreeBSD.org Alexey Zelkin phantom@FreeBSD.org

The FreeBSD Java Project released its initial support for JDK 1.5.0 with patch set 1 "Sabretooth" in January. The initial release featured support for both FreeBSD 5.3/i386 and 5.3/amd64. Since then preliminary support for FreeBSD 4.11/i386 has been added and several bug fixes have been made. Updates in the coming months will add support for the browser plug in and Java Web Start, which were not in the initial release.

Volunteers to look into some serious problems with JDK 1.5.0 on FreeBSD 4.x
Common Address Redundancy Protocol - CARP Max Laier mlaier@FreeBSD.org Gleb Smirnoff glebius@FreeBSD.org

CARP is an alternative to VRRP. In contrast to VRRP it has full support for IPv6 and uses crypto to protect the advertisements. It was developed by OpenBSD due to concerns that the HSRP patent might cover VRRP and CISCO might defend its patent. CARP has, since then, improved a lot over VRRP.

CARP has been committed to HEAD and MFCed to RELENG_5. It will be available in upcoming 5.4-RELEASE.

Big thanks to all users who provided testing and reported bugs to Max and Gleb. Daniel Seuffert has donated hardware to Max for this project. Gleb's work was sponsored by Rambler .

Improve vlan(4) support. Test ng_eiface(4). Improve locking, consider removing interface layer.
netgraph(4) status report Gleb Smirnoff glebius@FreeBSD.org ng_netflow(4) ng_ipfw(4) ng_nat work in progress

This report covers period since August 2004 until April 2005.

New nodes. Two new nodes have been added to base FreeBSD distribution. ng_netflow(4) node, which implements NetFlow version 5 accounting of IPv4 packets. ng_ipfw(4) node, which diverts packets from ipfw(4) to netgraph(4) and back. A well known ng_ipacct node has been added to ports tree.

SMP. Nodes, which need to allocate unique names have been protected with mutex in RELENG_5, and subr_unit allocator in HEAD. Nodes, which need to run periodical jobs were reworked to use mpsafe ng_callout() API. ng_tty(4) node has been overhauled to be compatible with debug.mpsafenet=1. NetGraph ISR and callout are now declared MPSAFE in HEAD.

NetGraph flow control. Two nodes ng_ether(4) and ng_cisco(4) have been improved to emit flow control messages to upstream node, when state of link changes. New link failure detection method have been introduced in ng_one2many(4) node - listening to these flow control messages from downstream.

more SMP testing of many nodes review locking of graph restructuring ng_nat node - an in-kernel natd(8) make ng_bridge(4) multithreaded
drm Eric Anholt anholt@FreeBSD.org ATI R300 DRI project

A DRM update was finally committed to -current on 2005-04-15, after jhb@ did the necessary fix to vm_mmap. New development drivers were added for mach64 and r300 (see URL for info). The nearly-finished code for savage and i915 were also added, but left disconnected from the build. However, the most visible change is likely the support for texture tiling, color tiling, and HyperZ on Radeons, which (with updated userland) likely provide a 50-75% framerate increase in many applications.

Find someone with newbus knowledge to figure out why the i915 won't attach to drmsub0. Finish porting the savage driver. Integrate busdma code from Tonnerre (NetBSD).
Storage driver SMPng locking Scott Long scottl@FreeBSD.org

Several storage drivers have been taken out from under the Giant mutex in the past few months. Thanks to sponsorship from FreeBSD Systems, Inc and ImproWare, AG, Switzerland , the LSI MegaRAID (AMR) and IBM/Adaptec ServeRAID (IPS) drivers have been locked. SMPng locking is a key step in improving the performance of system drivers in FreeBSD 5.x and beyond, and both of these drivers are showing the benefits of this. FreeBSD 5.4 will contains these improvements when it is released.

Similar work is ongoing with the 3WARE Escalade (TWE) driver, and preliminary patches have been made available to testers. I hope to have this driver complete in time for the next FreeBSD release.

Unfortunately, most benefits can only be gained from pure block storage drivers such as the ones mentioned here due to the SCSI subsystem in FreeBSD (CAM) not be locked itself at this time. It is possible, however, to lock a CAM sub-driver and bring the driver's interrupt handler out from under Giant for a partial gain. The Sun FAS366 SCSI driver (ESP) operates like this. Volunteers to lock other drivers or to tackle locking CAM are gladly accepted, so please contact me if you are interested.

Filesystem journalling for UFS Scott Long scottl@FreeBSD.org

It's time to bite the bullet and admit that fsck is no longer scalable for modern storage capacities. While a healthy debate can still be had on the merits and data integrity guarantees of journalling vs. SoftUpdates, the fact that SoftUpdates still requires a fsck to ensure consistency of the filesystem metadata after an unclean shutdown means uptime is lost. While background fsck is available, it saps system performance and stretched the fsck time out to hours.

Journalling provides a way to record transactions that might not have fully been written to disk before the system crashed, and then quickly recover the system back to a consistent state by replaying these transactions. It doesn't guarantee that no data will be lost, but it does guarantee that the filesystem will be back to a consistent state after the replay is performed. This contrasts to SoftUpdates that re-arranges metadata updates so that inconsistencies are minimized and easy to recover from, though recovery still requires the traditional full filesystem scan.

Journalling is a key feature of many modern filesystems like NTFS, XFS, JFS, ReiserFS, and Ext3, so the ground is well covered and the risks for UFS/FFS are low. I'm aware that groups from CMU and RPI have attempted similar work in the past, but unfortunately the work is either very outdates, or I haven't had any luck in contacting the groups. Is this absence, I've decided to work on this project myself in hopes of having a functional prototype in time for FreeBSD 6.0.

The approach is simple and journals full metadata blocks instead of just deltas or high-level operations. This greatly simplifies the replay code at the cost of requiring more disk space for the journal and more work within the filesystem to identify discreet update points. An important design consideration is whether to make the journal data and code compatible with the UFS2 filesystem, or to start a new UFS3 derivative. Since the latter presents a very high barrier to adoption for most people, I'm going to try to make it a compatible option for UFS2. This means that the journal blocks will likely appear as an unlinked file to legacy filesystem and fsck code, and will be treated as such. This will allow seamless fallback to using fsck, though once the unlinked journal data blocks are reclaimed by fsck, the user will have to take action to re-create the journal file again.

One key piece of journalling is ensuring that each journal transaction is fully written to disk before the associated metadata blocks are written to the filesystem. I plan to adopt the buffer 'pinning' mechanism from Alexander Kabaev's XFS work to assist with this. This will allow the journalling subsystem fine-grained control over which blocks get flushed to disk by the buffer daemon without having to further complicate the UFS/FFS code. One consideration is how Softupdates falls into this and whether it is mutually exclusive of journalling or if it can help provide transaction ordering functionality to the journal. Research here is on-going.

Some preliminary work can be found in Perforce in the //depot/user/scottl/ufsj/... tree or at the URL provided. Hopefully this will quickly accelerate.

Status Report for FreeBSD ATA driver project Søren Schmidt sos@FreeBSD.org

ATA mkIII has been committed to -current after a couple of month testing as patches post on -current and 5-stable. I will continue to provide patches for 5-stable for those that need up-to-date ATA support there.

Here a short rehash of what mkIII brings:

ATA is now fully modular so each part can be loaded/unloaded at will to provided the wanted functionality.

Much improved SATA support that support hotplug events on controllers that support it (Promise, SiS, nVidia so far) ie the system will automagically detect when SATA devices come and go and add/delete device entries etc.

Much improved ATA RAID support. The ata-raid driver has been largely rewritten to take advantage of the features the improved infrastructure provides, including composite ATA operations etc. The rebuild functionality has been changed to rebuild on userland reads, so a simple dd of the entire array will get it rebuild (what atacontrol now does). This means that the resources used for this can be better tailored to the actually usage pattern if needed. ATA RAID now supports 10+ different RAID metadata formats, so most BIOS defined ATA RAID arrays can be picked up and used. The number of metadata formats that can be created from within FreeBSD is still limited though and is not a high priority feature right now.

The lowlevel infrastructure of the ATA driver has been refined even further to support "strange" chipsets much more easily and in most case transparent to the higher levels. This to easy ports to new platforms where ATA controllers doesn't necessarily have the x86 legacy layout.

Lots of bug fixes and corrections all over the driver proper. The rework of the infrastructure has revealed bugs and deficiencies that has been fixed in the process of modulerising ATA and making the infrastructure more generic, and hopefully easier to understand.

The work continues to keep ATA on top of new chipsets and other advancements in the ATA camp. SATA ATAPI support is in the works and so are support for NCA/TCQ (tags). Donations of unsupported hardware is the way to get it supported as I'm way out of my budget for new hardware for the next decade or so according to my wife :)

Lots of testing wanted, especially SATA and RAID support
GSHSEC - GEOM class for handling shared secret Pawel Jakub Dawidek pjd@FreeBSD.org Manual page.

GSHSEC is a GEOM class used for handling shared secret data between multiple GEOM providers. For every write request, SHSEC class splits the data using XOR operation with random data, so N-1 providers gets just random data and one provider gets the data XORed with the random data from the other providers. All of the configured providers must be present in order to reveal the secret. The class is already committed to HEAD and RELENG_5 branches.

ATAPI/CAM Thomas Quinot thomas@FreeBSD.org

ATAPI/CAM integration with the new ATA (mkIII) framework is now completed. ATAPI/CAM is now available as a loadable module (atapicam.ko). It is also independent from the native ATAPI drivers again, as was the case before mkIII.

Thanks to Scott Long and Søren Schmidt for their participation in the integration work.

twa driver Vinod Kashyap vkashyap at amcc.com source code source code

A newly re-architected twa(4) driver was committed to 6 -CURRENT on 04/12/2005. Highlights of this release are:

  1. The driver has been re-architected to use a "Common Layer" (all tw_cl* files), which is a consolidation of all OS-independent parts of the driver. The FreeBSD OS specific portions of the driver go into an "OS Layer" (all tw_osl* files). This re-architecture is to achieve better maintainability, consistency of behavior across OS's, and better portability to new OS's (drivers for new OS's can be written by just adding an OS Layer that's specific to the OS, by complying to a "Common Layer Programming Interface (CLPI)" API. If there's interest in porting the 3ware driver to any other OS, you may contact ctchu at amcc.com to get a copy of the CLPI specifications.
  2. The driver takes advantage of multiple processors. It does not need to be Giant protected anymore.
  3. The driver has a new firmware image bundled, the new features of which include Online Capacity Expansion and multi-lun support, among others. More details about 3ware's 9.2 release can be found here: http://www.3ware.com/download/Escalade9000Series/9.2/9.2_Release_Notes_Web.pdf
IPv6 Support for IPFW Brooks Davis brooks@FreeBSD.org

In April 18th, I committed support for IPv6 to IPFW. This support was written by two student of Luigi's, Mariano Tortoriello and Raffaele De Lorenzo. I updated it to use PFIL_HOOKS and fixed a few minor issues. As of this commit, IP6FW should be considered deprecated in favor of IPFW. It should be possible to MFC this change to 5.x, but that is not currently planned.

Testing. IP6FW to IPFW migration guide. Patches relative to 5-STABLE.
Removable interface improvements. Brooks Davis brooks@FreeBSD.org

This project is an attempt to clean up handling of network interfaces in order to allow interfaces to be removed reliably. Current problems include panics if Dummynet is delaying packets to an interface when it is removed.

I am currently working to remove struct ifnet's from device driver structures to allow them to be managed properly upon device removal. I believe I have removed all known instances of casting a struct ifnet pointer to something else (except that that are just magic values and not real struct ifnets.) I will begin committing these changes to the tree shortly and will then add a new function if_alloc() that will allocate struct ifnets. if_detach() will be modified to destroy them.

cpufreq Nate Lawson njl cpufreq man page

The cpufreq project was committed to 6-CURRENT in early February and has undergone bugfixes and updates. It will soon be MFCd to 5-STABLE.

The cpufreq driver provides a unified kernel and user interface to CPU frequency control drivers. It combines multiple drivers offering different settings into a single interface of all possible levels. Users can access this interface directly via sysctl(8), by indicating to power_profile that it should switch settings when the AC line state changes, or by using powerd(8).

For example, an absolute driver offering frequencies of 1000 Mhz and 750 Mhz combined with a relative driver offering settings of 100% and 50% would result in cpufreq providing levels of 1000, 750, 500, and 375 Mhz.

Colin Percival helped with powerd(8), which provides automatic control of CPU frequencies. The adaptive mode is especially interesting since it attempts to respond to changes in system load while reducing power consumption.

Current hardware drivers include acpi_perf (ACPI CPU performance states), est (Intel Enhanced SpeedStep for Pentium-M), ichss (Intel's original SpeedStep for ICH), and powernow (AMD Powernow! K7 and K8 support). Other drivers for relative hardware include acpi_throttle (ACPI CPU throttling) and p4tcc (Pentium 4 Thermal Control Circuitry)

Thanks to Bruno Ducrot for the powernow driver, Colin Percival for the est driver, and the many testers who have sent in feedback.

We'd appreciate someone with a Transmeta CPU converting the existing longrun driver to the cpufreq framework. It would also be good if someone wrote a VIA Longhaul driver. See the Linux arch/i386/kernel/cpu/cpufreq directory for examples. Various other architectures, including ARM, have CPU power control that could be implemented as a cpufreq driver. The powerd(8) algorithm is rather simple and we'd appreciate more help in testing it and alternative algorithms with various workloads. The -v flag causes powerd to report frequency transitions and print a summary of total energy used upon termination. This should help testers profile their algorithms.
Move ARP out of routing table Qing Li qingli@FreeBSD.org containing the patch

I have finished the basic functionality for both IPv4 and IPv6. The userland utilities ("arp" and "ndp") have been updated. I have tested the changes with "make buildworld". I have been testing the new code in a production environment and things appear to be stable. Gleb Smirnoff (glebius@FreeBSD.org) has provided review comments and I have incorporated these feedback into the patch. I have discussed the IPv6 changes with two of the core KAME developers during the last IETF meeting in March 2005. They indicated that these changes may result in divergence from the KAME project but that is not necessarily a bad thing.

I am waiting for review feedback from my mentor Andre. I need locking experts to help me fix my giant-lock shortcut. I am hoping to send out the code for wider review soon.
Support for telephone hardware (aka Zaptel) Maxim Sobolev sobomax@FreeBSD.org Oleksandr Tymoshenko gonzo@pbxpress.com Max Khon fjoe@FreeBSD.org

During the last 2 months lot of progress has been made. Existing support for TDM400 (FXO/FXS) has been significantly improved. Drivers for PRI and BRI cards have been added and now should be considered beta-quality.

More testing of PRI/BRI drivers. Add support for channelized DS3 card(s).
FreshPorts Dan Langille dan@langille.org FreshPorts

This is the first status report for FreshPorts. FreshPorts started in early 2000 and now contains over 170,000 commits. FreshPorts is primarily concerned with port commits, but actually processes and records all commits to the FreeBSD source tree. Its sister site, FreshSource uses the same database as FreshPorts but has a wider reporting scope. In recent months, FreshPorts has been enhanced to process and include VuXML information. In addition, RESTRICTED and NO_CDROM have been added to list of things that FreshPorts keeps track of. For unmaintained ports, we recently added this message:

There is no maintainer for this port.
Any concerns regarding this port should be directed to the FreeBSD Ports mailing list via ports@FreeBSD.org

FreshPorts, with direct and indirect support from the FreeBSD community, continues to evolve and to provide a great tool for users and developers alike.

Provide a copy/paste method for updating watch lists improvement of query times for "People watching this port, also watch" pagination of commits within a port pagination of watch lists create an RSS feed for individual watch lists
BSDCan Dan Langille dan@langille.org

BSDCan made a strong debut in 2004 . The favorable reception gave us a strong incentive for 2005 . We have been rewarded with a very interesting program and a higher rate of registrations. Percentage-wise, we have more Europeans than last year as they have decided that the trip across the Atlantic is worth taking. We know they won't be disappointed. See you at BSDCan 2005!

volunteers needed for the conference
Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD ports collection FreeBSD ports monitoring system The FreeBSD Ports Management Team

As this report was being written, the 5.4 release was ongoing.

A new charter for the Ports Management (portmgr) team was approved by core and has been posted at the URL above. In addition, two other new pages describe the policies of the team, and the range of QA activities both during and between releases.

Due to being absent from email discussions for some time, Oliver Eikemeier (eik) was moved to non-voting status on portmgr.

We have added several new and very active committers recently; this is helping us to keep the PR count low even with the large numbers of new ports that have been added.

Several more iterations of infrastructure changes have been tested on the cluster and committed; see /usr/ports/CHANGES for details.

Updates have occurred to x.org, GNOME, KDE, and perl.

There have been some updates to the Porter's Handbook, but more sections are still in need of updates to include recent changes in practices.

The ports collection now contains almost 12,750 ports.

Further progress has been made in cracking down on ports that install files outside the approved directories and/or do not deinstall cleanly (see "Extra files not listed in PLIST" on pointyhat ) and this will remain a focus area. We appreciate everyone who has sent in PRs or committed fixes. Demand for new features and revisions for bsd.port.mk is still very high and the portmgr team is trying to work through them all. We still have a large number of PRs that have been assigned to committers for some time (in fact, they constitute the majority). One goal of portmgr in the coming months is to try to reduce this number, and we would like to ask our committers to help us out as much as possible.
PowerPC Port Peter Grehan grehan@FreeBSD.org

Progress continues. X.Org 6.8.1 server has been up and running on a number of different Macs, and the work is being merged into 6.8.2. There have been successful installs on Mac Minis

OpenBSD packet filter - pf Max Laier mlaier@FreeBSD.org pf4FreeBSD Homepage pf 3.7 patches

OpenBSD is about to release version 3.7 . There are patches available to catch up with the development done in OpenBSD 3.6 and 3.7. These patches are in an early stage, but ready for testing, please help.

Otherwise there was not much activity on pf, as it already is quite stable. Other work, such as CARP and if_bridge are having impact on pf in FreeBSD however, please see the respective reports.

Alpha/Betatesting of the 3.7 import Testing with if_bridge
libthread David Xu davidxu@FreeBSD.org

libthread is a pure 1:1 threading library, it had stayed in my perforce branch for a long time, recent it was imported into source tree and replaced libthr. The purpose of the work is to improve 1:1 threading on FreeBSD, the library is designed in mind that simplest is best, currently it can run almost all of the applications libpthread can run, but gives you better SMP performance. The library size is smaller than libpthread.

Currently it supports i386, AMD64, sparc64 and ia64 and may support alpha, powerpc and arm. I didn't do many tests on sparc64 and ia64, I only tested it on FreeBSD cluster machines. For i386, I always used LDT, but know that Peter committed GDT code, and now there is no 8191 threads limitation anymore.

libthread_db was updated to support debugging the new libthr. It is an assistant library used by gdb to debug threaded process, that understands internal detail of thread libraries. I have improved it a bit to support event reports for libthr, currently it can report thread creation and death events. That means a thread that was created and died will be reported to the user regardless if you are tracking it or not.

I am working on thread creation performance, currently it needs considerable number of libc functions and syscalls to create a thread, I would like to introduce a syscall to create a thread in atomically. That means one syscall will setup thread entry, tls, and signal mask and PTHREAD_SCOPE_PROCESS/SYSTEM; in future maybe even CPU affinity masks, when userland entry code is executed, the thread is already fully setup. Process shareable synchronization objects. In Current FreeBSD does not support this specification. The idea about the shareable mutex and others is like other systems did, one can use mmap() to create a shared memory page, and put a pthread synchronization object in the page, multiple processes use the shared object to control resource access. I am not working on it, if someone is interested, please let me know.
Coverity Code Analysis Sam Leffler sam@FreeBSD.org

There has been an ongoing effort to review the kernel source code using Coverity's source code analysis tools (http://www.coverity.com). These tools check for a variety of problems such as null pointer dereference, use-after-free of allocated variables, invalid array references, etc. This work is a joint project between FreeBSD and Coverity.

Two passes have been completed over the 6-current kernel source code base and all significant problems have been corrected. These runs were done in February and March of this year. A few reports of minor problems await response from outside groups and will be resolved in time for the first 6.x release. Another analysis run over the kernel will happen soon. We are looking for a way to use these tools on a regular basis as they have been helpful in improving the code base.

Thanks to Coverity for their help and especially Ted Unangst. Several developers have been especially helpful in resolving reports: Poul-Henning Kamp, David Schultz, Pawel Jakub Dawidek, George V. Neville-Neil, and Matthew Dodd.

Wireless Networking Support Sam Leffler sam@FreeBSD.org

Several new drivers by by Damien Bergamini were brought into the tree: iwi, ipw, ral, and ural.

WPA-PSK support for the ndis driver was contributed by Arvind Srinivasa.

A new tx rate control algorithm for the ath driver was contributed by John Bicket. It will become the default algorithm shortly.

Work on multi-bss support is going on outside the cvs tree. A presentation on this work will be given at BSDCan 2005 and the slides for the talk will be made available after.

Drivers other than ath and ndis need updates to support the new security protocols. hostapd needs work to support the IAPP and 802.11i preauthentication protocols (these are simple conversions of existing Linux code). The OpenBSD dhclient program has been ported but needs a developer that will maintain it once it is brought into cvs.
Many subdirs for UFS David Malone dwmalone@FreeBSD.org Thread on freebsd-fs

I'm currently looking at the limit on the number of subdirectories a directory can have in UFS. There is currently a limit of 32K subdirectories because of the 16 bit link count field in both struct stat and the on-disk inode format. The thread above shows that dirhash provides acceptable performance for directories with 100k subdirectories using a prototype patch. Two options for allowing many subdirectories seem to exist: changing the link counting scheme for directories and expanding the link count field. The prototype patch implements the first scheme and there are plans to investigate the second scheme (which may require an ABI change).

IMUNES - a FreeBSD based kernel-level network topology emulator Miljenko Mikuc miljenko@tel.fer.hr Marko Zec zec@tel.fer.hr

IMUNES is a scalable kernel-level network topology emulator based on FreeBSD. In IMUNES each virtual node operates on its private instance of network stack state variables, such as routing tables, interface addresses, sockets, ipfw rules etc. Most if not all existing FreeBSD application binaries, including routing protocol daemons such as quagga or XORP, can run unmodified within the context of virtual nodes with no noticeable performance penalty. Complex network topologies can be constructed by connecting the virtual nodes through netgraph-based link-layer paths. A GUI tool allows for simple and intuitive network topology specification, deployment and management. The current version of IMUNES is based on FreeBSD 4.11-RELEASE and supports IPv4.

XenFreeBSD - FreeBSD on Xen Kip Macy kmacy@fsmware.com Xen project page Xen changeset logs

FreeBSD 5.3 runs on the stable and the development branches of xen and is now checked into both trees. Over the next couple of weeks I will be adding improvements for better batching of page table updates and SMP support.

FreeBSD support for running as Domain 0, i.e. running as the hosting operating system. FreeBSD support for VM checkpoint and migration.
Dingo George Neville-Neil gnn@neville-neil.com Project page (out of date) Blog covering test framework

On the protocol conformance tool I have finally made some progress getting a scriptable packet library using libnet, and SWIG. This will hopefully become a port that can then be used to do conformance testing on protocol stack changes. Qing Li has separately taken up the ARP rewrite and that will be taken out of the Dingo project pages.

Many :-)
Interrupt Latency Warner Losh imp@FreeBSD.org

I've setup a test system to measure interrupt latency on FreeBSD 5.3 and current. So far I've measured the baseline latency for a 300MHz embedded cyrix based single board computer. I've tried a number of different strategies to optimize the interrupt path. Most of these strategies resulted in some improvement of the time it takes to get from the start of the interrupt servicing to the driver's ISR. These improvements turned out to be about 1-2% of the processing times on this single board computer, but a wash on faster machines. However, the time between when the interrupt should happen, and when FreeBSD starts to service the interrupt is the dominant factor in these measurements. Despite the fact that these are fast interrupt handlers (so the scheduler is out of the loop), I routinely see average latencies of 18us, with large variations (on the order of 5us standard deviation).

I need to measure the latencies with 4.x and current to characterize the differences more precisely. I'm especially interested in the effects on interrupt latency that the elimination of mixed mode will cause. I need to characterize different parts of our ISR routines to see if some of the variation I've seen so far can be reduced by improved coding techniques. I need to re-run my tests with 5.4 and summarize my results in a paper.
Infrastructure Cleanup Warner Losh imp@FreeBSD.org Takahashi Yoshihiro nyan@FreeBSD.org

Unglamorous cleanup of the code base continues. The focus of recent efforts have been to reduce the number of machine #ifdefs that are in the machine independent code. In addition, we're also trying to increase code sharing between pc98 and i386 ports and reduce the number of #ifdef PC98 instances in the tree.

In addition, a number of cleanup tasks are underway for different parts of the kernel that are more complicated than necessary. Recently, the pccard code's allocation routines were simplified to reassign ownership of resources more directly than before. The search is on for other areas that can benefit from cleanup.

On pc98, there's no such thing as an ISA bus. It is desirable to move to having cbus appear in the probe messages. This would also allow for additional segregation of pc98 specific code in the drivers and eliminate many ifdefs. Ideally, isa and cbus would share a common newbus ancestor class so their similarities can be exploited (they both have PNPBIOS enumeration methods, for example). cbus devices can have complicated resources. There's support for vectors of resources. Yet there's no support for populating a vector of resources from the plug and play information. Doing so would help the complex world of pc98 a lot, and the odd edge cases in i386 (floppy, ata) a little. The hints mechanism provides a way to associate hardware with drivers and resource that would otherwise be completely unknown to the system. A refinement in the hints mechanism to allow matching of driver instances to resources is desirable. This would allow one to hardwire sio0 to 0x2f8, even when the serial device in the plug and play resource list (or acpi resource list) is listed second. A further refinement could also be wiring sio0 to "port B" as defined by acpi or some other enumeration method. Chances are good that these seemingly related concepts may need separate implementations due to the decision points for unit assignment. Pccard, cardbus and usb probe their devices after interrupts are enabled. It would be desirable to hook into new kernel APIs to allow the mounting of root to be put off until those systems know that they are done with their initial probe of the devices present at boot.
FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In January 2005, Warner Losh (Security Officer Emeritus) stepped down from the FreeBSD Security Team in order to better devote his time to other projects. In March, Colin Percival was named as a second Deputy Security Officer, joining Dag-Erling Smørgrav in that position. The current Security Team membership is published on the web site.

So far in 2005, four security advisories have been issued concerning problems in the base system of FreeBSD, three of which were specific to FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and the Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection. As of April 17, 127 entries have been added in 2005 bringing the FreeBSD VuXML file up to a total of 422 entries.

In the past months both the VuXML web site and the FreshPorts VuXML integration have been improved. The VuXML web site has had a face lift and, among other things, each package now has a separate web page which lists all documented vulnerabilities for the particular package. CVE information is now also included directly on the VuXML web site.

Finally, the first few months of 2005 also saw FreeBSD 4.8 -- the first release to be offered "extended support" -- reach its designated End of Life. The currently supported releases are FreeBSD 4.10, 4.11, and 5.3.

FreeBSD Release Engineering RE Team re@FreeBSD.org

FreeBSD 4.11, the final formal release of the 4.x series, was released on 25 Jan 2005. Many thanks to the all of the developers and users over the past 5 years who made it successful. While no more releases are planned, the security team will continue to support it through security update patches until 2007. Developers are also free to commit bug fixes and low-risk features to the RELENG_4 branch for the foreseeable future.

FreeBSD 5.4 is going through its final release candidate stages and is expected to be released in late April. Its focus is mostly bug fixes and minor feature and performance improvements, so it is an excellent target for those looking to upgrade from previous versions or to give FreeBSD a try for the first time. FreeBSD 5.5 will be release in about 4-6 months after 5.4.

FreeBSD 6.0 is rapidly approaching also. In contrast to FreeBSD 5.0, the goal is to take a more incremental approach to major changes, and not wait for years to get as many features in as possible. FreeBSD 6.0 will largely be an evolutionary change from the 5.x series, with the largest changes centered around multi-threading and streamlining the filesystem and device layers. Feature freeze and code freeze for 6.0 are coming up in May and June, and we hope to have 6.0 stable and ready for release in July or August.

The release engineering team has also started doing monthly informal snapshots of the 6-CURRENT and 5-STABLE trees. These are intended to increase the exposure of new features and get more users involved in testing and providing feedback. Snapshots can be found at http://www.freebsd.org/snapshots.

New Wireless Drivers Damien Bergamini damien@FreeBSD.org

Four new wireless drivers were imported:

ipw : driver for Intel PRO/Wireless 2100 adapters (MiniPCI).
iwi : driver for Intel PRO/Wireless 2200BG/2225BG/2915ABG adapters (PCI or MiniPCI).
ral : driver for Ralink RT2500 wireless adapters (PCI or CardBus).
ural : driver for Ralink RT2500USB wireless USB 2.0 adapters.

The ipw and iwi drivers require firmwares to operate.
These firmwares can't be redistributed with the base system due to license restrictions.
See firmware licensing terms here: http://ipw2100.sourceforge.net/firmware.php?fid=4 .

Ports which include the firmware images as well as the firmware loader are being worked on.
A list of adapters supported by ral and ural can be found here: http://ralink.rapla.net/ .

Create ports for ipw and iwi firmwares. Add IBSS support to iwi. Add WPA (802.11i) support to ipw and iwi. Add hardware encryption (WEP, TKIP and CCMP) support in ral and ural. Add automatic rate adaptation support to ural.
diff --git a/en/news/status/report-2005-03-2005-06.xml b/en/news/status/report-2005-03-2005-06.xml index 23b8f9d715..2a4360a2b5 100644 --- a/en/news/status/report-2005-03-2005-06.xml +++ b/en/news/status/report-2005-03-2005-06.xml @@ -1,2173 +1,2173 @@ March-June 2005
Introduction

The second quarter of 2005 has again been very exciting. The BSDCan and MeetBSD conferences were both very interesting and and the sources of very good times. I highly recommend attending them again next year.

The Google Summer of Code project has also generated quite a bit of excitement. FreeBSD has been granted 19 funded mentorship spots, the fourth most of all of participating organizations. Projects being worked on range from UFS Journaling to porting the new BSD Installer to redesigning the venerable www.FreeBSD.org website. We are quite pleased to be working with so many talented students, and eagerly await the results of their work. More information and status can be found at the Wiki site at http://wiki.freebsd.org/moin.cgi/SummerOfCode2005 .

The FreeBSD 6.0 release cycle is also starting up. The purpose of quickly jumping from 5.x to 6.0 is to reduce the amount of transition pain that most users and developers felt when switching from 4-STABLE to 5.x. 6.0 will feature improved performance and stability over 5.x, experimental PowerPC support, and many new WiFi/802.11 features. The 5.x series will continue for at least one more release this fall, and will then be supported by the security team for at least 2 years after that. We encourage everyone to give the 6.0-BETA snapshots a try and help us make it ready for production. We hope to release FreeBSD 6.0 by the end of August.

Thanks again to everyone who submitted reports, and thanks to Max Laier for running the show and putting the reports together. Enjoy reading!

soc Google summer of code proj Projects doc Documentation kern Kernel net Network infrastructure bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous BSDCan Dan Langille dan@langille.org

The second annual BSDCan conference was well presented, well attended, and everyone went away with good stories to tell. If you know anything that attended, get them to tell you what they did, who they met with, and talks they listened to.

We had 197 people from 15 different countries. That's a strong turnout by any definition.

We'll be adding more people to the program committee for BSDCan 2006. This job involves prodding and poking people from your respective projects. You get them to submit papers. There are a lot of very interesting projects out there and not all of them submit a paper.

If you know someone doing interesting work, please let me know and urge them to start thinking about BSDCan 2006.

Integrate the BSD Installer into FreeBSD Andrew Turner soc-andrew@FreeBSD.org The BSD Installer BSD Installer Wiki page BSD Installer Perforce tree

Progress towards integrating the BSD Installer for Google's Summer of Code is coming along nicely. The installation CD will boot to multi-user mode and run both the front and back ends. It can then partition a hard drive, install the base distribution and make the disk bootable.

Test in non-i386 Investigate installing from other media Many more tasks
FreshPorts Dan Langille dan@langille.org

The following new features have been added to FreshPorts:

I've noticed that FreshPorts is incorrectly reporting vulnerabilities under a very specific situation . The fix is sitting in BETA, waiting to be moved to production. I've been working on added Last-Modified to the headers. At present, there are none. Most of the pages on the BETA website have been completed. I need to move this to production soon. Customized news feeds are in the works. You'll be able to create a news feed for each of your watch lists. This work is contingent upon finishing the Last-Modified headers.
Fundraising - TCP & IP Routing Optimization Andre Oppermann andre@freebsd.org

The TCP code in FreeBSD has evolved significantly since the fork from 4.4BSD-Lite2 in 1994 primarily due to new features and refinements of the TCP specifications.

The TCP code now needs a general overhaul, streamlining and cleanup to make it easily comprehensible, maintainable and extensible again. In addition there are many little optimizations that can be done during such an operation, propelling FreeBSD back at the top of the best performing TCP/IP stacks again, a position it has held for the longest time in the 90's.

This overhaul is a very involved and delicate matter and needs extensive formal and actual testing to ensure no regressions compared to the current code. The effort needed for this work is about three man-month of fully focused and dedicated time. To get it done I need funding to take time off my day job and to dedicate me to FreeBSD work much the way PHK did with his buffer cache and vnode rework projects.

I've got the opportunity to work up to three man-month exclusively full-time on FreeBSD during the second half of 2005. That means up to 720 hours of full-steam coding (at 60 hours/week)! I will work as much time as the fundraise provides.

I need to raise enough money for each month from donations from the FreeBSD community to cover my fixed cost of living, office and associated overhead. These fixed cost amount to US$6,300/month (EUR5,200 or CHF8,000). Yes, Switzerland is not the cheapest place to live. :)

A detailed description of the tasks involved and the code I will write is on my FreeBSD website; Follow the link above.

Raise enough money to get all the almost finished TCP and IP code into the tree.
CPU Cache Prefetching Andre Oppermann andre@freebsd.org

Modern CPU's can only perform to their maximum if their working code is in fast L1-3 cache memory instead of the bulk main memory. All of today's CPU's support certain L1-3 cache prefetching instructions which cause data to be retrieved from main memory to the cache ahead of the time that it is already in place when it is eventually accessed by the CPU.

CPU Cache Prefetching however is not a silver bullet and has to be used with extreme care and only in very specific places to be beneficial. Incorrect usage can lead to massive cache pollution and a drop in effective performance. Correct and very carefully usage on the other can lead to drastic performance increases in common operations.

In the linked patch CPU cache prefetching has been used to prefetch the packet header (OSI layer 2 to 4) into the CPU caches right after entering into the network stack. This avoids a complete CPU stall on the first access to the packet header because packets get DMA'd into main memory and thus never are already pre-cache in the CPU caches. A second use in the patch is in the TCP input code to prefetch the entire struct tcpcb which is very large and used with a very high probability. Use in both of these places show a very significant performance gain but not yet fully quantified.

The final patch will include documentation and a guide to evaluate and assess the use of CPU cache prefetch instructions in the kernel.

Need funding, see "Fundraising - TCP & IP Routing Optimization".
TCP Reassembly Rewrite and Optimization Andre Oppermann andre@freebsd.org

Currently TCP segment reassembly is implemented as a linked list of segments. With today's high bandwidth links and large bandwidth*delay products this doesn't scale and perform well.

The rewrite optimizes a large number of operational aspects of the segments reassembly process. For example it is very likely that the just arrived segment attaches to the end of the reassembly queue, so we check that first. Second we check if it is the missing segment or alternatively attaches to the start of the reassembly queue. Third consecutive segments are merged together (logically) and are skipped over in one jump for linear searches instead of each segment at a time.

Further optimizations prototyped merge consecutive segments on the mbuf level instead of only logically. This is expected to give another significant performance gain. The new reassembly queue is tracking all holes in the queue and it may be beneficial to integrate this with the scratch pad of SACK in the future.

Andrew Gallatin was able to get 3.7Gb/sec TCP performance on dual-2Gbit Myrinet cards with severe packet reordering (due to a firmware bug) with the new TCP reassembly code. See second link.

Need funding, see "Fundraising - TCP & IP Routing Optimization".
TTCPv2: Transactional TCP version 2 Andre Oppermann andre@freebsd.org

The old TTCP according to RFC1644 was insecure, intrusive, complicated and has been removed from FreeBSD >= 5.3. Although the idea and semantics behind it are still sound and valid.

The rewrite uses a much easier and more secure system with 24bit long client and server cookies which are transported in the TCP options. Client cookies protect against various kinds of blind injection attacks and can be used as well to generally secure TCP sessions (for BGP for example). Server cookies are only exchanged during the SYN-SYN/ACK phase and allow a server to ensure that it has communicated with this particular client before. The first connection is always performing a 3WHS and assigning a server cookie to a client. Subsequent connections can send the cookie back to the server and short-cut the 3WHS to SYN->OPEN on the server.

TTCPv2 is fully configurable per-socket via the setsockopt() system call. Clients and server not capable of TTCPv2 remain fully compatible and just continue using the normal 3WHS without any delay or other complications.

Work on implementing TTCPv2 is done to 90% and expected to be available by early February 2005. Writing the implementation specification (RFC Draft) has just started.

Need funding, see "Fundraising - TCP & IP Routing Optimization".
Network Interface API Cleanup Anders Persson soc-anders@freebsd.org

The goal of this project is to review the network interface API and try to remove references to kernel-only data structures by removing the use of libkvm and instead rely on other interfaces to provide information. If there are no adequate interfaces, they would be created.

Currently netstat is being reviewed and parts of it have been modified to use sysctl rather than libkvm to provide the information.

A big thank you to Brooks Davis for mentoring :-)

FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In May 2005, Remko Lodder joined the FreeBSD Security Team, followed by Christian S.J. Peron in July 2005. In the same time period, Gregory Shapiro and Josef El-Rayes resigned from the team in order to devote their time to other projects. The current Security Team membership is published on the web site.

In the time since the last FreeBSD status report, twelve security advisories have been issued concerning problems in the base system of FreeBSD; of these, six problems were in "contributed" code, while five problems were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and the Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 97 new entries have been added, bringing the total up to 519.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.10, FreeBSD 4.11, FreeBSD 5.3, and FreeBSD 5.4. Their respective End of Life dates are listed on the web site.

Dingo Several somewhat out of date

Currently trying to restart bits of the project. Cleaning up the p4 branch. Recently more people have volunteered to help as well. Brooks Davis has completed removing the ifnet from the softc.

See the web page.
The FreeBSD Dutch Documentation Project Remko Lodder remko@FreeBSD.org Siebrand Mazeland siebrand.mazeland@xs4all.nl Rene Ladan r.c.ladan@student.tue.nl The Dutch Handbook The Dutch Project Site The Dutch Preview Documentation The Dutch FreeBSD Flyer

The FreeBSD Dutch Documentation Project is a ongoing project in translating the english documentation to the Dutch language. Currently we are almost done with the FreeBSD Handbook. Finishing the Handbook is our first priority, and we could use your help. Please contact Siebrand or myself if you want to helpout. After the handbook we will focus on other documents as well, so feel free to help us there as well

FreeBSD Handbook translation. Finish the translation from English to Dutch FreeBSD Handbook review. Finish the review of the translated documents FreeBSD Articles. Start translating the articles from English to the Dutch Language FreeBSD www. Start translating the website from English to the Dutch Language The rest of the FreeBSD Documents. Start translating them from English to the Dutch Language.
Transparent support for superpages in the FreeBSD Kernel Alan L. Cox alc@cs.rice.edu Olivier Crameri olivier.crameri@epfl.ch

We are currently working on an updated implementation of Juan Navarro's transparent support for superpages in FreeBSD.

The idea is to take advantage of the architectural support for big memory pages (superpages) by using a reservation mechanism allowing us to transparently promote groups of base pages into superpages and demote superpages into several smaller superpages or base pages.

The advantage of using superpages vs. base pages is to significantly improve the TLB coverage of the physical memory, thus improving the peformance by reducing the number of TLB misses.

The modification of the FreeBSD kernel that we are working on involves the replacement of the current list based page allocation mechanism with a system using a buddy allocator to reserve groups of pages for a memory object. The promotion and demotion of the pages occur directly within the pmap module.

The former implementation was supporting the alpha and IA64 architectures. We are adding the support for amd64. We currently have an almost complete implementation. Once completed we will make a performance study with a particular emphasis on TLB and cache misses.

Wireless Networking Support Sam Leffler sam@freebsd.org

A lot of bugs were fixed in preparation for the 6.0 release. 6.0 will be the first release to include full WPA support (both supplicant and authenticator).

A presentation on the forthcoming multi-bss support was given at BSDCan 2005. The slides from the talk are available at http://www.freebsd.org/~sam/BSDCan2005.pdf. The plan is to commit this work to HEAD after 6.0 is released which means the first release that will have it is 7.0.

hostapd needs work to support the IAPP and 802.11i preauthentication protocols (these are simple conversions of existing Linux code).
FreeSBIE toolkit integration Dario Freni saturnero@freesbie.org FreeSBIE main site My page on FreeBSD wiki

My Summer of Code project is reengineering and rewrite of FreeSBIE toolkit, in order to include it in the source tree. Let's call it FreeSBIE 2

Before being accepted, I worked hard on the FreeSBIE 1 toolkit to make it more flexible. It now supports amd64 and PowerPC architecture. The built filesystem can now boot from almost every media, from DVD to compact flash or hard disk. Also on i386 it is now possible to include the BSD Installer on the livefs. We've received reports that our toolkit is successfully used for the install CD of pfSense and PC-BSD projects.

My future goals are to make the toolkit even more flexible, capable to build embedded images (like nanoBSD) or big Live-DVD systems, depending on user's choice, to support all the architectures supported by FreeBSD and to write a set of tools for making a netboot server with a FreeSBIE image.

PowerPC Port Peter Grehan grehan@FreeBSD.org FreeBSD/PPC Platform page.

Florent Thoumie has updated the massively out-of-date platform page. Work continues to creating a 6.0 release of the PowerPC port.

GEOM Gate rewrite Pawel Jakub Dawidek pjd@FreeBSD.org

GGATE is a mechanism for exporting storage devices over the network. It was reimplemented to be much faster and to handle network failures better. The ggatec uses two threads now: sendtd, which takes I/O request from the kernel and sends it to ggated; recvtd, which receives finished requests and forwards them to the kernel. The ggated uses three threads: recvtd, which receives I/O requests from ggatec; disktd, which executes I/O requests (reads or writes data); sendtd, which sends finished requests to ggatec. The new ggate has been committed to 6.x.

The work was sponsored by Wheel Sp. z o.o.

gjournal Ivan Voras ivoras@gmail.com gjournal wiki

The schedule (as stated on the wiki page) is honoured, which means that the development has started, but there's not enough code for testing. Many details have been thought-out and the development is ongoing.

FreeBSD Summer of Code Summer of Code Mentors soc-mentors@FreeBSD.org

Google has generously funded 19 students to spend the summer working on FreeBSD related projects. Each student is working with one or more mentors to learn about how open source software development is done with FreeBSD. This development work is happening in the Perforce repository as //depot/projects/soc2005. This tree will soon be exported via CVSup -- check the Wiki for more information.

gvinum 'move', 'rename' Chris Jones soc-cjones@freebsd.org gvinum 'move', 'rename' wiki entry

With the releases of FreeBSD 5.3 and 5.4, FreeBSD has been moving away from "old-style" vinum towards GEOM-enabled gvinum for logical volume management. While gvinum is a mostly feature-complete replacement for vinum, it does not implement the 'move' or 'rename' verbs which are rather useful when reorganizing one's volume layout, the alternative being a tedious process of deleting and recreating subdisks, plexes, or volumes. Additionally, gvinum is nearly completely undocumented, which contributes to the perception of gvinum as an unfinished project.

I'm working on implementing 'move' (being able to move a subdisk from one drive to another) and 'rename' (being able to rename an subdisk, plex, volume, or drive), as well as on documentation for gvinum.

So far, I've come up with a plan of attack with le@ and phk@, and implemented the bulk of the userland code for gvinum 'move' and 'rename'. Still to come are the kernel-side code and documentation.

'move' and 'rename' userland implementation 'move' and 'rename' kernel-side implementation Outline new handbook section and man page Implement new handbook section and man page
if_bridge Andrew Thompson thompsa@freebsd.org

This was committed to current on 5 Jun 2005 and will first appear in the 6.0 release, thanks to everyone who tested. Recent improvements include:

There is ongoing work to bring in some of the advanced features from OpenBSD such as IPSec bridging. People are encouraged to use if_bridge and report any problems to the mailing lists.

IPv6 Support for IPFW Max Laier mlaier@freebsd.org Brooks Davis brooks@freebsd.org

At the developer summit before BSDCan it was decided to remove IP6FW from the tree as it has a couple of problems. The most pressing one is the lack of synchronization and thus the need for debug.mpsafenet=0. As a replacement Brooks Davis has imported patches to teach the existing and well-locked IPFW2 code about IPv6.

Since the initial import I have added some features required to manage IPv4 and IPv6 in a single ruleset. I have also extended existing opcodes to work with IPv6. There are, however, still some opcodes that do not work with IPv6 and most of the more exotic ones haven't been tested. As long as IPFW2+v6 does not provide enough functionality and stability to work as a drop-in replacement for IP6FW, we won't remove IP6FW.

In order to get the new code to that point we really need more testers with real world IPv6 deployment and interest in IPFW+v6. The lack thereof (I haven't received a single answer on my requests to various FreeBSD mailing lists) has made it hard to progress.

Properly implement O_REJECT for IPv6 Maybe implement O_LOG Test new(er) IPFW2 opcodes with IPv6 Test Test Test
launchd(8) for FreeBSD R. Tyler Ballance tyler@tamu.edu Wiki Project Page Apple's launchd(8) man page

So far progress has been slow, the autoconf build system has been removed from all of the launchd(8) code, and launchctl(1) is building and semi-functional on FreeBSD-CURRENT (i.e. CoreFoundation hooks have been removed).

I'm currently working on porting "liblaunch" which is the core backend to both launchd(8) (the actual daemon) and launchctl(1), there are some mach/xnu specific hooks and calls that need to be remove and either reimplemented or worked around.

We're also waiting on a response from Apple on a possible BSD-licensed version of the code (it's currently under the APSL) Progress is slow, but steady.

Removable interface improvements Brooks Davis brooks@FreeBSD.org

This project is an attempt to clean up handling of network interfaces in order to allow interfaces to be removed reliably. Current problems include panics if Dummynet is delaying packets to an interface when it is removed.

I have removed struct ifnet's and layer two common structures from device driver structures. This will eventually allow them to be managed properly upon device removal. This code has been committed and will appear in 6.0. Popular drivers have generally been fixed, but more testing is needed.

OpenBSD dhclient import. Brooks Davis brooks@FreeBSD.org Sam Leffler sam@FreeBSD.org

The OpenBSD rewrite of dhclient has been imported, replacing the ISC dhclient. The OpenBSD client provides better support for roaming on wireless networks and a simpler model of operation. Instead of a single dhclient process per system, there is one per network interface. This instance automatically goes away in the even of link loss and is restarted via devd when link is reacquired. To support this change, many aspects of the network interface configuration process were overhauled.

The current code works well in most circumstances, but more testing and polishing is needed.

Move ARP out of routing table Qing Li qingli@freebsd.org

I've sent the patch to jinmei@isl.rdc.toshiba.co.jp @KAME for review. I'm still waiting for feedback from Andre. There hasn't been any major change since the last report. I've kept the code in sync with CURRENT. Gleb has created a separate P4 branch and has been helping out on the locking side. Gleb is also helping out on the testing front.

I'm waiting for review feedback from my mentor Andre on the overall design and code. I'm waiting for feedback from Andre on Gleb's suggested modification.
Nsswitch / Caching daemon Michael Bushkov soc-bushman@rsu.ru

The nsswitch / caching daemon project is being developed within the Google's Summer Of Code program. The first goal of this project is to implement a set of patches to extend the use of nsswitch subsystem. The second goal is the development of the caching library and daemon to add the caching ability to the nsswitch.

Currently services, protocols, rpc and openssh patches are finished. Support for services, services_compat, rpc, protocols, and ssh_host_keys databases is added with 'files', 'nis' and 'compat' (for services) sources possible. The nsswitch-friendly openssh port is almost completed.

Implement set of patches to make nsswitch support globus grid security files , MAC and audit related configuration files databases. Implement the caching library and the caching daemon and patch nsdispatch function to support caching.
OpenBSD packet filter - pf Max Laier mlaier@freebsd.org

We will have pf as of OpenBSD 3.7 for RELENG_6. Import has been completed in early May and FreeBSD release 6.0 will ship with it.

A few serious issues with pfsync on SMP have been discovered since CARP is around and more and more people use it on big iron. Everything that has been discovered is fixed in HEAD and (if applicable) MFCed back to RELENG_5. Some functional changes are undergoing testing right now and will be MFCed in the coming days.

With the import of if_bridge from Net/OpenBSD we finally have a bridge implementation that allows for stateful filtering as well as IPv6 filtering. Please see the respective report.

Shared lock implementation?
Low-overhead performance monitoring for FreeBSD Joseph Koshy jkoshy@FreeBSD.org Project home page

Modern CPUs have on-chip performance monitoring counters (PMCs) that may be used to count low-level hardware events like instruction retirals, branch mispredictions, and cache misses. PMC architectures and capabilities vary between CPU vendors and between CPU generations from the same vendor, making the creation of portable applications difficult. This project implements a cross-platform PMC management API for applications, and implements the infrastructure to "virtualize" and manage these PMCs. The creation of performance analysis tools that use this infrastructure is also part of the project's goals.

Work since the last status report:

Future work:

Improve libalias Paolo Pisati soc-pisati@freebsd.org Wiki page about libalias work.

My SoC project is about improving libalias and integrating it with ipfw2, adding nat support into the firewall. Till now I ported libalias (as a kld) and ng_nat to 4.x and 5.x branches, and I've already a first working patchset that adds 'nat' action into ipfw. Next step will be to add a complete syntax to ipfw that will let us manipulate libalias operations, much like we already do with queue and pipes for dummynet. In the end the entire work will compile and work out of the box for 4.x, 5.x and 6.x. More details about the project and its status are available on wiki page.

TODO list for volunteers Alexander Leidinger netchild@FreeBSD.org

Since Google's "Summer of Code" resulted in a lot of interest in open projects, I'm in the process of compiling a list of nice projects for volunteers. Unlike Google's SoC those projects aren't backed with money (but this doesn't means nobody is allowed to sponsor one of those projects), so we can only guarantee the social aspects (some "Thank you!" and "That's great!" messages). So far the list has several entries where the difficulty ranges from "someone just has to sit down and spend some time on it" up to "we need a guru for this".

Merging untaken entries from the SoC list as soon as the official participants/tasks in the SoC are announced. Sending the document to some doc people for review. Commit the list.
Removing of old basesystem files and directories Alexander Leidinger netchild@FreeBSD.org Patch

FreeBSD lacks a way to remove old/outdated files and directories in the basesystem. I have a patch which removes obsolete files in a safe way (interactively, since only the administrator really knows if there's a need to keep an old file or not; there's a switch for batch-processing). This feature may or may not be available for 6.0-RELEASE, depending on the decision from the Release Engineering team.

Respect the NO_* switches and remove those files too. This is easy to do with the current implementation, but isn't needed to commit the removal of obsolete files feature.
Porting v9 of Intels C/C++ Compiler Alexander Leidinger netchild@FreeBSD.org

Intel released version 9 of its C/C++ compiler. Work to port the x86 version to FreeBSD is in progress as time permits. Porting the EM64T (amd64) version is on the TODO list too, but is subject to enough free time and access to appropriate hardware.

Update of the Linux userland infrastructure Alexander Leidinger netchild@FreeBSD.org Emulation Mailinglist emulation@FreeBSD.org

The cleanup/streamlining and the possibility of overriding the default Linux base as reported in the last report happened without major problems. Work on the open tasks hasn't started yet, but is scheduled to start "soon". If a volunteer wants to spend some hours on one of the open tasks, he should tell it on the emulation mailinglist.

Refactoring the common RPM code in x11-toolkits/linux-gtk/Makefile into bsd.rpm.mk. Determining which up-to-date Linux distribution to use as the next default Linux base. Important criteria:
  • RPM based (to be able to use the existing infrastructure)
  • good track record regarding availability of security fixes
  • packages available from several mirror sites
  • available for several hardware architectures (e.g. i386, amd64, sparc64; Note: not all architectures have a working linuxolator for their native bit with, but as long as there are no userland bits available, no motivation regarding writing the kernel bits will arise)
Moving the linuxolator userland to an up-to-date version (see above).
Autotuning of the page queue coloring algorithm Alexander Leidinger netchild@FreeBSD.org Patch

The VM subsystem has code to reduce the amount of cache collisions of VM pages. Currently this code needs to be tuned with a kernel option. I have a patch which changes this to auto-tuning at boot time. The auto-tuning is MI, the cache size detection is MD. Cache size detection is currently available for x86/amd64 (on other systems it uses default values).

Add cache-detection code for other arches too (Marius told me how to do this for sparc64). Analyze why the cache detection on Athlons doesn't work (no problems on a P4, but it uses a different code-path).
FreeBSD website improvements Emily Boyd soc-emily@freebsd.org

As part of the Google Summer of Code, I'm working on improvements to the FreeBSD website (including a proposed website redesign). My mentor for this project is Murray Stokely.

UFSJ -- Journaling for UFS Brian Wilson polytopes@gmail.com Scott Long scottl@FreeBSD.org

filesystem. Journaling helps ensure the filesystem's integrity should the system crash. Journaling eliminates the need for fsck'ing a filesystem, as the filesystem is never in an inconsistent state (barring hardware failure). This implementation is inspired by Darwin's HFS+ filesystem and the SGI XFS filesystem. This is a Summer of Code project, with Scott Long as the mentor and Brian Wilson as the developer/mentee. Currently this project is still in the early stages, but will be in a usable state by September 1 (the Google Summer of Code completion date).

Finish making the file system log metadata updates. Add facilities to replay the log on dirty file systems. Make snapshots work with journaling.
SEBSD Yanjun Wu yanjun03@ios.cn Show status in wiki, update more frequently.
  1. Setup a local P4 workspace of SEBSD source and Setup lxr for TrustedBSD source for studying source code.
  2. Test a simple policy configuration for vsftpd.
  3. Writing a HOWTO document Getting Started with SEBSD HOWTO by deriving the existing Getting Started with SELinux HOWTO.

Thanks Robert Watson and Scott Long for their kind help.

When writing the document, try to figure out the sebsd userland utils that need to be ported. Test and edit more policies for BSD environment.
VFS SMP Jeff Roberson jeff@freebsd.org

FreeBSD's VFS layer has been fine grain locked along with the FFS filesystem for the FreeBSD 6.0 release. The locking has been underway for several years, with the project really picking up over the last 6 months thanks largely to sponsorship provided by Isilon Systems, Inc. a leading vendor of clustered storage systems. The project has entered a stabilization phase, with a few bugs being reported in extreme circumstances while the majority of users have seen no problems. Tests on a 8 and 16 way machines yield reasonable parallelization, however, it will be beneficial to do lock contention analysis once things are fully stable.

For those interested in technical details, there have been a few relatively significant changes with vnode life-cycle management. Vnode reference counting and recycling is now no longer an ad-hoc process involving a variety of flags, a use count and the hold count. A single hold count is used to track all vnode references and a destroyed vnode is freed in the context of the caller when the last ref is lost. The old system would never reclaim memory used by vnodes and also had pathlogical behavior with unreferenced vnode caching under pressure. The new system is much simpler than the old one, however, callers are now required to vhold a vnode that they lock directly without going through vget to prevent it from being recycled while they are waiting on a lock. Relying on 'location stable storage', which is a more strict version of 'type stable storage' is no longer a valid approach.

Some other side effects include a much simpler and faster nullfs implementation, an improved buf daemon flushing algorithm which eliminated high latency that caused audio skipping, and a lots of minor cleanups and debugging aids.

EuroBSDCon 2005 - Basel Information info@eurobsdcon.org Homepage Call for papers

The fourth European BSD conference in Basel, Switzerland is a great opportunity to present new ideas to the community and to meet some of the developers behind the different BSDs.

The two day conference program (Nov 26 and 27) will be complemented by a tutorial day preceeding the conference (Nov 25).

The program committee is looking for tutorial and paper submissions. For details, please see: The call for papers online.

SMP Network Stack Robert Watson rwatson@FreeBSD.org Netperf home page

Significant work has occurred over the last few months relating to the SMP network stack work. A few of the highlights are covered here at a high level:

In most cases, these changes will appear in FreeBSD 6.0-RELEASE; some have been, or will be, merged to FreeBSD 5.x.

On-going tasks include:

TrustedBSD SEBSD Robert Watson rwatson@FreeBSD.org TrustedBSD/SEBSD web page

The TrustedBSD Project has released a new snapshot of "SEBSD", a port of NSA's SELinux FLASK and Type Enforcement implementation to FreeBSD based on a late 2005 FreeBSD 6.x snapshot. The SEBSD distribution has now been updated in Perforce to a recent 6.x snapshot, and a new distribution will be made available in the near future.

Work has been performed to merge additional dependencies for SEBSD back into the base FreeBSD tree, including most recently, changes to devfs, and System V and POSIX IPC.

Update to new NSA FLASK implementation, which has improved MLS support. Merge remaining kernel changes to support SEBSD back to the base FreeBSD CVS repository, including file descriptor labeling and access control (in contrast to file labeling and access control), and categorization of kernel privileges.
TrustedBSD Audit Robert Watson rwatson@FreeBSD.org Wayne Salamon wsalmon@FreeBSD.org trustedbsd-discuss@TrustedBSD.org

In the past few months, significant work has been done relating to the TrustedBSD audit implementation, including preparatory work to merge audit into the FreeBSD CVS repository for FreeBSD 6.x. In particular:

The hope is still to provide audit as "experimental" in 6.0; the primary blocking factor is our awaiting relicensing of the last remaining audit files from Apple's APSL license to BSDL so that they can be included in the FreeBSD kernel. This is anticipated to complete in the near future. Once this is done, the changes can be merged to CVS, and then MFC'd to RELENG_6. If this is not complete by 6.0-RELEASE, the work will be merged shortly after the release, as all ABI-sensitive data structures have been updated as needed.

libmemstat(3), UMA(9) and malloc(9) statistics Robert Watson rwatson@FreeBSD.org libmemstat(3)-derived tools

libmemstat(3) provides a user space library API to monitor kernel memory allocators, currently uma(9) and malloc(9), with the following benefits:

libmemstat(3) and the the appropriate allocator changes for uma(9) and malloc(9) are currently in HEAD (7-CURRENT), and MFC has been approved to RELENG_6 for inclusion in 6.0-RELEASE. These changes may also be backported to 5.x.

Sample applications include memstat(8), an allocator-independent statistics viewing tool, memtop(8), which provides a top(1)-like interface for monitoring kernel memory use and active memory types. None of these are "pretty".

netstat -mb has also been updated to use libmemstat(3) to track network memory use using uma(9), rather than the less reliable mbuf allocator statistics interface. As a result, the statistics are now more reliable on SMP systems (this corrects the bug in which mbuf statistics sometimes "leaked", even though memory didn't), and more informative (cache information is now displayed, as well as mbuf tag information).

Teach libmemstat(3) to speak libkvm(3) in order to allow tools linked -lmemstat to interogate kernel core dumps. Teach libmemstat(3) to interface with user space malloc and track malloc allocations for user space applications. Update vmstat(8) -m and -z implementations to use libmemstat(3) instead of the old monitoring interfaces. Code to do this exists in the sample libmemstat(3) applications. Identify how to make streams or the library endian-aware so that streams dumped from a kernel of alternative endian could be processed using libmemstat(3) on another system. Identify any remaining caching allocators in the kernel, such as the sfbuf allocator, and teach libmemstat(3) how to interface with them.
diff --git a/en/news/status/report-2005-10-2005-12.xml b/en/news/status/report-2005-10-2005-12.xml index 500e0d3494..19b6df3e01 100644 --- a/en/news/status/report-2005-10-2005-12.xml +++ b/en/news/status/report-2005-10-2005-12.xml @@ -1,1370 +1,1370 @@ October-December 2005
Introduction

This report is about the rather quiet last quarter of 2005, with the release of FreeBSD 6.0 and the holiday season things evolved in the background. Nontheless, most exciting projects hit the tree (or are going to very soon).

Upcoming events, such as the release of FreeBSD 6.1/5.5 and the third BSDCan conference with a big developer summit promise to provide a busier start in 2006. The foundation for upcoming development, however, are the projects that are described herein.

We hope that you find interesting projects to look at or work on. The next status report collection will be April 7 2006. We are looking forward to your report then.

Thanks again to everyone who submitted reports, and thanks to Brad Davis who stepped up for an extensive spelling and grammar review. Enjoy reading!

proj Projects doc Documentation team FreeBSD team reports kern Kernel net Network infrastructure bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous jemalloc Jason Evans jasone@FreeBSD.org

libc's malloc implementation has been replaced with an implementation that is designed to scale well for multi-threaded applications running on multi-processor systems. This is accomplished by creating multiple allocation arenas that are independent of each other, and permanently assigning threads to these arenas. In the common case, threads do not access the same allocator arena at the same time, which reduces contention and cache sloshing.

Single-threaded application performance is approximately equivalent to what it was with phkmalloc, but for multi-threaded applications that make heavy use of malloc, the performance difference can be huge (orders of magnitude).

As with phkmalloc, the new malloc implementation supports runtime configuration via the MALLOC_OPTIONS environment variable. See the malloc(3) manpage for details on supported options, as well as more information about the allocator's architecture.

OpenBSD dhclient Brooks Davis brooks@FreeBSD.org Sam Leffler sam@FreeBSD.org

The OpenBSD rewrite of dhclient has been imported, replacing the ISC dhclient. The OpenBSD client provides better support for roaming on wireless networks and a simpler model of operation. Instead of a single dhclient process per system, there is one per network interface. This instance automatically goes away in the even of link loss and is restarted via devd when link is reacquired. To support this change, many aspects of the network interface configuration process were overhauled.

Support for adding aliases to DHCP configured interfaces has been committed to CURRENT and will be merged before 6.1-RELEASE. Soon work will begin to merge changes from OpenBSD that have taken place since the initial import.

Work on further interface configuration enhancements is underway for FreeBSD 7.0.

FAST_IPSEC Upgrade George Neville-Neil gnn@freebsd.org Bjoern A. Zeeb bz@freebsd.org

Currently splitting out the rest of the PF_KEY data-structures from the key database. This will mean the user level applications and the kernel will not share datastructures and that they can, hopefully, advance on their own without being in lockstep.

Calculate diffs between Kame IPv4 version of IPSec and FAST_IPSEC and upgrade FAST to the latest standards. Add IPv6 support to FAST_IPSEC.
FreeBSD list of projects and ideas for volunteers (TODO list for volunteers) Joel Dahl joel@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org

The "TODO list for volunteers" is now committed as the "FreeBSD list of projects and ideas for volunteers". So far the interest in the list is high and some volunteers already took the opportunity to start tackling some of the entries.

Unfortunately the FreeBSD project does not have enough human resources to provide a technical contact for every entry. Interested volunteers should not be afraid to try to come up with a solution for an entry without a technical contact. The people on the hackers and current mailing list are typically very helpful regarding answering specific questions (as long as they know the answer...).

We are looking forward to hear about new ideas, people willing to be technical contacts for generic topics (e.g. USB) or specific entries (already existing or newly created), suggestions for existing entries or completion reports for (parts of) an entry.

Add more ideas. Find more technical contacts.
KAME Project Status Report SUZUKI Shinsuke suz@FreeBSD.org KAME Project Homepage

Most of the latest KAME code has been merged to 7-current and 6-stable, to prepare for the project conclusion in March 2006. For the same reason, we moved some ports applications (security/racoon, net/pim6sd, net/pim6dd, net/dhcp6) from KAME to sourceforge.net.

Some of the items (e.g. IGMPv3/MLDv2, Mobile-IPv6/NEMO, SCTP, DCCP, ISATAP) are not merged yet from the latest KAME code for several reasons. Other projects will continue to merge their work.

remove __P() macros set net.inet6.ip6.kame_version to a more appropriate date :-) update src/sys/netinet6/README
Sound subsystem improvements Ariff Abdullah ariff@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Multimedia Mailinglist multimedia@FreeBSD.org Patches for RELENG_5. The FreeBSD Project Ideas List.

A lot of changes have taken place in the sound system since the last status report. They range from less hickups and distortion by disk accesses and/or driver bugs to new and improved features (software volume control implemented for soundcards which do not have hardware volume control). Additionally a new driver (snd_atiixp) has seen the light and a lot of problem reports were fixed.

Most of those changes and the changes mentioned in the previous status report are already merged to RELENG_6 and will be part of 6.1-RELEASE.

Have a look at the sound related entries on the ideas list. Rewrite some parts (e.g. a new mixer subsystem with OSS compatibility). sndctl(1): tool to control non-mixer parts of the sound system (e.g. spdif switching, virtual-3D effects) by an user (instead of the sysctl approach in -current); pcmplay(1), pcmrec(1), pcmutil(1). Plugable FEEDER infrastructure. For ease of debugging various feeder stuff and/or as userland library and test suite. Support for new hardware (envy24, Intel HDA). Performance enhancement (via 'slave'-channels). Closer compatibility with OSS, especially for the upcoming OSS v4.
Problem Report Database Mark Linimon bugmeister_at_freebsd_dot_org GNATS

The experiment to add 'tags' to many of the kern and related PRs, including such things as '[nfs]', '[fxp]', and so forth, continues. In addition, PRs with patches have been more consistently tagged with '[patch]'. Two new periodic reports based on both functional tags and PRs with patches have been added, with the goal of making these PRs more visible.

Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD ports collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports updated distfile survey (Edwin Groothius' report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom tinderbox

During this time, the number of ports PRs briefly dipped below 500 -- a number not seen since late 2000, when there were 4000 ports instead of our new total of over 14,000 ports. This is due to the hard work of a large number of individuals, including pav, edwin, mnag, garga, and many others. Congratulations folks! Some of this was due to more aggressively committing PRs where the maintainer had not responded within the timeout period. Although controversial, this new policy seems to be succeeding in its goal of improving the Ports Collection.

A new file, ports/KNOBS, was added by ahze to help bring some order in the chaos that had been the OPTIONS namespace.

dougb has changed the way that rc.d works in -HEAD to work more like the base rc.d scripts. We are hoping that this change will make ports maintenance easier in the future. However, in the meantime a few bugs have been introduced (which we intend to have fixed by the time 6.1 is released). While this regression is unfortunate, it was decided that now was the best time to try to make this change rather than waiting for 7.0. We hope our users can be patient with us in the interim.

Work continues to improve the marcuscom ports tinderbox, with new features added by marcus, aDe, and edwin in particular. Several ports committers are now running their own copies to test ports changes.

The www.FreeBSD.org/ports page, and the portmgr web pages, were reworked as well.

We have added 4 new committers since the last report.

Progress has been made in cracking down on ports that do not correctly install when LOCALBASE is not /usr/local, but some ports remain. portmgr would like to remind committers that PRs for their ports should be handled (either committed or marked 'suspended' or 'analyzed') within the two week timeout period. In this way other committers do not have to invoke the maintainer timeout and things will work more smoothly.
Early Binding Updates and Credit-Based Authorization for the Kame-Shisa Mobile IPv6 Software Christian Vogt chvogt@tm.uka.de Download patch here. [1] [2]

Based on the Kame-Shisa Mobile IPv6 Software for FreeBSD 5.4, we implemented the performance optimization "Early Binding Updates" and "Credit-Based Authorization". The combined optimizations facilitate significant reductions in handoff delay without compromising protocol security [1][2].

A Comprehensive Delay Analysis for Reactive and Proactive Handoffs with Mobile IPv6 Route Optimization Christian Vogt chvogt@tm.uka.de Download document here.

Optimizations to reduce handoff delays inherent in Mobile IPv6 Route Optimization as well as IPv6 router discovery, address configuration, and movement detection have so far been mostly considered on an individual basis. This document evaluates three integrated solutions for improved handoff experience in surroundings with different preconditions: reactive handoffs with unmodified routers, reactive handoffs with router support, and movement anticipation and proactive handoff management.

FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

This report covers the period July 2005 - January 2006, since the FreeBSD Security Team did not submit a status report for July - October 2005.

In August 2005, the long-time Security Officer, Jacques Vidrine, stepped down and was replaced by Colin Percival. Jacques remains with the team as Security Officer Emeritus, and the team thanks him for all his work over the past four years.

Also in August 2005, Dag-Erling C. Smørgrav was replaced by Simon L. Nielsen as Deputy Security Officer. In addition, Tom Rhodes and Guido van Rooij retired from the team in September 2005 and January 2006 respectively in order to devote their time to other parts of the FreeBSD project. The current Security Team membership is published on the web site.

In the time since the last status report, ten security advisories have been issued (five in 2005, five in 2006) concerning problems in the base system of FreeBSD; of these, four problems were in "contributed" code, while six were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and the Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 117 new entries have been added, bringing the total up to 636.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.10, FreeBSD 4.11, FreeBSD 5.3, FreeBSD 5.4, and FreeBSD 6.0. Their respective End of Life dates are listed on the web site.

FreeSBIE FreeSBIE staff staff@freesbie.org

Development is going on after the complete rewrite of the toolkit. There are many plugins available and we're testing a new implementation of unionfs for 6.x. Since it's a bit unstable, it won't be included in the release anyway. Developers hope to enter the BETA state on February 1st, to release an -RC image around February 15th and the RELEASE around March 1st. We need more people to test the images we provide. Torrents for them are available at torrent.freesbie.org .

A new BETA Release, based on 6-STABLE, is available for testing.
variant symlinks Andrey Elsukov bu7cher@yandex.ru

The port of DragonFly's variant symlinks ( project ideas ) to FreeBSD. Variant symlinks is a dynamic symbolic link implementation. Source file of a variant symlink may contain one or more variable names. Each of these variable names is enclosed in braces and preceded by a dollar sign in the style of variable references in sh(1). Whenever a variant symlink is followed, each variable found in source file is replaced by its associated value. In this manner, a variant symlink may resolve to different paths based on context.

Document a new system calls. More testing. Write the rc.d script for the variant symlinks initialization.
BSDCan 2006 Dan Langille dan@langille.org

We are well into the process of selecting the talks for BSDCan 2006. Our new program committee has a hard selection task over the new few weeks. The deadline for the Call For Papers has passed, but it's not too late to submit a talk. Please see the above URL for details. After the success of the Work in Progress last year , we are going to do it again this year. If you are working on something you'd like to tell the world about, considering giving a 5 minute talk at BSDCan. The registration prices for BSDCan 2006 will be the same as they were for 2005 . We will be again in the SITE building at University of Ottawa and you'll have lots of opportunity to meet with people from all over the world. Be sure to make your travel plans now and don't miss out on the biggest BSD event this year: BSDCan 2006.

We're looking for volunteers to help out just before and during the conference. Contact Dan at the above address. If you have a talk you'd like to present, contact Dan at the above address.
FreshPorts Dan Langille dan@langille.org

FreshPorts recently moved to a new webserver. This should speed things up considerably.

You can read all about the new hardware on the recently introduced FreshPorts Blog . This blog will include technical discussions about ports and the problems they present with respect to FreshPorts. Site announcements will be posted there. As bugs are found, they will be listed, as well as their fixes.

Supporting multiple platforms and architectures is still in the development stage. Lack of time is affecting progress.

A fix for virtual ports is in the works. I'm also going to implement more caching to speed things up. If interested in discussing the options there, please get involved in the blog.

The FreeBSD Dutch Documentation Project Remko Lodder remko@FreeBSD.org Siebrand Mazeland s.mazeland@xs4all.nl FreeBSD released handbook Preview documentation Preview website

The FreeBSD Dutch Documentation Project is an ongoing project, focussed on translating the English documentation and website to the Dutch language. Currently we are almost done with the FreeBSD Handbook and started the initial translation of the FreeBSD Website. We are always looking for people to help out, if you can help, please contact Siebrand or me so that we can divide the work amongst us.

Recent publications:
Recently the Printing and the Serial Communications chapters were added to the FreeBSD Dutch Handbook.

Recently started items:
We started with the translation of the PPP and SLIP chapter and the translation of the website.

Translate the final parts of the FreeBSD handbook. Translate the FreeBSD Website
FreeBSD/xbox Rink Springer rink@FreeBSD.org FreeBSD/xbox project page.

FreeBSD/xbox support is nearing completion. Patches are available for nve(4) ethernet support, as well as a syscons(4)-capable console. I am working to integrate these in CURRENT, a backport to 6.x is planned too.

Work is under way to support X.Org as well; people with more detailed knowledge of X.Org are welcome to assist.

Enable framebuffer support in X.Org Figure out a way to use mfsroots without using loader(8)
LSI MegaRAID improvements Scott Long scottl@freebsd.org Doug Ambrisko ambrisko@freebsd.org

Major work has gone into improving both the performance of the LSI MegaRAID (amr) driver, and in adding Linux compatiblity support. SMPng locking was added in Oct 2005 as well as a number of performance improvements. The result is 138% performance improvement in some local transaction tests.

Throughout 2005 a lot of work has gone into adding Linux compatibility to the driver. It is now possible to run many of the LSI-provided management apps for Linux under FreeBSD. Both this feature and the performance improvements are in the 7-CURRENT development branch of FreeBSD and are scheduled to be backported in time for the FreeBSD 6.1 release.

E1000 driver improvements Scott Long scottl@freebsd.org Andre Opperman andre@freebsd.org

In an effort to solve the 'interrupt aliasing' problem that plagues many motherboards under FreeBSD, I modified the Intel e1000 network driver (if_em) to use a combination of fast interrupts and taskqueues. This technique avoids interrupt threads entirely, which in turn avoids triggering the aliasing problem in the Intel APIC. The result is that the driver now handles and masks interrupts immediately, and a private taskqueue is then scheduled to run to process the link events and rx/tx events. A side effect of this asynchronous processing is that it acts much as traditional polling does, in that the amount of work done in the taskqueue can be controlled, and the taskqueue rescheduled to process work at a later time. This leads to the driver having the low-latency benefits of interrupts and the workload segmentation of polling, all without complicated heuristics. Several users have reported that the driver can handle higher loads than traditional polling without deadlocks.

Along with this work, I modified the SMPng locking in the driver so that no lock is required for the RX path. Since this path is already implicitly serialized by the interrupt and/or taskqueue and/or polling handler (all of which are exclusive to each other), there was no need for extra synchronization. This has two benefits. The first is reduction in processing overhead to unlock and lock the driver for every RX packet, and significant reduction in contention of the driver lock when transmitting and receiving packets at the same time. I believe that it is further possible to run the TX-complete path without a lock, further reducing overhead and contention for high transmit loads. The reduced contention also greatly benefitted the fast-forward bridging code in FreeBSD, with up to 25% performance improvement seen, as well as lower CPU utilization.

The work can be found in FreeBSD 7-CURRENT for now. There are still some rough edges relating to falling back to traditional ithread and polling behavior, and I do not intend to merge the changes back to FreeBSD 6.x until these are resolved. I also hope to extend the INTR_FAST+taskqueue model into a general framework for doing Mac OSX style filter interrupts. The work in the if_em driver can also be extended to other high-performance network drivers such as if_bge and if_ti. Any help with investigating these topics is welcomed.

Release Engineering Status Report RE Team re@freebsd.org

Another very busy year for the FreeBSD Release Engineering Team. Recognizing the problems, both technical and emotional, surrounding the FreeBSD 5.x releases, our primary focus was in getting the bugs out of FreeBSD 6.0 and getting it released. We succeeded at that quite well, and the 6.0 release on Nov 18 was a huge success for the project. Many thanks to all of the developers who put in countless hours fixing bugs and improving performance, and to the users who helped find, fix, and verify bugs.

Moving forward to 2006, we plan on doing a joint release of FreeBSD 5.5 and 6.1 in late March. The 5.5 release will mark the end of active FreeBSD 5.x development and releases, and is intended to help users who have not yet switched to FreeBSD 6. It consists primarily of bug fixes and minor improvements. FreeBSD 6.1 will be an upgrade to 6.0 and will include new drivers, better performance in certain areas, as well as bug fixes. We expect to release FreeBSD 6.2 and 6.3 later in 2006.

New Networking Features in FreeBSD 6.0 Andre Oppermann andre@freebsd.org Presentation Paper EuroBSDCon 05

FreeBSD 6 has evolved drastically in the development branch since FreeBSD 5.3 and especially so in the network area. The presentation and paper give an in-depth overview of all network stack related enhancements, changes and new code with a narrative on their rationale.

Optimizing the FreeBSD IP and TCP Stack Andre Oppermann andre@freebsd.org Presentation Paper EuroBSDCon 05 TCP/IP Optimization Fundraiser 2005

FreeBSD has gained fine grained locking in the network stack throughout the 5.x-RELEASE series cumulating in 6.0-RELEASE. Hardware architecture and performance characteristics have evolved significantly since various BSD networking subsystems have been designed and implemented. This paper gives a detailed look into the implementation and design changes in FreeBSD 7-CURRENT to extract the maximum network performance from the underlying hardware.

Sponsored by: TCP/IP Optimization Fundraiser 2005

TCP/IP Optimization Fundraiser Status Andre Oppermann andre@freebsd.org TCP/IP Optimization Fundraiser 2005 em(4) driver commit Previous Status Report

The fundraiser has been very successful and I want to thank everyone who has pledged their support and tipped the jar. The full amount plus a little bit more has been raised in a very short timeframe. More information on the exact amounts and their sponsors can be found at the first link.

After the delays on this project caused by the FreeBSD 6.0 Release cycle code freeze work has picked up and a paper was written and a presentation held on "Optimizing the FreeBSD IP and TCP Stack" for EuroBSDCon 05 on November 27th. See related status report under that title.

From December 21st to January 11th I received access to a calibrated Agilent N2X gigabit tester and traffic generator. Stock FreeBSD 7-current was tested and profiled extensively in this timeframe. A first proof of concept optimization was developed in cooperation with Scott Long. It involved converting the Intel Gigabit ethernet em(4) driver to make use of fast interrupt handlers, taskqueues and lockless RX ring handling. This improved the performance from 570kpps to 750kpps, a 25% improvement, with IP fastforwarding enabled.

A large number of profiles and measurements was taken and a detailed report on the performance characteristics and remaining bottlenecks is under preparation. Further optimizations and new features described on the Optimization Fundraiser page.
Bt878 Audio Driver (aka FusionHDTV 5 Lite) John-Mark Gurney jmg@FreeBSD.org Perforce source repository

Basic audio capture is working. All of the parameters are set by userland, while the RISC program generation is by kernel. No real audio has been captured as there are no drivers for the tuner yet. Someone with a real Bt878 NTSC card that is supported by bktr(4) could use this to capture audio w/o using the sound card.

The real goal of this driver is to make HD capture possible with the DViCO FusionHDTV5 Lite card that I have. I have some of the documentation that I need, but I'm still missing two key docs. The docs for the LGDT3303 ATSC/8VSB/QAM demodulator chip and a block diagram of the board showing which GPIO lines go where and how the chips are interconnected. DViCO has been responsive in acknowledging my emails, but they have yet to produced any data besides pointing me to the Linux driver (which is difficult to figure out stuff by).

Complete basic capture driver. Make the bktr(4) drive cleanly attach to the card, and possibly add support for analog capture.
SysKonnect/Marvell Yukon device driver Karim Jamal support@syskonnect.de

This project provides support for SysKonnect's SK-98xx, SK-95xx,SK-9Exx and SK-9Sxx PCI/PCI-Express Gigabit Ethernet adapters via the yk(4) driver, as well as Marvell's Yukon LOM Gigabit Ethernet controllers via the myk(4) driver. Driver source has been made available to selected members of the FreeBSD project.

FreeBSD on Xen 3.0 Kip Macy kip.macy@gmail.com current status

Full domU support in p4 branch of -CURRENT, except suspend / restore. Dom0 work is in progress. Scott Long is working on xenbus integration with newbus. After newbus integration it will go into CVS. I hope to see it MFCed to RELENG_6 so it will be available for 6.1.

Port the backend drivers from Linux. Port the domain management tools from Linux. Add multiboot support to loader(8) to support it booting xen. SMP, x86_64, and PAE support.
diff --git a/en/news/status/report-2006-01-2006-03.xml b/en/news/status/report-2006-01-2006-03.xml index d3456e359e..4c979838da 100644 --- a/en/news/status/report-2006-01-2006-03.xml +++ b/en/news/status/report-2006-01-2006-03.xml @@ -1,1467 +1,1467 @@ January-March 2006
Introduction

The highlights of this quarters report certainly include the availability of native Java binaries thanks to the FreeBSD Foundation , as well as progress has been made with Xen support and Sun's Ultrasparc T1. Futhermore we are looking forward to FreeBSD 6.1 and TrustedBSD audit support has been imported into FreeBSD 7-CURRENT. All in all, a very exiting start to 2006.

In just under a month the developers will be gathering at BSDCan 2006 for, FreeBSD Dev Summit, a two day meeting of FreeBSD developers. Once again the BSDCan schedule is filled with many interesting talks.

We hope you enjoy reading and look forward to hear from you for the next round. Consult the list of projects and ideas for ways to get involved. The submission date for the second quarter reports will be July, 7th 2006.

Thanks to everybody who submitted a report and to Brad Davis, who joined the Status Report team, for proof reading.

proj Projects net Network infrastructure kern Kernel doc Documentation bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In March 2006, Marcus Alves Grando, George Neville-Neil, and Philip Paeps joined the FreeBSD Security Team. The current Security Team membership is published on the web site.

In the time since the last status report, eight security advisories have been issued concerning problems in the base system of FreeBSD; of these, three problems were in "contributed" code, while five were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and the Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 50 new entries have been added, bringing the total up to 686.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.10, FreeBSD 4.11, FreeBSD 5.3, FreeBSD 5.4, and FreeBSD 6.0. Upon their release, FreeBSD 5.5 and FreeBSD 6.1 will also be supported. The respective End of Life dates of supported releases are listed on the web site; of particular note, FreeBSD 4.10 and FreeBSD 5.4 will cease to be supported at the end of May 2006.

FreeBSD NFS Status Report Chuck Lever cel@FreeBSD.org

Support for NFS in FreeBSD received a boost this quarter as a kernel developer from Network Appliance has volunteered to help with the clients. Chuck Lever is now a src committer, mentored by Mike Silbersack. Mohan Srinivasan and Jim Rees have ended their apprenticeships and are now full committers. Mohan continues his effort to make the NFSv2/3 client SMP safe. He expects to make the changes available for review soon.

FreeBSD gained presence at the annual NFS interoperability event known as Connectathon. Rick Macklem's FreeBSD NFSv4 server is pretty stable now and available via anonymous ftp. NFSv4.1 features are not a part of it yet and are not likely to happen until at least the end of 2006. Contact rick@snowhite.cis.uoguelph.ca for details.

BSDCan Dan Langille dan@langille.org

The schedule for BSDCan 2006 demonstrates just how strong and popular BSDCan has become in a very short time. Three concurrent streams of talks make sure that there is something for everyone. We provide high quality talks at very affordable prices .

BSDCan is the biggest BSD event of 2006. Ask others who attended in past years how much they enjoyed their time in Ottawa. Ask them who they met, who they talked to, the contacts they made, the information they learned.

Remember to bring your wife/husband/spouse/etc because we will have things for them to do while you are attending the conference. Ottawa is a fantastic tourist destination.

See you at BSDCan 2006!

Works in Progress - if you want to talk about your project for 5 minutes, this is your chance. Get in touch with us ASAP to reserve your spot. We're looking for volunteers to help out just before and during the conference. Contact Dan at the above address.
Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports updated distfile survey (Edwin Groothius' report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom tinderbox

During this time, the number of ports PRs rose dramatically from its impressive low number seen late last quarter. This was due to the holidays, the freeze for the 5.5/6.1 release cycle, and the aggressive work several submitters have been doing to correct long-standing problems with stale distfiles, stale WWW sites, port that only work on i386, and so forth. Over 200 new ports have also been added. The statistics do not truly reflect the state of the Ports Collection, which continues to improve despite the increased number of ports.

We now have 3 people who are qualified to run the 5-exp regression tests. Due to this, we were able to run several cycles, resulting in a series of commits that retired more than 3 dozen portmgr PRs. There were a few snags during one commit due to some unintended consequences, but the breakage was fixed in less than one day. Notable changes include the addition of physical category net-p2p and virtual categories hamradio and rubygems. Once 5.5 and 6.1 are released, portmgr hopes to be able to run regression tests more often.

We have added 5 new committers since the last report.

We need help getting back to our modern low of 500 PRs. We have over 4,000 unmaintained ports (see, for instance, the list on portsmon ). We are always looking for dedicated volunteers to adopt at least a few ports.
OpenBSD dhclient Brooks Davis brooks@FreeBSD.org Sam Leffler sam@FreeBSD.org

All dhclient changes in HEAD have been merged to 6-STABLE for 6.1-RELEASE. New patches currently in testing include startup script support for fully asynchronous starting of dhclient which eliminates the wait for link during startup and support for sending the system hostname to the server when non is specified.

FAST_IPSEC Upgrade George Neville-Neil gnn@FreeBSD.org Bjoern A. Zeeb bz@FreeBSD.org

Split out of PF_KEY code between the kernel and user space has been completed and committed to CVS.

The diff between Kame IPv4 based IPSec and FAST_IPSEC IPv4 did not show any glaring issues.

Moving on to making IPv6 work in FAST_IPSEC including being able to run the kernel with the following variations:

Any patches for FAST_IPSEC, KAME IPsec of either variant (v4 or v6) should be forwarded to bz@ and gnn@. Build a better TAHI. TAHI, the test framework, will not be maintained and is not the easiest system to use and understand. A better test harness is possible and is necessary for other networking projects as well. Contact gnn@ if you have time to work on this as he has some code and ideas to start from.
FreeSBIE FreeSBIE Staff staff@FreeSBIE.org FreeSBIE Mailing List freesbie@gufi.org Website ML Subscribe Page

The project is alive and plans to release an ISO image of FreeSBIE 2.0 based on FreeBSD 6.1-RELEASE few day after the same has been release. FreeSBIE 2.0 will be available for i386 and amd64 archs. Tests images can be download via BitTorrent from torrent.freesbie.org .

Test "test ISO images" for both amd64 and i386 Suggest packages to be added to the ISO image. Suggestions needed for Xfce and fluxbox look. Suggestions needed for applications' configuration files.
HPLIP (Full HP Printer and MFD support) Anish Mistry amistry@am-productions.biz HPLIP FreeBSD Information Official Site

A preliminary version of HP's hplip software for their printers and multi-function devices has been ported. This allows viewing of the status informantion from the printer. Such as ink levels, error messages, and queue information. If you have an Officejet you can also fax and scan. Photocard and Copies functionality is untested.

General Testing Photocard Testing Various ugen fixes Fix Officejet Panel Display Run hpiod and hpssd as unprivileged users Banish the Linuxisms in the Makefile Fix "Make Copies" Automatically Setup Scanner
Low-overhead performance monitoring for FreeBSD Joseph Koshy jkoshy@FreeBSD.org Project home page

This projects implements a kernel module (hwpmc(4)), an application programming interface (pmc(3)) and a few simple applications (pmcstat(8) and pmccontrol(8)) for measuring system performance using event monitoring hardware in modern CPUs.

New features since the last status report:

FreeBSD list of projects and ideas for volunteers Joel Dahl joel@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org

The FreeBSD list of projects and ideas for volunteers is doing well. Several items were picked up by volunteers and have found their way into the tree. Others are under review or in progress.

We are looking forward to hear about new ideas, people willing to be technical contacts for generic topics (e.g. USB) or specific entries (already existing or newly created), suggestions for existing entries or completion reports for (parts of) an entry.

Add more ideas. Find more technical contacts. Find people willing to review/test implementations of (somewhat) finished items.
Java Binaries Deb Goodkin deb@freebsd.org FreeBSD Foundation Java Homepage

The FreeBSD Foundation released official certified JDK and JRE 1.5 binaries for the official FreeBSD 5.4 and FreeBSD 6.0 releases on the i386 platform.
We were able to accomplish this by hiring a contractor to run the Sun certification tests and fixing the problems found. This could not have been completed without the support from the BSD Java Team.

We provided financial support for Java development and funded the certification process. We spent a significant amount of time and money on legal issues from contract and NDA creation for our contractor to license agreements from Sun and creating our own for the binaries. We worked with OEMs who would like to use the binaries, but needed to understand what they need to do legally to be able to redistribute the binaries. This is an area we are still working on at our end. We are waiting for a letter from Sun to put on our website to OEMs. We are also in the process of updating our OEM license agreement. This should be available by mid-April.

We have received a positive response from the FreeBSD community regarding the release of the binaries. We received a few requests to support the FreeBSD 6.1/amd64 platform. We have decided to move forward and support this too. We currently are working with a contractor to provide Java support on 5.5/i386, 6.1/i386, and 6.1/amd64. Once 5.5 and 6.1 are released, we'll update the FreeBSD Foundation website with the Java status. Regular updates to the website will continue.

Update of the linux infrastructure in the Ports Collection Emulation Mailinglist freebsd-emulation@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Boris Samorodov bsam@ipt.ru

Work is underway to use the new linux_base-fc3 as the new default linux base. Since there's some infrastructure work to do before it can be made the new default, this will not happen before the release of FreeBSD 5.5 and 6.1. At the same time a new X.org based linux port will replace the outdated XFree86 based linux X11 port.

The use of fc3 instead of fc4 or fc5 is to make sure we have a smooth transition with as less as possible breakage. We already use several fc3 RPM's with the current default of linux_base-8, so there should be not much problems to solve.

Mark all old linux_base ports as DEPRECATED (after making fc3 the default linux_base port). Have a look at a linux-dri version which works with the update to X.org. When everything is switched to fc3 and everything works at least as good as before, have a look at porting fc4 or fc5.
Mouse Driver Framework Jordan Sissel jls@csh.rit.edu mouse framework project

The current mouse system is a mess with moused, psm, ums, and mse supporting, individually, multiple kinds of mice. This project aims to move all driver support into moused modules in userland. In addition, many features lacking in the existing mouse infrastructure are being added. It is my hope that this new system will make both using mice and writing drivers easier down the road.

Testing. Contact if interested.
SMPng Network Stack Robert Watson rwatson@FreeBSD.org FreeBSD Netperf Project

The FreeBSD netperf project has recently focused on revising the socket and protocol control block reference counts to define and enforce reference and memory management invariants, allowing the removal of unnecessary checks, error handling, and locking. Use of global pcbinfo locks has now been eliminated from the socket send and receive paths into all network protocols, including netipx, netnatm, netatalk, netinet, netinet6, netgraph, and others. Checks have generally been replaced with assertions; so_pcb is now guaranteed to be non-NULL. This should improve performance by reducing lock contention and unnecessary checks, as well as facilitate future work to eliminate long holding of pcbinfo locks in the TCP input path through proper reference counting for pcbs. These changes have been committed to FreeBSD 7-CURRENT, and will be merged in a few months once they have stabilized.

pfSense Scott Ullrich sullrich@gmail.com pfSense website

pfSense continues to grow and fix bugs. Since the last report we have grown to 14 developers working part and full time on bringing pfSense to 1.0. Beta 3 is scheduled for release on 4/15/2006.

Fix remaining bugs listed in CVSTrac Fine tune existing code
Symbol Versioning Daniel Eischen deischen@FreeBSD.org Symbol Versioning in FreeBSD. Symbol Versioning in Solaris. Symbol Versioning in Linux

Symbol versioning libraries allows us to maintain binary compatibility without bumping library version numbers. Recently, symbol versioning for libc, libpthread, libthread_db, and libm was committed to -current. It is disabled by default, and can be enabled by adding "SYMVER_ENABLED=true" to/etc/make.conf. A final version bump for libc and other affected libraries (perhaps all) should be done before enabling this by default.

Determining the impact on ports - portmgr (Kris) is running a portbuild to identify any problems. I am working to resolve the few problems that were found. Making our linker link to libc and libpthread (when using (-pthread)) when building shared libraries. This is needed so that symbol version dependencies are recorded in the shared library. I think kan@ is working on this.??? Identify and symbol version any other libraries that should be symbol versioned. If anyone has any suggestions, I'm all ears.
Status Report ATA project Søren Schmidt sos@FreeBSD.org

The last months has mostly been about stabilizing ATA for 6.1-RELEASE, and adding support for new chipsets. On that front JMicron has raised the bar for vendors as they have provided not only hardware but documentation on both their hardware and their software RAID implementation, making it a breeze to add support for their, by the way excellent, products. Other vendors can join in here. :) Otherwise I'm always in the need for any amount of time or means to get it if nothing else.

ATA has grown a USB backend so that fx. flash keys and external HD/CD/DVD drives can be used directly without atapicam/CAM etc. This is very handy on small (embedded) systems where resources are limited and kernel space at a premium. burncd(8) is in the process of being updated so it will support this along with SATA ATAPI devices, and if time permits adding DVD support.

The next months will be used to (hopefully) work on getting ATA to work properly on systems with > 4G of memory and utilize the 64bit addressing of controllers that support it. RAID5 support for ataraid is on the list together with hardening of the RAID subsystem to help keep data alive and well.

BSDInstaller Andrew Turner soc-andrew@FreeBSD.org

The BSDInstaller integration work has progressed since the previous report. The backend has been changed to the new Lua version. This is to ensure the version we use will be maintained. The release Makefile now uses the Lua package rather the local copy in Perforce. Ports are also being created for the required modules to remove the need to bring Lua into the base.

Create a port for all the Lua modules required
libpkg - Package management library Andrew Turner andrew@fubar.geek.nz

Libpkg is a package management library using libarchive to extract the package files. It is able to download, install and get a list of installed packages. Work has also been started on implementing the package tools from the base system. Most of pkg_info has been implemented and pkg_add has been started.

Support for more command line options in pkg_info and pkg_add Creating a package Test pkg_add works as expected for all implemented command line options
Bridge STP Improvements Andrew Thompson thompsa@FreeBSD.org

Work has been started to implement the Rapid Spanning Tree Protocol which supersedes STP. RSTP has a much faster link failover time of around one second compared to 30-60 seconds for STP, this is very important on modern networks. Some progress has been made but a RSTP capable switch will be needed soon to proceed, see http://www.freebsd.org/donations/wantlist.html .

Donation of a RSTP switch
TMPFS (Filesystem) for FreeBSD Rohit Jalan rohitj@purpe.com Project Home I/O Benchmarks

Three betas have been released so far. The code is operational and seems to be stable but it is not MPSAFE yet.

The second and third betas used different mechanisms for data I/O. (sfbuf vs. kernel_map+vacache) and at present I am in the process on selecting one mechanism over the other. Your opinion is solicited.

Sound subsystem improvements Multimedia Mailinglist freebsd-multimedia@FreeBSD.org Ariff Abdullah ariff@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Start of Intel HDA support.

A lot of fixes (bugs, LORs, panics) and improvements (performance, compatibility, a new driver, 24/32bit samples support, ...) have been merged to RELENG_6. FreeBSD 6.1 is the first release which ships with the much improved sound system. Additionally there's work underway:

Parts of this work may be already in 6.1, but there's still a good portion which isn't even in -current as of this writing.

Style(9) cleanup, survive against WARNS=2 (at least). Have a look at the sound related entries on the ideas list. Rewrite some parts (e.g. a new mixer subsystem with OSS compatibility). sndctl(1): tool to control non-mixer parts of the sound system (e.g. spdif switching, virtual-3D effects) by an user (instead of the sysctl approach in -current); pcmplay(1), pcmrec(1), pcmutil(1). Plugable FEEDER infrastructure. For ease of debugging various feeder stuff and/or as userland library and test suite. Closer compatibility with OSS, especially for the upcoming OSS v4.
Fundraising for FreeBSD security development Colin Percival cperciva@FreeBSD.org

Since 2003, I have introduced the (now quite widely used) FreeBSD Update and Portsnap tools, but rarely had time to make improvements or add requested features. Consequently, on March 30th, I sent email to the the freebsd-hackers, freebsd-security, and freebsd-announce lists announcing that I was seeking funding to allow me to spend the summer working full-time on these and my role as FreeBSD Security Officer. Assuming that some cheques arrive as expected, I have reached my donation target and will start work at the beginning of May.

The work which I'm aiming to do is listed at the URL above.
FreeBSD on Xen 3.0 Scott Long scottl@FreeBSD.org Kip Macy kmacy@FreeBSD.org

We had hoped to finish a prototype of Xen DomU and possible Dom0 in time for FreeBSD 6.1. The primary work was focused on bringing Xen into the FreeBSD 'newbus' framework. Unfortunately, an architectural problem in FreeBSD has stopped us. Xen relies on message passing between to child and parent domains to communicate device configuration, and this message passing requires that tsleep and wakeup work early in boot. That doesn't seem to be the case, and it's unclear what it would take to make it work. Without the newbus work, it's hard to complete the Dom0 code, and impossible to support Xen 3.0 features like domain suspension.

Make tsleep and wakeup work during early boot Continue DomU newbus work Continue Dom0 work
TrustedBSD Audit Robert Watson rwatson@FreeBSD.org trustedbsd-audit@TrustedBSD.org TrustedBSD Audit Web Page

In the past three months, the TrustedBSD CAPP audit implementation has been merged to the FreeBSD 7-CURRENT development tree in CVS, and the groundwork has been laid for a merge to 6.X. OpenBSM, a BSD-licensed implementation of Sun's Basic Security Module (BSM) API and file format, as well as extensions to support intrusion detect applications. New features included support for audit pipes, a pseudo-device that provides a live audit record trail interface for intrusion detection applications, and an audit filter daemon that allows plug-in modules to monitor live events.

Complete audit coverage of non-native system call ABIs, some more recent base system calls. Integrate OpenBSM 1.0 alpha 6, which includes auditfilterd and the audit filter API.
TrustedBSD OpenBSM Robert Watson rwatson@FreeBSD.org trustedbsd-audit@TrustedBSD.org TrustedBSD OpenBSM Web Page

OpenBSM is a BSD-licensed implementation of Sun's Basic Security Module (BSM) API and file format, based on Apple's Darwin implementation. OpenBSM 1.0 alpha 5 is now available, and includes significant bugfixes, documentation, and feature enhancements over previous releases, including 64-bit token support, endian-independent operation, improved memory management, and bug fixes resulting from the static analysis tools provided by Coverity and FlexeLint. Recent versions are now built and configured using autoconf and automake, and have been built and tested with FreeBSD, Mac OS X, and Linux.

Complete OpenBSM file format validation test suite. Finalize audit filter API. Complete file format documentation; record documentation for new record types associated with Mac OS X, FreeBSD, and Linux specific events not present in documented Solaris record format.
ARM Support for TS-7200 John-Mark Gurney jmg@FreeBSD.org TS-7200 Board Perforce Code Location FreeBSD/arm TS-7200 dmesg output

This is just an update to note that TS-7200 is building and running with a recent -current.

I have been working on getting FreeBSD/arm running on the TS-7200. So far the board boots, and has somewhat working ethernet (some unexplained packet loss). I can netboot from a FreeBSD/i386 machine, and I can also mount msdosfs's on CF.

Figuring out why some small packets transmit with error (if someone can get Technologic Systems to pay attention to me and this issue, that'd be great!) EP93xx identification information to properly attach various onboard devices
Ultrasparc T1 support Kip Macy kmacy@FreeBSD.org John Gurney jmg@FreeBSD.org T1 processor and hypervisor documentation. TODO list

FreeBSD has been ported the T1, Sun's newest processor. FreeBSD currently runs multi-user SMP. JMG is actively working on improving device support.

The port has taken several weeks longer than initially anticipated as the majority of the current sparc64 port could not be re-used.

OpenBSD packet filter - pf Max Laier mlaier@FreeBSD.org

Work towards importing the upcoming OpenBSD 3.9 version of pf is starting slowly. There are a couple of infrastructural changes (e.g. interface groups) that need to be imported beforehand. This work is in the final stage of progress.

A couple of bugfixes have happend since the last report and will be available in FreeBSD 6.1/5.5. pf users are strongly encouraged to upgrade to RELENG_6 as the version present in RELENG_5 is collecting dust.

diff --git a/en/news/status/report-2006-04-2006-06.xml b/en/news/status/report-2006-04-2006-06.xml index e79a4897e2..babfce535b 100644 --- a/en/news/status/report-2006-04-2006-06.xml +++ b/en/news/status/report-2006-04-2006-06.xml @@ -1,2141 +1,2141 @@ - + April-June 2006
Introduction

With the release of FreeBSD 5.5 and FreeBSD 6.1, the second quarter of 2006 has been productive. Google is sponsoring 14 students to work on FreeBSD as part of their Summer of Code Program (most of which already submitted a report for elaboration on their projects).

Sun's open-source software is starting to make its way into FreeBSD as a port of DTrace is nearing completion and a port to the UltraSparc T1 processor (which gives a great push to the ongoing SMP efforts). Having a powerful debugging tool combined with a CPU that can run up to 32 concurrent threads helps to identify scalability issues.

BSDCan 2006 was yet again a smashing success and much was covered in the 2-day developer summit. As a product of the conference, a new focus on FreeBSD for the embedded sector has started. Various ARM boards are targeted, a MIPS32 port is gearing up and people are looking for other interesting platforms to port FreeBSD to. Preparation for the EuroBSDCon (in Milan, Italy) on November has already issued a call for papers.

In addition, a lot of spring cleaning is taking place in the network stack. After conclusion of the KAME project, IPv6 code integration has been refocused and a fully locked port of SCTP is in the final stage of integration. Of course, all this goes without noting all the progress made with the other network projects.

Please read below for more detailed news on the projects that happened in FreeBSD during the last three months. If you are interested in helping, consider the "Open Tasks lists" provided with some reports. In addition we would like to point you at the list of projects and ideas for volunteers and hope to receive a status report from you next time.

Thanks to all reporters for your excellent work and timing! Enjoy reading.

soc Google summer of code proj Projects net Network infrastructure kern Kernel docs Documentation bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous BSDCan Dan Langille dan@langille.org BSDCan

BSDCan 2006 continues to impress. Again this year, we had a good collection of talks from a wide range of speakers. In all, we had over 200 people from 14 different countries.

Our sponsorship pool continues to grow. This year we had sponsorship from:


The t-shirts were very popular, with all of them going in very short time. Of course, it helped that this year they were free, courtesy of PARSE.

The 2007 planning has already begun and we look forward to another popular and successful event.

My thanks to the 2006 program committee, the speakers, the volunteers, the sponsors, and, of course, the attendees.

See you at BSDCan 2007.

Release Engineering Release Engineering Team re@FreeBSD.org

The release engineering (RE) team announced the availability of FreeBSD 5.5 and 6.1, both in May 2006. FreeBSD 5.5 is the last planned release from the RELENG_5 branch in CVS. For the most part, its main features consist of bugfixes, security patches, and minor updates. We encourage users to move towards the 6.x series of releases whenever practical. FreeBSD 6.1 is the latest of the releases to come from the RELENG_6 branch in CVS. It includes (among many other things) improved support for WiFi devices, additional network and disk controller drivers, and a number of fixes for filesystem stability. The next release to be issued from this branch will be FreeBSD 6.2, which is currently scheduled for September 2006.

The RE team is currently in a ``between releases'' mode. Current activities include working with security-team@ on some errata fixes for the RELENG_6_1 branch and producing snapshots of HEAD and RELENG_6 at the start of each month.

Several personnel changes have taken place recently. Scott Long has stepped down from his position on the RE team; we thank him for his considerable efforts over the past four years. In his place, Ken Smith has taken over the role of lead release engineer. Bruce A. Mah has rejoined the RE team after a two-year sabbatical.

Giant-Less USB framework Hans Petter Sirevaag Selasky hselasky@c2i.net Current files Easy to install tarballs

For some time now I have been working on converting the existing USB device drivers to my new and mutex enabled USB API. I have converted "ulpt", "ums", "uhid", "ukbd", "ugen", "uaudio", and a few others. Around 10 USB device drivers are left to convert. Most of these are network device drivers.

At the present moment I am working on getting scatter and gathering support working for all USB host controllers. Scatter and gathering means that one allocates PAGE_SIZE bytes of memory at a time, and then fills these memory blocks up as much as possible with USB host controller structures and buffers. This should solve problems allocating DMA-able memory when the system memory becomes fragmented.

If anyone wants to help convert the remaining USB device drivers, please drop me an e-mail.
SSE2 Kernel support Attilio Rao attilio@freebsd.org Project details Ongoing development

Some FPU system and kernel memcpy/copyin/copyout changes have been performed. In particular, a per-CPU save area has been introduced (protected with an interlock) in order to assure a stable saving mechanism. copyout/copyin have changed in order to use vectorised version of memcpy and an xmm version of memcpy has been provided.

Benchmarks on different versions of xmm copy, in particular showing differences between UP and SMP architectures (evaluating possibility to add block prefetch, non-temporal hints usage, etc.) Modifying npxdna trap handler in order to recognise xmm environment usage and replace fxsave with 8-movdqa
BSNMP Bridge module Shteryana Shopova shteryana@FreeBSD.org P4 workspace Wiki page

As part of my SoC 2006 project I am working on implementing a BRIDGE monitoring module for FreeBSD's BSNMP daemon. Initial prototyping is done and some kernel changes are coming to be able to access all needed data. In addition to IETF RFC 4188, which was designed for monitoring a single bridge, this snmp module will support monitoring of multiple bridge devices as supported by FreeBSD.

Finish kernel changes and the code for the snmp module. Testing.
DTrace John Birrell jb@freebsd.org

Anonymous enablings now work. There is a new option in the boot loader menu to load the DTrace modules and trace the kernel boot process.

Sun Microsystems has been very supportive of the FreeBSD port and has generously provided a Sun Fire T2000 server to allow Kip Macy's sun4v port to be merged into the DTrace project tree.

The DTrace project tree sources are now exported to cvsup10.freebsd.org

Refer to the project page for more details.

Current effort centres around making DTrace useful for the sun4v porting effort which has shown up scalability issues with the current FreeBSD SMP implementation. DTrace should be ideal for analysing those issues.
Embedded FreeBSD George Neville-Neil gnn@freebsd.org Main Site

There are several projects moving forward in the embedded area. For now the main location for new information is www.embeddedfreebsd.org. We have also created a new mailing list, freebsd-embedded@freebsd.org , which is meant to eventually replace the freebsd-small. A call was put out on small for people to move to embedded.

Update Developers Handbook with information on building embedded versions of FreeBSD Help with the MIPS port Help with the ARM port Investigate an SH port (requested by folks in Japan where the Hitachi SH processor is quite popular in embedded)
EuroBSDCon 2006 - November 10th - 12th, Milan, Italy Massimiliano Stucchi stucchi@eurobsdcon.org Official Website

This year's EuroBSDCon will be held in Milan, Italy, on November 10th through 12th.

Hosted in the foggy northern Italy, the fifth EuroBSDCon aims at being a new successful chapter in the itinerant series of European BSD conferences.

EuroBSDCon represents the biggest gathering for BSD developers from the old continent, as well as users and passionates from around the World. It is also a chance to share experiences, know-how, and cultures.

For the first time, parallel to the main event, an event for wives/girlfriends/friends will be organised. It will consist of guided tours of the city of Milan, a probable trip to Como and visits to various museums. We're also working towards offering a show at the Teatro alla Scala.

The FreeBSD developer summit will be also held on November 10th.

The Call For Papers is out, so everybody is invited to send in papers or tutorials that might be of interest to the community The Conference Organisers are also looking for sponsors. Feel free to contact oc@eurobsdcon.org in order to discover the different sponsoring opportunities.
FAST_IPSEC Upgrade George Neville-Neil gnn@freebsd.org Bjoern A. Zeeb bz@freebsd.org

Continuing to add IPv6 support to FAST_IPSEC. Test environment is now stable. Can build and run kernels with FAST_IPSEC and INET6 enabled but IPSec in IPv6 is now broken and being worked on.

Complete move to FAST_IPSEC type processing for IPv6. This is complicated by the structure of the IPv6 code itself which, unlike IPv4 splits transport and tunnel mode processing across the output routine.
FreshPorts Dan Langille dan@langille.org FreshPorts

FreshPorts has seen several new features recently:


Most of the work lately has been optimisation, either at the database level or at the web application level.

A 2U server was recently donated to the FreshPorts / FreshSource / FreeBSD Diary / BSDCan group. We have also received a RAID card. Now we're looking for some hard drives.

Over the past few weeks, work has concentrated on benchmarking the new server and getting it ready for production. Eventually it will need a new home as I don't really want it running in my basement all the time (it's really loud!).

Thanks to iXsystems and 3Ware for their contributions to this project.

We would like some more hardware (CPUs and HDD). Details here
GJournal Pawel Jakub Dawidek pjd@FreeBSD.org Announce. Patches for HEAD. Patches for RELENG_6.

GJournal is a GEOM class which provides journaling for GEOM providers. It can also be used to journal various file systems with just a minimal filesystem-specific portion of code. Currently only UFS journaling is implemented on top of gjournal. Being filesystem-independent and operating below the file system level, gjournal has no way to distinguish data from metadata, thus it journals both. One of the nice things about gjournal is that it works reliable even on disks with enabled write cache, which is often not the case for journalled file systems. And remember... fsck no more.

I'm looking for feedback from users who can test gjournal in various workloads.
gvirstor Ivan Voras ivoras@freebsd.org

The purpose of gvirstor module is to provide the ability to create a virtual storage device of arbitrarily large size (typically several terabytes) which consists of an arbitrary number of physical storage devices (actually any lower-level GEOM providers, including RAID devices) of arbitrary size (typically 50 GB - 400 GB hard drives). Storage space from these components is carved into small chunks (for example 4 MB) and allocated (committed) to the virtual device on as-needed basis.

Development has started and is progressing as planned (though a little bit slow). Metadata format and virtual storage allocation formats have been defined and more serious coding is in progress.

Much user testing will be needed (though not currently)
FreeBSD list of projects and ideas for volunteers Joel Dahl joel@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org

The FreeBSD list of projects and ideas for volunteers is doing well. Several items were picked up by volunteers and have found their way into the tree. Others are under review or in progress. We are looking forward to hear about new ideas, people willing to act as technical contacts for generic topics such as USB or specific entries (already existing or newly created) and suggestions for existing entries or completion reports for (parts of) an entry.

Add more ideas. Find more technical contacts. Find people willing to review/test implementations of (somewhat) finished items.
IPv6 cleanup Bjoern A. Zeeb bz@freebsd.org Project summary P4 workspace for future changes

Initial changes include:


Next steps will be to reduce the number of global variables and caches.

Cleanup code. Make everything MPSafe. Enhance things and add new features.
IPv6 Vulnerabilities George Neville-Neil gnn@freebsd.org Clément Lecigne clemun@GMAIL.COM

Clement has been working both with libnet and gnn's Python based packet library (PCS) to produce code to test for vulnerabilities in IPv6. To Clement has found some issues, all of which have been reported to his mentor and to Security Officer at FreeBSD.org Vulnerabilities will not be reported here.

Get 0.1 of PCS on to SourceForge for wider use.
Jail Resource Limits Chris Jones cdjones@freebsd.org

Project is in development with initial working software expected mid-July 2006. CPU limits will be implemented with a hierarchical scheduler: (initially) using a round-robin scheduler to select which jail to run a task in and then delegating which task in the jail to be run to a per-jail scheduler.

Complete round-robin inter-jail scheduler (with existing 4BSD schedulers implemented per jail). Add hooks for memory tracking.
K Kernel Meta-Language Spencer Whitman joecat@cmu.edu Poul-Henning Kamp phk@FreeBSD.ORG

A simple lexer and parser have almost been completed. Also significant planing for future additions to K have been thought up.

Finish the lexer and parser Implement the #! preprocessor function Add lint like functionality to the preprocessor Add style(9) checking to the preprocessor Allow for detection of unused #includes
Linuxolator kernel update to match functionality of 2.6.x Roman Divacky rdivacky@freebsd.org Alexander Leidinger netchild@freebsd.org Summer of Code proposal

FreeBSD linux emulation layer (linuxolator) currently implements most of the functionality necessary to emulate 2.4.2 linux kernel, but linux world has moved forward and current linux world requires 2.6.x features. The aim of this SoC task is to make Fedora Core 4 linux-base to be able to run with 2.6.x kernel. Currently this means extending clone() syscall and implement pthread related things. This involves TLS implementation (sys_set_thread_area syscall) and possibly tid manipulation (used for pthread_join etc.) and finally futexes (linux fast user-space mutexes implementation). This should enable pthread-linked programs to work. After this is done there may be other things necessary to implement however, only time will tell. I am funded by google.com in their SoC to do this work and I'll continue to work on this after the summer hopefully as a part of my MSc. thesis.

Finish the TLS thing + other thread related things (tid comes to mind and looks necessary for pthread to work) Futexes also look necessary for pthread to work maybe other things to be able to run basic programs under 2.6.16 linuxolator
Improving Ports Collection Gábor Kövesdán gabor@FreeBSD.org Wiki page about the project Explaining DESTDIR ports/98105

The improved support for the i386 binaries are ready for -exp run. It only allows installing such ports on amd64 and ia64 when there's a compatibility layer compiled into the kernel and the 32-bit libraries are installed under /usr/lib32.

The DESTDIR support are in progress. It works for the simplest ports without USE_* that don't have a [pre|do|post]-install target. There are more complicated issues with e.g. conflict checking in DESTDIR, deinstalling from DESTDIR, those have to be fixed as well.

DESTDIR issues should be fixed. All ports should be examined whether they respect CC/CFLAGS, and the erroneous ones should be fixed. Fetch scripts should be taken out of bsd.port.mk to be separate scripts. A tool should be written that makes possible to cross-compile ports. A good plist generator tool should be written for porters or the old one in ports/Tools/scripts should be updated.
Hungarian translation of the webpages Gábor Kövesdán gabor@FreeBSD.org Current status

The translated webpage is almost ready now. This Hungarian translation is a "lite" version of the original English webpages, since there are parts that are irrelevant for the Hungarian community, or has pieces of data that change quickly, so it's no use to translate these pages now, maybe later, if we have more Hungarian contributors, but this webpage would be a good starting point in translating the documentations, and we need a good place to put translated documentations anyway.

I'm going to be very busy with SoC this summer, but I'll try to find people that can help me out in this project. Any help appreciated.

The remaining important pages should be translated. The press/media/news sections should be restructured somehow to being fed from the English webapges, since we don't have too much Hungarian resource to make these up to date. There's a rendering issue when browsing the pages with JavaScript enabled, but this can be server-side for me, this should be investigated as well.
Multi-IP v4/v6 jails Bjoern A. Zeeb bz@freebsd.org P4 workspace

As an intermediate step until FreeBSD will have full network stack virtualisation this work shall provide support for multi-IP IPv4/v6 jails.

These changes are based on Pawel Jakub Dawidek's work for multi-IPv4 jails and some initial work from Olivier Houchard for single-IPv6 jails.

The changes need some more testing but basically things work.

This is not considered to be the right thing todo so do not ask for official support or if this will be committed to the FreeBSD source repository.
After some more cleanup of non-jail related IPv6 changes I will publish a patch for HEAD and perhaps RELENG_6 for everyone who wants to give it a try anyway.

(IPv6) related security checks. Write some tests. Especially IPv6 changes need more testing. Check what general changes might need merging to HEAD.
FreeBSD NFS Status Report Chuck Lever cel@FreeBSD.org

Mohan Srinivasan committed his changes to make the NFSv2/3 client MP safe to HEAD this quarter. Changes may be back-ported to 6.x soon.

Robert Watson and Chuck Lever held a discussion about the future of the in-kernel NFSv4 client during BSDCan 2006. The current NFSv4 client is unmaintained. Chuck also pointed out the long series of unfixed PRs against the legacy client (NFSv2/3). These are at the top of his priority list. Robert is also interested in making NFSv4-style ACLs the lingua franca for FreeBSD file systems. There was some discussion about integrating Rick MacKlem's NFSv4 server into 7.x.

Chuck Lever became a full source committer during this quarter.

Nss-LDAP importing and nsswitch subsystem improvement Michael Bushkov bushman@FreeBSD.org Wiki-pages containing an up-to-date information about project implementation details.

The basic goals of this SoC 2006 project are moving nsswitch-modules out of the libc, extending the caching daemon and importing nss_ldap into the base source tree. 2 milestones of the project are currently completed.

1. Nss-modules were successfully moved out of the libc into the separate dynamic libraries. In order for static binaries to work properly (they can't use dynamic nss-modules), nss-modules are linked statically into the libc.a. As the side-effect of nss-modules separation, getipnodeby***() functions were rewritten to use gethostby***() functions and not the nsdispatch(3) call. Caching daemon's "perform-actual-lookups" option was extended to support all implemented nsswitch databases.

2. A set of regressions tests was made to test nsswitch-related functions. These tests are also capable of testing the stability of these functions' behaviour after the system upgrade.

Import nss_ldap into the sources tree. Improve the caching daemon's performance.
pfSense Scott Ullrich sullrich@gmail.com

pfSense is rapidly approaching release. We are down to a handfull of bugs that should be fixed in the coming weeks. We should have a release around the time of our 2nd annual hackathon which is taking place on July 21st - July 28th. Many exciting sub-projects are taking place within pfSense and the project is gaining new developers monthly.

http://cvstrac.pfsense.com/rptview?rn=6 lists the remaining open bugs.
Low-overhead performance monitoring tools Joseph Koshy jkoshy@FreeBSD.org Wiki page tracking LibELF Wiki page for PmcTools PMC Tools Project

As an intermediate step towards implementing support for callgraphs and cross-architecture performance measurements, I am creating a BSD-licensed library for ELF parsing & manipulation. This library will implement the SysV/SVR4 (g)ELF[3] API.

Current status: Implementation of the library is in progress. A TET-based test suite for the API and manual pages documenting the library's interfaces are being concurrently created.

Work is being done in FreeBSD's Perforce repository. I hope to be ready for general review by the end of July '06.

Reviewers are needed for the code and the test suite. If you have extensions to the stock SysV/SVR4 ELF(3) API that you would like to see in -lelf, please send mail.
Ports Collection Erwin Lansing erwin@FreeBSD.org Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports monitoring system FreeBSD ports unfetchable distfile survey (Bill Fenner's report) portscout The FreeBSD Ports Management Team marcuscom tinderbox

During this time, a huge number of ports PRs were committed, bringing us back down below 800 for the first time since the 5.5/6.1 release cycle. This is due to a great deal of work, especially from some of our newest committers.

This is all the more notable given the fact that we have been adding new ports at a rapidly accelerating rate. We have now exceeded the 15,000 port mark!

Three sets of changes have been added to the infrastructure, including updates of default versions of MySQL, PHP, LDAP, and linux_base, and numerous bugfixes and improvements. About 2 dozen portmgr PRs were closed due to this.

In addition, a large-impact commit was made that attempts to move us to a single libtool that is as unmodified from 'stock' libtool as we can. Plans are also in place to do this for the autotools.

Several people are at work on implementing the modularised xorg ports. Most of the work is done but several key pieces remain. Once this is finished, an -exp regression test will be needed (most likely, more than one :-) ) It is possible that before this we will need to do a regression test that moves X11BASE back into LOCALBASE. This is still under study.

Gábor Kövesdán started a Google Summer of Code project on some highly needed improvements on the ports infrastructure (see elsewhere in this report). As this is a long term project, gtetlow kindly imported the most important ports infrastructure files into perforce to ease development. Other developers are encouraged to use perforce for ports development, especially as it can help keeping patches up-to-date while going stale in GNATS. Even though linimon has been pushing hard on running experimental builds on the test cluster, it will take some time to work through the backlog.

erwin added a ports section to the list of projects and ideas for volunteers at the FreeBSD website. Have a look if you want to work on the ports system. Don't hesitate to send additional ideas, and committers are encouraged to add themselves as technical contacts.

sem adopted portupgrade after it had been neglected for some time and has been very active on upgrades and bugfixing.

dougb has continued to enhance his portmaster script and people are finding success with it; although not designed to be as full-featured as portupgrade, it does seem to be easier to understand and use.

shaun has contributed portscout, a scanner for updated distfiles, to the ports collection.

marcus upgraded GNOME to 2.14.1.

As well, there have been new releases of the ports tinderbox code.

edwin has been hard at work on a PR-autoassigner for ports PRs, which has saved a lot of time and been well-received. It has now been installed on a freebsd.org machine (hub).

linimon has been more active in pursuing maintainer-timeouts, and has reset a number of inactive maintainers, with more in the pipeline. The intent is to try to reduce the number of PRs that sit around unanswered for two weeks. In almost all cases the resets are due to no response at all; maintainers who are merely "busy" are not the source of most of these problems, and deserve the benefit of the doubt. Some of the maintainers that have been reset haven't contributed in months or even years.

We have added 10 (!) new committers since the last report.

We need help getting back to our modern low of 500 PRs. We have over 4,000 unmaintained ports (see, for instance, the list on portsmon ). We are always looking for dedicated volunteers to adopt at least a few ports. We can always use help with infrastructural enhancements. See the ports section of the list of projects and ideas .
BSDInstaller Andrew Turner soc-andrew@FreeBSD.org

Since the last status report ports have been created for all parts of the BSDInstaller except the backend.

A snapshot of the BSDInstaller was released during this quarter. This has shown a number of bugs with the installation process. Most have now been fixed.

Giant-Less UFS with Quotas Konstantin Belousov kib@FreeBSD.org

The patches to allow UFS operate with quotas in Giant-less mode are brewed for long now. Since recent huge pile of fixes into snapshots code, I think the problems you could encounter are caused solely by the patch.

Aside performance benefits, patch has another one, much more valuable. It makes UFS operating in one locking regime whatever options are compiled into kernel. I think, in long term, that would lead to better stability of the system.

I need testers feedback. Both stability reports and performance measurements are welcomed !
Update of the Linux userland infrastructure in the Ports Collection Boris Samorodov bsam@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Emulation Mailinglist emulation@FreeBSD.org

We updated the default linux base port to Fedora Core 4 and the default linux X11 libs port to the X.org RPM in FC4.

An update to FC5 or FC6 has to wait until the kernel got support for syscalls of a newer linux kernel. See the corresponding SoC project report for more.

Sound subsystem improvements Ariff Abdullah ariff@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Multimedia Mailinglist multimedia@FreeBSD.org Some patches. The FreeBSD Project Ideas List. Rudimentary HDA support.

Since the last status report we fixed some more bugs, added basic support for envy24 chips and cleaned up the source for the emu10kx driver in the ports to make it ready for import into the base system.

We also got some patches with a little bit of infrastructure for Intel HDA support. It's not finished and also not usable by end users yet.

Have a look at the sound related entries on the ideas list. sndctl(1): tool to control non-mixer parts of the sound system (e.g. spdif switching, virtual-3D effects) by an user (instead of the sysctl approach in -current); pcmplay(1), pcmrec(1), pcmutil(1). Plugable FEEDER infrastructure. For ease of debugging various feeder stuff and/or as userland library and test suite. Support for new hardware (envy24, Intel HDA).
XFS for FreeBSD Russell Cattelan cattelan@xfs.org Alexander Kabaev kan@freebsd.org Craig Rodrigues rodrigc@freebsd.org XFS for FreeBSD

The XFS for FreeBSD project is an effort to port the publically available GPL'd sources to SGI's XFS filesystem to FreeBSD.

In December, we imported a version of XFS into FreeBSD-CURRENT which allows FreeBSD to mount an XFS filesystem as read-only.

As a side effort, we have been continuing on the work that PHK started to clean up the mount code in FreeBSD. We can use the existing FreeBSD mount(8) utility to mount an XFS partition, without introducing a new mount_xfs utility.

We need to implement support for writing to XFS partitions
SCTP Integration George Neville-Neil gnn@freebsd.org Randall Stewart rrs@cisco.com Stream Transmission Control Protocol

For the last several months Randall Stewart has been working in HEAD and STABLE to get us ready to integrate the SCTP protocol (Stream Transmission Control Protocol) into FreeBSD. He is currently working on a patch to share with a wider audience but needs to do some integration work first. Randall has a provisional commit bit and will be working with gnn on getting code committed to the HEAD of the tree.

When this gets integrated it needs lots of testers.
FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In the time since the last status report, four security advisories have been issued concerning problems in the base system of FreeBSD; of these, one problem was "contributed" code, while three were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 71 new entries have been added, bringing the total up to 757.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.11, FreeBSD 5.3, FreeBSD 5.4, FreeBSD 5.5, FreeBSD 6.0, and FreeBSD 6.1. The respective End of Life dates of supported releases are listed on the web site; of particular note, FreeBSD 5.3 and FreeBSD 5.4 will cease to be supported at the end of October 2006, while FreeBSD 6.0 will cease to be supported at the end of November 2006.

Gvinum improvements Ulf Lilleengen lulf@stud.ntnu.no

I have been working on porting missing features in gvinum from vinum, as well as adding new features.

So far the resetconfig, detach, dumpconfig, setstate (on plexes and volumes) and stop commands have been implemented, as well as some other minor fixes. The attach command is currently being implemented, and started on disk-grouping. Currently most of this is in p4, but patches will be submitted as soon as possible.

Wireless Networking Sam Leffler sam@errno.com

The wireless support has been stable for a while so most work has focused on bug fixing and improving legacy drivers.

Max Laier and I worked on improving support for Intel wireless cards. The results of this work included significant improvements to the iwi(4) driver (for 2195/2200 parts) and the firmware(9) facility for managing loadable device firmware. There is also an updated ipw(4) that has improvements similar to those done for iwi that is in early test. Support for the latest Intel devices, the 3945 pci-express cards, is planned for later this summer.

Atheros support was updated with a new hal that fixes a few minor issues and provides known working builds for SPARC, PPC, and ARM platforms. There is also working MIPS support that will be used when the MIPS port is ready to test. Otherwise one useful bug was fixed that affected AP operation with associated stations operating in power save mode.

wpa_supplicant and hostapd were updated to the latest stable build releases from Jouni Malinen.

Experimental changes to support injection of raw 802.11 frames using bpf were posted for comment. This work was done in collaboration with Andrea Bittau.

Legacy drivers such as wi are languishing and need maintainers. This is prerequisite to bringing in new 802.11 features such as improved scanning and virtual ap.
xscale board buy Sam Leffler sam@errno.com

With the help of Jim Thompson of Netgate ( http://www.netgate.com/ ) the FreeBSD Foundation arranged a purchase of xscale-based boards for folks interested in ARM support. Developers were able to purchase boards at a reduced cost. The goals were to accelerate and/or improve support for the ARM platform and to set forth at least one board as a reference platform for the ARM support. Netgate will be stocking lower-cost models of the board later in the year (a special order was made for boards with only 2 mini-pci slots).

Interrupt handling Paolo Pisati piso@FreeBSD.org

With the introduction of fine grained locking in the SMPng project, the FreeBSD kernel went under a major redesign, and many subsystem changed significantly with it. In particular, device driver's interrupt context ("the bottom half") had the necessity to synchronise with process context ("the top half") and share data in a consistent manner without using spl*(). To overcome this problem, a new interrupt model based around interrupt threads was employed, together with a fast interrupt model dedicated to particular driver handlers that don't block on locks (i.e. serial port, clock, etcetc). Unfortunately, even if the interrupt thread model proved to be a reliable solution, its performance was not on par with the pre SMPng era (4.x), and thus others solutions were investigated, with interrupt filtering being one of that.

As part of my Summer of Code 2006 work, I'm implementing interrupt filtering for FreeBSD, and when the framework will be in place I'll compare the performance of filters, against all the previous models: pre-SMPng(4.x), ithread and polling.

The most important modifications to the src tree so far were:


The next milestone is to have all the different models (filters only, ithread only and filter + ithread) work together reliably.

Arm is largely untested Sparc64 needs more work on low level (.s) interrupt routine
PowerPC Port Peter Grehan grehan@freebsd.org

The project is slowly starting to ramp up after a long move-induced hiatus.

Alan Cox has almost completed making the pmap module Giant-free.

TrustedBSD Audit Robert Watson rwatson@FreeBSD.org Wayne Salamon wsalamon@FreeBSD.org Christian Peron csjp@FreeBSD.org TrustedBSD Audit Web Page

TrustedBSD Audit provides fine-grained security event auditing in FreeBSD 7.x, with a planned merge to 6.x for FreeBSD 6.2. Work performed in the last three months:

Bring audit event daemon API and implementation to maturity. Currently these are not installed by default in the CVS-merged version. Complete system call coverage. Allow finer-grained configuration of what is audited: implement control flags regarding paths, execve arguments, environmental variables. Support for auditing MAC policy data. Additional user space application coverage, such as application layer audit events from adduser, rmuser, pw, etc.
diff --git a/en/news/status/report-2006-06-2006-10.xml b/en/news/status/report-2006-06-2006-10.xml index d062993f59..07c217bf1c 100644 --- a/en/news/status/report-2006-06-2006-10.xml +++ b/en/news/status/report-2006-06-2006-10.xml @@ -1,2625 +1,2625 @@ - + July-September 2006
Introduction

This report covers FreeBSD related projects between June and October 2006. This includes the conclusion of this year's Google Summer of Code with 13 successful students. Some of last year's and the current SoC participants have meanwhile joined the committer ranks, kept working on their projects, and improving FreeBSD in general.

This year's EuroBSDCon in Milan, Italy has meanwhile published an exciting program. Many developers will be there to discuss these current and future projects at the Developer Summit prior the conference. Next year's conference calendar has a new entry - in addition to the now well established BSDCan in Ottawa - AsiaBSDCon will take place in Tokyo at the begining of March.

As we are closing in on FreeBSD 6.2 release many bugs are being fixed and new features have been MFCed. On the other hand a lot of the projects below already are focusing on FreeBSD 7.0 and promise a lot of exciting news and features to come.

Thanks to all the reporters for the excellent work! We hope you enjoy reading.

soc Google Summer of Code proj Projects team FreeBSD Team Reports net Network Infrastructure kern Kernel docs Documentation bin Userland Programs arch Architectures ports Ports misc Miscellaneous OpenBSD dhclient Brooks Davis brooks@FreeBSD.org

Most dhclient changes in HEAD have been merged to 6-STABLE for 6.2-RELEASE. The highlight of these changes is a fix for runaway dhclient processes when packets are not 4 byte aligned. Further changes including always sending client identifiers are scheduled for merge before the release. Work is ongoing to improve dhclient's interaction with alternate methods of setting interface addresses.

FreeBSD/arm on Atmel AT91RM9200 Warner Losh imp@freebsd.org Olivier Houchard cognet@freebsd.org

The FreeBSD/arm port has grown support for the Atmel AT91RM9200. Boards based on this machine are booting to multiuser off either NFS or an SD card. The onboard serial ports, PIO, ethernet and SD/MMC card controllers are well supported. Support for the SSC, IIC and SPI flash parts in the kernel will be forthcoming shortly.

In addition to normal kernel support, the port includes a boot loader that can initialize memory and boot off IIC eeprom, SPI DataFlash, BOOTP/TFTP and SD memory cards.

The port will be included in forthcoming commercial products.

Add support for other members of the AT91 family of arm9 processors. Finish support for AT45D* flash parts. Finish support for USB ports Write support for USB Device functionality
Summer of Code Summary Murray Stokely murray@FreeBSD.org FreeBSD Summer of Code 2006 SoC 2006 Student wiki SoC 2006 Perforce trees

We had another successful summer taking part in the Google Summer of Code. By all accounts, the FreeBSD participation in this program was an unqualified success. We received over 150 applications for student projects, amongst which 13 were selected for funding. All successful students received the full $4,500.

These student projects included security research, improved installation tools, new utilities, and more. Many of the students have continued working on their FreeBSD projects even after the official close of the program. At least 2 of our FreeBSD mentors will be meeting with Google organizers in Mountain View this month to discuss the program at the Mentor Summit.

Release Engineering Release Engineering Team re@FreeBSD.org

The FreeBSD Release Engineering team is currently working on FreeBSD 6.2-RELEASE, which is scheduled for release in early November 2006. Some notable features of this release include the debut of security event auditing as an experimental feature, Xbox support, the FreeBSD Update binary updating utility, and of course many fixes and updates for existing programs. Pre-release images for all Tier-1 architectures are available for testing now; feedback on these builds is greatly appreciated. More information about release engineering activities can be found at the links above.

IPv6 Stack Vulnerabilities George Neville-Neil gnn@FreeBSD.org Clement Lecigne clem1@FreeBSD.org SoC Student Wiki PCS Library

The focus of this project was to review past vulnerabilities, create vulnerability testing tools and to discover new vulnerabilities in the FreeBSD IPv6 stack which is derived from the KAME project code. During the summer Clement took two libraries, the popular libnet, and his mentor's Packet Construction Set (PCS) and created tools to find security problems in the IPv6 code. Several issues were found, bugs filed, and patches created. At the moment Clement and George are editing a 50 page paper that describes the project which will be submitted for conference publication.

All of the code from the project, including the tools, is online and is described in the paper.

By all measures, this was a successful project. Both student and mentor gained valuable insight into a previously externally maintained set of code. In addition to the new tools development in this effort, the FreeBSD Project has gained a new developer to help work on the code.

Analyze and Improve the Interrupt Handling Infrastructure Paolo Pisati pisati@FreeBSD.org John Baldwin jhb@FreeBSD.org SoC Student Wiki

This project consisted in the improvement of the Interrupt Handling System in FreeBSD: while retaining backward compatibility with the previous models (FAST and ITHREAD), a new method called 'Interrupt filtering' was added. With interrupt filtering, the interrupt handler is divided into 2 parts: the filter (that checks if the actual interrupt belong to this device) and the ithread (that is scheduled in case some blocking work has to be done). The main benefits of interrupt filtering are:

Moreover, during the development of interrupt filtering, some MD dependent code was converted into MI code, PPC was fixed to support multiple FAST handlers per line and an interrupt stray storm detection logic was added. While the framework is done, there are still machine dependent bits to be written (the support for ppc, sparc64, arm and itanium has to be written/reviewed) and a serious analysis of the performance of this model against the previous one is a work-in-progress

Jail Resource Limits Chris Jones cdjones@freebsd.org Kip Macy kmacy@freebsd.org SoC Student Wiki

We now have support for limiting CPU and memory use in jails. This allows fairer sharing of a systems' resources between divergent uses by preventing one jail from monopolizing the available memory and CPU time, if other users and jails have processes to run.

The code is currently available as patches against RELENG_6, and Chris is in the process of applying it to -CURRENT. More details can be found at JailResourceLimits on the wiki.

Port patches against -CURRENT.
Bundled PXE Installer Markus Boelter m@FreeBSD.org Paul Saab ps@FreeBSD.org SoC Student Wiki

For me, the Google Summer of Code was a new and very exciting experience. I got actively involved in doing Open Source Software and giving something back to the community. Facing some challenges within the project forced me to look behind the scenery of FreeBSD. The result was a better understanding of the overall project. Working with a lot of developers directly also gave a very special spirit to the Google Summer of Code.

I really enjoyed the time and will continue to work on the project after the deadline. For me, it was a great chance to get involved in active development and not just some scripts and hacks at home. Getting paid for the work was just a small part of the overall feeling.

Thanks to the people at the FreeBSD Project and Google for the really, really great time!

Nss-LDAP importing and nsswitch subsystem improvement Michael Bushkov bushman@FreeBSD.org Hajimu UMEMOTO ume@FreeBSD.org SoC Student Wiki Original Project Proposal Detailed Description of the Completed Project

The Project consisted of five parts:

  1. Nsswitch modules and libc separation. The idea was to move the source code for different nsswitch sources (such as "files", "dns", "nis") out of the libc into the separate shared libraries. This task was successfully finished and the patch is available.
  2. Regression tests for nsswitch. A set of regression tests to test the correctness of all nsswitch-related functions and the invariance of their behavior between system upgrades. The task can be considered successfully completed, the patch is available.
  3. Rewriting nss_ldap. Though, this task was not clearly mentioned in the original proposal, during the SoC we found it would be easier, not to simply import PADL's nss_ldap, but to rewrite it from scratch (licensing issues were among the basic reasons for this). The resulting module behaves similarly to PADL's module, but has a different architecture that is more flexible. Though it's basically finished, several useful features from the PADL's nss_ldap still need to be implemented. Despite the lack of some features, this task can be considered successfully completed. Missing features will be implemented as soon as possible, hopefully during September.
  4. Importing nss_ldap into the Base System. The task was to prepare a patch, that will allow users to use nss_ldap from the base system. The task was successfully completed (the patch is available), but required importing OpenLDAP into the base in order for nss_ldap to work properly, and it had led to a long discussion in the mailing list. This discussion, however, have concluded with mostly positive opinions about nss_ldap and OpenLDAP importing.
  5. Cached performance optimization. The caching daemon performance needs to be as high as possible in order for cached to be as close (in terms of speed) to "files" nsswitch source as possible. Cached's performance analysis was made and nsswitch database pre-caching was introduced as the optimization. This task was completed (the patch is available). However there is room for improvement. More precise and extensive performance analysis should be made and more optimizations need to be introduces. This will be done in the near future.

Though none of the code was committed yet into the official FreeBSD tree, my experience from the previous year makes me think that this situation is normal. I hope, that the code will be reviewed and committed in the coming months.

Porting the seref policy and setools to SEBSD Dongmei Liu dongmei@freebsd.org Christian Peron csjp@FreeBSD.org SoC Student Wiki

Dongmei Liu spent the summer working on the basic footwork required to port the SEREF policy to SEBSD. This work has been submitted and can be viewed in the soc2006/dongmei_sebsd Perforce branch. This work was originated from the SEBSD branch: //depot/projects/trustedbsd/sebsd. Additionally setools-2.3 was ported from Linux and can be found in contrib/sebsd/setools directory. It is hoped that this work will be merged into the main SEBSD development branch.

SCTP Integration Randall Stewart randall@freebsd.org George Neville-Neil gnn@freebsd.org

There are currently patches available for testing. A planned integration to HEAD is set to happen in October.

The code still needs plenty of testing. See patches on sctp.org and in -CURRENT soon.
Embedded FreeBSD George Neville-Neil gnn@freebsd.org

Moved the HTML pages into the project CVS tree.

Setup the web site to be served from projects CVS so that it can be updated by others. Complete the ARM port. Work on the MIPS port. Update the documentation to include common tasks for embedded engineers.
FAST_IPSEC Upgrade George Neville-Neil gnn@freebsd.org Bjoern Zeeb bz@freebsd.org CURRENT patch to enable FAST_IPSEC and IPv6

First working version of code. Does not pass all TAHI tests, but does pass packets correctly and does not panic.

More testing of the patch needed.
USB Hans Petter Sirevaag Selasky hselasky@freebsd.org Current USB files My USB homepage

During the last three months I have finished reworking nearly all USB device drivers found in FreeBSD-7-CURRENT. Only two USB drivers are left and that is ubser(4) and slhci. Some still use Giant, but most have been brought out of Giant. At the moment I am looking for testers that can test the various USB device drivers. Some have already been tested, and confirmed to work, while others have problems which need to be fixed. If you want to test, checkout the USB perforce tree or download the SVN version of the USB driver that is available on my homepage. At the moment the tarballs are a little out of date.

Ideas and comments with regard to the new USB API are welcome at: freebsd-usb@freebsd.org.

iSCSI Initiator Damiel Braniss danny@cs.huji.ac.il

This iSCSI initiator kernel module and its companion control program are still under development, but the main parts are working.

Network Disconnect Recovery. Sysctl Interface and Instrumentation. Rewrite the userland side of iscontrol.
GJournal Pawel Jakub Dawidek pjd@FreeBSD.org Patches against HEAD. Patches against RELENG_6.

GJournal seems to be finished. I fixed the last serious bug and it is now stable and reliable in our tests. I'm planning to commit it really soon now.

The work was sponsored by home.pl

AsiaBSDCon 2007 Hiroki Sato hrs@freebsd.org George Neville-Neil gnn@freebsd.org secretary@asiabsdcon.org Conference Web Site

Web site is up and we're soliciting papers and presentations. Some tutorials are already scheduled. Email secretary@asiabsdcon.org if you have questions or submissions.

Send in more papers!
Chinese (Simplified) Project Xin LI delphij@FreeBSD.org Latest snapshot for translated website Latest snapshot for translated documentation

In the previous quarter we primarily focused on overall quality of the translation rather than just increasing the number of translations, and we have strived to make sure that these translated stuff are up-to-date with their English revisions. Also, we have merged the translated website into the central repository.

In the next quarter we will focus on developing documentation that will help to attract more developers.

Translate more development related documentation. Review more of the currently translated documentation.
EuroBSDCon 2006 EuroBSDCon Organizing Committee info@eurobsdcon.org EuroBSDCon Home Page Registration Page

EuroBSDCon 2006 is taking place in Milan (Italy), from the 10th to the 12th of November.

EuroBSDCon represents the biggest gathering for BSD developers from the old continent, as well as users and passionates from around the World. It is also a chance to share experiences, know-how, and cultures.

The program is rich in talks about FreeBSD, with topics ranging from "How the FreeBSD ports collection works" to "Interrupt Filtering in FreeBSD". This means that both the novice and the hacker can enjoy the conference.

Registration is open. The EuroBSDCon Organizing Committee hopes to see you in Milan.

Hungarian translation of the webpages Gábor Kövesdán gabor@FreeBSD.org Snapshot

Since the last status report, there has been a lot of progress. I investigated a lot of charset issues and found out that HTML tidy breaks some entities when using iso-8859-2, so HTML tidy had to be disabled for Hungarian pages.

Translate 4 pages. Review, fix typos and improve the wording where necessary.
FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In the time since the last status report, six security advisories have been issued concerning problems in the base system of FreeBSD; of these, five problems were in "contributed" code, while one was in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 57 new entries have been added, bringing the total up to 814.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.11, FreeBSD 5.3, FreeBSD 5.4, FreeBSD 5.5, FreeBSD 6.0, and FreeBSD 6.1. The respective End of Life dates of supported releases are listed on the web site; of particular note, FreeBSD 5.3 and FreeBSD 5.4 will cease to be supported at the end of October 2006, while FreeBSD 6.0 will cease to be supported at the end of November 2006 (or possibly a short time thereafter in order to allow time for upgrades to the upcoming FreeBSD 6.2).

Summer of FreeBSD security development Colin Percival cperciva@FreeBSD.org

I spent the months of May through August working on improving Portsnap, FreeBSD Update, and devoting more time to my (continuing) role as Security Officer. FreeBSD Update is now part of the FreeBSD base system and is fully supported by the FreeBSD Security Team; updates are currently only being built for the i386 architecture, but AMD64 updates will become available soon.

In an attempt to reduce the number of people running out of date (and unsupported) FreeBSD releases, I wrote an automatic binary upgrade script for upgrading systems from FreeBSD 6.0 to FreeBSD 6.1; I will be releasing a new script for upgrading to FreeBSD 6.2-(RC*|RELEASE) soon (possibly before this status report is published).

Further improvements to Portsnap are still ongoing.

Porting ZFS to FreeBSD Pawel Jakub Dawidek pjd@FreeBSD.org Source code. ZFS porting site. ZFS port announce.

My work is moving slowly forward. ZVOL is, I believe, fully functional (I recently fixed snapshots and clones on zvols), which means you can put UFS on top of RAID-Z volume, take a snapshot of the volume, clone it if needed, etc. Very cool. The hardest part is the ZPL layer, I'm still working on it. Most file system methods work, but probably need detailed review and many fixes. Most of the time these days I'm spending on implementing mmap(2) correctly. It works more or less in simple tests but fails under fsx program. On the other hand, 'fsx -RW' works very stable and reliable. Other test programs (those that don't use mmap(2)) also work quite well. There is still a lot of work to do, mostly in ZPL area, many clean-ups, etc. Some functionality (like ACLs) I haven't even tried to touch yet.

TSO - TCP Segmentation Offload committed Andre Oppermann andre@freebsd.org TSO commit to tcp_output.c TSO em(4) hardware support Enhanced em(4) TSO hw setup for IPv6 and future protocols

TSO - TCP Segmentation Offload support has been committed to the network stack of FreeBSD-current in September 2006. With TSO, TCP can send data in the send socket buffer in bulk down to the network card which then does the splitting into MTU sized packets. On bulk high speed sending the performance is increased by 25% (normal writes) to 108% (sendfile). Jack Vogel and Prafulla Deuskar of Intel committed the driver changes for TSO hardware support of em(4) based network cards.

These changes are scheduled to be backported to FreeBSD 6-STABLE shortly after FreeBSD 6.2-RELEASE is published to appear in upcoming FreeBSD 6.3 early next year.

This work was sponsored by the TCP/IP Optimization Fundraiser 2005.

Highly improved implementations of sendfile(2), sosend_*() and soreceive_stream() Andre Oppermann andre@freebsd.org sendfile(2) patch with detailed performance figures sosend_*() patch with detailed performance figures Combined sendfile(2), sosend_*() and soreceive_stream() patch

The addition of TSO (TCP Segmentation Offload) has highlighted some shortcomings in the sendfile(2) and sosend_*() kernel implementations.

The current sendfile(2) code simply loops over the file, turns each 4K page into an mbuf and sends it off. This has the effect that TSO can only generate 2 packets per send instead of up to 44 at its maximum of 64K. kern_sendfile() has been rewritten to work in two loops, the inner which turns as many pages into mbufs as it can -- up to the free send socket buffer space. The outer loop then drops the whole mbuf chain into the send socket buffer, calls tcp_output() on it and then waits until 50% of the socket buffer are free again to repeat the cycle. This way tcp_output() gets the full amount of data to work with and can issue up to 64K sends for TSO to chop up in the network adapter without using any CPU cycles. Thus it gets very efficient especially with the readahead the VM and I/O system do.

Looking at the benchmarks we see some very nice improvements: 181% faster with new sendfile vs. old sendfile (non-TSO), 570% faster with new sendfile vs. old sendfile (TSO).

The current sosend_*() code uses a sosend_copyin() function that loops over the supplied struct uio and does interleaved mbuf allocations and uiomove() calls. m_getm() has been rewritten to be simpler and to allocate PAGE_SIZE sized jumbo mbuf clusters (4k on most architectures). m_uiotombuf() has been rewritten to use the new m_getm() to obtain all mbuf space in one go. It then loops over it and copies the data into the mbufs by using uiomove(). sosend_dgram() and sosend_generic() have been changed to use m_uiotombuf() instead of sosend_copyin().

Looking at the benchmarks we see some very nice improvements: 290% faster with new sosend vs. old sosend (non-TSO), 280% faster with new sosend vs. old sosend (TSO).

Newly written is a specific soreceive_stream() function for stream protocols (primarily TCP) that does only one socket buffer lock per socket read instead of one per data mbuf copied to userland. When doing netperf tests with WITNESS (full lock tracking and validation enabled) the receive performance increases from ~360Mbit/s to ~520Mbit/s. Without WITNESS I could not measure any statistically significant improvement on a otherwise unloaded machine. The reason is two-fold: 1) per packet we do a wakeup and readv() is pretty much as many times as packets come it, thus the general overhead dominates; 2) the packet input path has a pretty high overhead too. On heavily loaded machines which do a lot of high speed receives a performance increase should be measureable.

The patches are scheduled to be committed to FreeBSD-current at end of October or early November 2006.

This work was sponsored by the TCP/IP Optimization Fundraiser 2005.

Porting Xen to FreeBSD Jue Yuan yuanjue@FreeBSD.org Step-by-step tutorial for installing and using FreeBSD as domU Wiki page for this project

As a participant of Google's Summer of Code 2006, I am focusing on porting Xen to FreeBSD these months. The result of this summer's work include a domU kernel that could be used for installation, a guide for getting started with FreeBSD on Xen, and some other trivial improvements. But there are still a lot of work needing to be done in this area, e.g, the long-expeted dom0 support. So I will continue my work here and try to keep up with the update of Xen itself.

dom0 support is the most urgent
Gvirstor Ivan Voras ivoras@freebsd.org gvirstor home page

Gvirstor is a GEOM class providing virtual ("overcommit") storage devices larger than physical available storage, with possibility to add physical storage on-line when the need arises. Current status is that it's done and waiting commit to HEAD, scheduled for some time after 6.2 is released.

The project is in need of testing! If you have the equipment and time, please give it a try so possible bugs can be fixed before it goes into -CURRENT.
Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom tinderbox

The ports PRs surged (especially due to a large number of new port submissions), but with some hard work we have been able to get back down to around 900. We are rapidly approaching 16,000 ports.

Due to this acceleration in adding new ports, portmgr is now very concerned that we are outstripping the capacity of both the build infrastructure and our volunteers to keep up with build errors and port updates. Accordingly, we've added a guideline (not a rule) that ports should be of more than just theoretical use to be added to the Ports Collection (e.g. we can't support all of CPAN + all of Sourceforge + everything else). Basically, use common sense as a guideline; certainly no one wants to see any kind of "gateway" procedure to get incoming ports approved.

Seven sets of changes have been added to the infrastructure, mostly refactoring and bugfixing.

As part of a Summer of Code project, we have also incorporated some of gabor@'s changes to incorporate better DESTDIR support. However, due to some unanticipated side-effects, more work is going to be needed in this area. gabor@ is continuing to work on the changes.

netchild@ and bsam@ have been doing a great deal of work to bring the linux emulator ports closer to sanity, including bringing up a regression-test suite.

The long-anticipated import of X.Org 7 has stalled due to developer time, mostly to deal with documentation and upgrade instructions. Hopefully this can get done in the early 6.3 development cycle. See the wiki for more information.

As a part of that work, the decision has been made to move away from using X11BASE and just put everything into LOCALBASE; /usr/X11R6 is simply an artifact at this point. A plan for a transition process is underway; a great deal of testing will need to be done, but in the end the ports tree will be much cleaner. The GNOME team has already done the work to move all of their ports over, and it will be incorporated after the 6.2 release is shipped.

tmclaugh@ is looking for someone to take over the C# ports. He has maintained them for over a year and wants more time to be able to work on other projects.

Some work has been done to get rid of FreeBSD 2.X cruft in ports. Further work is needed to get the 3.X cruft removed.

linimon@ did another pass through resetting inactive maintainers. Another list is waiting in the wings.

linimon@ is also working on adding the ability for portsmon to analyze successful packages (not just failed ones), so that queries such as "show me packages that build on i386 but not amd64" and "show me why dependent package foo was not built on bar". This is currently in alpha testing.

We have added 4 new committers since the last report.

We still need help getting back to our modern low of 500 PRs. We have nearly 4400 unmaintained ports (see, for instance, the list on portsmon ). Although there has been a welcome upsurge in new maintainers recently which has dropped the percentage down below 28%, we still need much more help. A test run of gcc4.1 on the ports tree showed around 1000 new build errors. Kris@ has posted some results so that people can start working on the problems now. In particular, it seems that certain older versions of GCC cannot be built with GCC 4.1, so ports that depend on those older versions are going to have to be fixed as well. Although the import of GCC 4.1 to -CURRENT is not imminent, the time to start planning is now. The state of the packages on AMD64 and sparc64 significantly lags that of i386. In many of these cases, packages are not attempted because NOT_FOR_ARCH is used instead of more accurately only setting BROKEN based on ARCH. (pointyhat can be forced to build packages that are marked BROKEN, but not NOT_FOR_ARCH). NOT_FOR_ARCH is supposed to denote only "will never work on this ARCH". Although we have volunteers who have expressed interest in sparc64 (and ia64), we need more people who are running amd64 (especially as a desktop) to help us get more packages working.
CScout on the FreeBSD Source Code Base Diomidis Spinellis dds@FreeBSD.org The CScout project page on the FreeBSD wiki.

CScout is a refactoring editor and source code browser for collections of C code. The aim of the project is to make it easy for FreeBSD developers to use CScout and to improve the FreeBSD source code quality through CScout-based queries and refactorings.

CScout was first applied to the FreeBSD kernel in 2003. Its application at that point involved substantial tinkering with the build system. The version released in October 2006 makes the running of CScout on the three Tier-1 architectures a fairly straightforward procedure. The current version can also draw a number of call graphs; this might help developers better understand foreign code.

Use CScout to locate problematic code areas (for example unused or too liberaly visible objects). Use CScout to globaly rename identifiers in a more consistent fashion. Apply CScout to the userland code. Identify CScout extensions that would help us improve the quality of our code. Arrange for the continuous availability of a live CScout kernel session on the current version of the source code.
Libelf Joseph Koshy jkoshy@FreeBSD.org Wiki page tracking LibELF Wiki page for PmcTools PMC Tools Project

Libelf is a BSD-licensed library for ELF parsing & manipulation implementing the SysV/SVR4 (g)ELF[3] API.

Current status: Implementation of the library is nearly complete. A TET-based test suite for the API is being worked on.

Reviewers are needed for the code and the test suite. If you have extensions to the stock SysV/SVR4 ELF(3) API that you would like to see in -lelf, please send Joseph an email.
DTrace John Birrell jb@freebsd.org

Progress this month has been limited due to my sea-change, moving house to the country.

Sun's OpenSolaris developers have followed through and released the DTrace test suite as part of the OpenSolaris distribution.

jkoshy@'s work on libbsdelf is nearing feature completion for DTrace and will make life easier in FreeBSD for DTrace, given that we have more architectures to support than Sun has.

The FreeBSD project has made available a dual processor AMD64 machine for DTrace porting.

I am currently working through the diffs between the DTrace project in P4 and -current, committing files to -current if they are ready.

TrustedBSD Audit Robert Watson rwatson@FreeBSD.org Christian Peron csjp@FreeBSD.org Wayne Salamon wsalamon@FreeBSD.org TrustedBSD Audit Page OpenBSM Page

The TrustedBSD audit implementation provides fine-grained security event logging throughout the FreeBSD operating system. The big news for the last quarter is that the TrustedBSD audit implementation has been merged into RELENG_6 branch, and appeared in 6.2-BETA2. Over the past few months, work has also occurred in the following areas:

Lots of testing as part of the 6.2-BETA cycle would be much appreciated. Audit support will be considered an experimental feature in FreeBSD 6.2-RELEASE, but we hope that it will be a production feature in 6.3-RELEASE.

Continue expanding auditing of syscall arguments. Continue expanding auditing of administrative tools. More testing! Continue to explore improvements of the administrative model for audit trails, etc.
MMC/SD Support Warner Losh imp@freebsd.org Bernd Walter tisco@freebsd.org

The MMC/SD stack got a significant boost this quarter. Warner Losh and Bernd Walter have written a generic MMC/SD flash card stack for FreeBSD, and have implemented a host controller for the AT91RM9200 embedded ARM controller they are each using in separate projects.

The stack is presently experimental in quality. It is being used as the root file system for these embedded projects. There's been no work done to support hot insertion and removal of cards (neither board wires up the pins necessary, and besides, / disappearing is very bad). There are still many rough edges.

This is a freshly written stack. It has been written using the SD 1.0 (and recently 2.0) simplified specification, with the SanDisk MMC application notes supplementing. The Linux stack looks good, although not entirely standards conforming (there's work in progress that I've not seen that is supposed to fix this) and it is contaminated with the GPL. The OpenBSD stack also looks interesting, but Warner's experience porting NEWCARD over from NetBSD suggested that a fresh rewrite may be faster, at least for the bus and driver level. Since MMC is fairly simple, a port of the sdhci driver might be possible.

Please see the open tasks list.

Write sdhci driver, and integrate it into the current stack. Add support for hot plugging of cards. Add support for MMC cards (SD cards were the first target). Expand SD support to include SDIO cards as well as the new SDHC standard cards. Export stats via sysctl for each of the cards that are found as a debugging and usage monitoring aid. Add support for reading/writing multiple blocks at a time to improve performance. Implement any other host controller. Add proper support for timeouts.
Sun Niagara port Kip Macy kmacy@FreeBSD.org

Support for the UltraSparc T1 (Niagara) continues to improve. The code has recently been checked into public CVS under sys/sun4v.

It isn't clear whether or not I will have time to implement full logical domaining support before the APIs become publicly available. Testing indicates that substantial work will be needed before FreeBSD can take full advantage of all 32 threads.

Random testing and bug fixes. Import and extend improved mutex profiling support. Virtual network and virtual disk device drivers for logical domains.
Xen Port Kip Macy kmacy@FreeBSD.org

Work on Xen support has slowly been continuing in perforce. The SOC student fixed several bugs and is continuing to work on it. Someone is needed who has the time to complete dom0 support and shepherd it production level stability.

Sufficient interest has been expressed in it that it probably makes sense to check it in to public CVS so that more people can try it out. Time permitting, I will bring it up to date and check it in the next month.

dom0 support. General testing and bug fixing.
FreeSBIE FreeSBIE Staff staff@FreeSBIE.org Matteo Riondato matteo@FreeBSD.org FreeSBIE Website FreeSBIE ML Subscription Form FreeSBIE GMV Announcement

FreeSBIE is a FreeBSD based LiveCD.

On August 19th, Matteo Riondato, a member of the FreeSBIE staff, released an unofficial ISO, codename FreeSBIE GMV, based on FreeBSD -CURRENT (read the Announcement to download it). This is supposed to be the first in a series of four ISOs that will end up with the release of FreeSBIE 2.0. Matteo is now working on another ISO, codename FreeSBIE LVC, which is scheduled to be released October 12th.

FreeSBIE 2.0 will be based on FreeBSD 6.2-RELEASE and will hopefully be released at EuroBSDCon 2006 in Milan. It will be available for the i386 and AMD64 platforms.

Test the released ISO in preparation for the release. Suggest software to include in the ISO. Submit a simple and clear but complete fluxbox configuration.
Update of the Linux compatibility environment in the kernel Alexander Leidinger netchild@FreeBSD.org Roman Divacky rdivacky@FreeBSD.org Emulation Mailinglist emulation@FreeBSD.org Wiki page about the linux compatibility environment.

Roman Divacky participated in the Google Summer of Code 2006 and implemented a major part of the syscall compatibility to the 2.6.16 Linux kernel. The work has been committed to -CURRENT (the default compatibility still being a 2.4.2 Linux kernel) and we are working on fixing the remaining bugs as time permits.

"Intron" submitted an implementation for the linux aio syscalls. His work has been committed to the Perforce repository.

We also started to consolidate a list of known bugs, open issues and helpful stuff (e.g. regression tests and their status) in -CURRENT on a page in the FreeBSD wiki (see the links-section). It also contains a link to a more or less up-to-date patch with stuff we have in the Perforce repository so that interested people can help with testing. Thanks to the help of Marcin Cieslak we already fixed some bugs (some of the fixes are already MFCed to -STABLE).

Thanks to the nice regression tests of the Linux Test Project (LTP) we have a list of small (and not so small) things which need to be looked at. This list makes up for a quick start into kernel hacking. So if you have a little bit of knowledge about C programming, and if you want to help us a little bit in improving FreeBSD, feel free to have a look at the list and to try to fix a problem or two. Sometimes it is as easy as "if (error condition) return Esomething;" (but you should coordinate with the emulation mailinglist, so that nobody does some work someone else just did too). Even if you do not know how to program, you can help. Have a look at the wiki page and tell us about things which should get mentioned there too. Or download the patch and test it.

Sound Subsystem Improvements Ariff Abdullah ariff@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Ryan Beasley ryanb@FreeBSD.org Multimedia Mailinglist multimedia@FreeBSD.org Some patches. The FreeBSD Project Ideas List. Wiki page about the sound system.

Since the last status report we added basic support for envy24ht chips, imported the emu10kx driver into the base system and added support for High Definition Audio (HDA) compatible chips.

Additionally the work of Ryan Beasley as part of his Google Summer of Code 2006 participation is committed. It adds compatibility to the Open Sound System (OSS) v4 API as far as this was possible. This allows for more sophisticated programs to be written. For example it is now possible to synchronize the start of multiple sound channels. It is also possible for a driver to support more than the AC97 mixer devices, but so far no driver has been extended to support this yet. More about it can be found in the wiki and in the official OSS documentation.

The wiki page about the sound system was started to describe the current status of the sound system and to provide some information about where we are heading. But more work needs to be done to reach this goal. So far we collected some information about the status of the most recent work in the soundsystem. So if you have a look at it and you think that something important is missing, just tell us about it. While fully prepared content is very welcome, we are even happy about some ideas what we should list on the wiki page.

Have a look at the sound related entries on the ideas list. sndctl(1): tool to control non-mixer parts of the sound system (e.g. spdif switching, virtual-3D effects) by an user (instead of the sysctl approach in -current); pcmplay(1), pcmrec(1), pcmutil(1). Plugable FEEDER infrastructure. For ease of debugging various feeder stuff and/or as userland library and test suite. Extend the wiki page.
Bridge Spanning Tree Protocol Improvements Andrew Thompson thompsa@FreeBSD.org

Work is almost finished to implement the Rapid Spanning Tree Protocol (RSTP) which supersedes Spanning Tree Protocol (STP). RSTP has a much faster link failover time of around one second compared to 30-60 seconds for STP, this is very important on modern networks. The code will be posted shortly for testing and feedback.

OCaml language support in ports Stanislav Sedov stas@FreeBSD.org Framework include file

There were a number of OCaml ports in our tree, and each of them was doing the same work by maintaining OCaml ld.conf in the correct state, installing/removing their files/entries etc. To simplify the task of OCaml-language ports creation, the special framework (bsd.ocamk.mk) was developed and most of the ports were converted to use this framework. This allowed a lot of duplicate code to be removed. This new framework handles all the things required to install an OCaml-language library and properly register it. bsd.ocaml.mk also contains knobs to deal with findlib-powered libraries, modify ld.conf in the proper way, etc. Also, a lot of new Ocaml-related ports were added.

Enlightenment DR17 support in the ports tree Stanislav Sedov stas@FreeBSD.org

Integration of the new innovative e17 window manager into the ports tree is almost completed. A lot of new e17-related applications was ported, all old ports were updated to the latest stable cvs snapshot. The special framework (bsd.efl.mk) was created to support the whole thing and simplify the creation of dependent ports. I'll commit the changes in the days before the ports freeze.

Thanks to Sergey Matveychuk (sem@) for providing a machine to place CVS snapshots on. Without his help it will be impossible.

Port Entrance (xdm-like app, but very appealing). Port Net and Wlan e17 module. Develop FreeBSD-specific e17 apps/modules to use The Ports Collection, system configs, etc.
CPU Microcode Update Software Stanislav Sedov stas@FreeBSD.org

Last month I was working on a driver/module to update the microcode of Intel or AMD CPUs that support having their microcode updated. As you might know these processors are microcode-driven and this firmware can be updated. Intel(R) often releases microcode updates, and AMD(R) updates can be found in BIOS programs. The work is almost finished now, I just need to find a bit of time to test it on AMD64 systems and perform some code cleanup. The driver also provide a way for userland programs to access the Machine Specific Registers (MSR) and CPUID info for a certain cpu. This will allow some programs like x86info to provide more accurate information about cpus in SMP systems and make assumptions based on the contents of the MSR.

Thanks to John Baldwin, Kostik Belousov, John-Mark Gurney and Divacky Roman for helping during development.

Perform testing on the AMD64-based systems. Write manpage. Code cleanup/checks.
Improving FreeBSD Ports Collection Infrastructure Gábor Kövesdán gabor@FreeBSD.org Erwin Lansing erwin@FreeBSD.org Gábors wiki page.

During the Google Summer of Code 2006, Gábor worked on several ideas to improve the ports infrastructure:

  1. New handling for i386 binary ports.
  2. Cleanup: use ECHO_CMD and ECHO_MSG in bsd.port.mk properly.
  3. Add basic infrastructure support for debugging.
  4. Installing ports with different destination (DESTDIR macro).
  5. Cleanup: Move fetch shell scripts out of bsd.port.mk.
  6. Make ports respect CC and CFLAGS.
  7. Cross-compiling Ports.
  8. Plist generator tool.

The first three items have been completed and the next two items are being worked on. The DESTDIR support was more complicated than presumed and took more time than expected to complete. Gábor will continue working to finish these tasks and other ports related tasks. FreeBSD is happy to have interested him to keep working on ports and ports infrastructure.

Gvinum improvements Ulf Lilleengen lulf@pvv.ntnu.no

I thought that since I sent a status report the last time, I might as well send one now.

Since the last status report I have done work on several of the remaining commands as attach, detach, and finally the concat command to be able to create concatenated volumes with one easy command. The mirror and stripe commands are the next step after this.

The most important thing I've been working on is maybe the implementation of drivegroups. I have posted a bit information on this mailinglists, but basically, it's a way to group drives with the same configuration. This way, you can make many commands operate on groups instead of drives, and the group-abstraction will handle how the underlying subdisks are created on the drives. In the future one will be able to move groups to different machines, etc.

I've created a patch of all my work that is not in HEAD yet here (this is a snapshot of my developement branch, so how thing's are done might be changed quite fast): http://folk.ntnu.no/lulf/patches/freebsd/gvinum/gvinum_all_current.diff

Be aware that a there will probably be bugs in the code, so don't use it in production yet!

Thanks to Greg Lehey for offering to help me on getting this into CVS, and all feedback on this has been good.

Remaining components, mirror, stripe and some info commands.
FreeBSD Multimedia Resources List Edwin Groothuis edwin@FreeBSD.org RSS version

I have setup the FreeBSD Multimedia Resources List, a one-stop-shop for FreeBSD related podcasts, vodcasts and audio/video resources. Hopefully this list will make it easier for people to find and keep up to date with these recordings. The overview is available as a normal HTML page and as an XML/RSS feed.

The ultimate goal is to have this list to reside under the www.FreeBSD.org umbrella.

SNMP monitoring (BSNMP) Shteryana Shopova shteryana@FreeBSD.org Bjoern A. Zeeb bz@FreeBSD.org P4 workspace SNMP-related pages on FreeBSD Wiki A wiki page on if_bridge(4) monitoring module bsnmptools port

A BRIDGE monitoring module for FreeBSD's BSNMP daemon has been implemented. In addition to RFC 4188 single bridge support and extending the kernel to get access to all the information, a private MIB was designed in order to be able to monitor multiple bridges supported by FreeBSD. The kernel part has already been committed to -CURRENT (thanks to thompsa@), for -STABLE a patch is available (see the wiki), code has already been reviewed.

SoC 2005 work on SNMP client tools is now available too via port (net-mgmt/bsnmptools), thanks to Andrew Pantyukhin for the port.

More testing is very welcome. if_vlan(4) monitoring module. jail(8) monitoring module.
BSDCan 2007 Dan Langille dan@langille.org

The dates for BSDCan 2007 have been set: 11-12 May 2007. As is usual, BSDCan will be held at University of Ottawa, with two days of tutorials prior to the conference starting.

The call for papers will go out in mid December. Start thinking about your submissions now!

FreshPorts Dan Langille dan@langille.org FreshPorts - The Place For Ports

The new 2U server mentioned in the last report now has a collection of Raptor drives in a RAID-10 configuration. Thanks to very generous donations from the community, I purchased eight of these drives at very good prices. The server will be deployed in the next few weeks.

There has been quite a bit of work since the last report in June. Some highlights include:

For more detail, please review the FreshPorts Blog .

The FreeBSD Foundation Deb Goodkin deb@FreeBSD.org

The FreeBSD Foundation continued to support the FreeBSD project and community through various activities. These activities include creating strategies for fund development and actively seeking funding for the FreeBSD community, coordinating a new IBM Bladeserver project, and protecting the image and integrity of FreeBSD by governing the use of the trademarks. We are pleased to be a sponsor of EuroBSDCon and will be sponsoring a few developers to attend the conference through our travel grant program. And finally, we have secured funds for a major project that will be announced later this month.

diff --git a/en/news/status/report-2006-10-2006-12.xml b/en/news/status/report-2006-10-2006-12.xml index 798635b59b..68547a2c00 100644 --- a/en/news/status/report-2006-10-2006-12.xml +++ b/en/news/status/report-2006-10-2006-12.xml @@ -1,2546 +1,2546 @@ - + October-December 2006
Introduction

Happy New Year. This Report covers the last quarter of a exciting year 2006 for FreeBSD development. FreeBSD 6.2 is finally out of the door and work towards FreeBSD 7.0 is gearing up. Some of the projects in this report will be part of that effort, others are already in the tree. Many projects need your help with testing and otherwise. Please see the "Open tasks" sections for more information.

The BSD crowd will meet at AsiaBSDCon March 8-10th in Tokyo and a two day FreeBSD developer summit will be held at BSDCan May 16-19th in Ottawa. Finally, EuroBSDCon September 14-15th in Copenhagen is already looking for papers.

Thanks to all the reporters for the excellent work! We hope you enjoy reading.

proj Projects team FreeBSD Team Reports net Network Infrastructure kern Kernel drv Hardware Drivers docs Documentation bin Userland Programs arch Architectures ports Ports misc Miscellaneous GEOM Multipath Matthew Jacob mjacob@FreeBSD.org

A toy implementation of GEOM based active/passive multipath is now done and in a perforce repository. Seems to work.

FreshPorts Dan Langille dan@langille.org FreshPorts FreshPorts News

There have been a number of improvements to FreshPorts over the last quarter of 2006. The following are just a few of them. The links take you to the relevant article within the FreshPorts News website .

My thanks to the many people who have contributed suggestions, ideas, and code over the years. Most of you are documented at the above URLs.

FreshPorts/FreshSource as a developer tool
BSDCan 2007 Dan Langille dan@langille.org BSDCan 2007

Folks!
It is that time of year. You may have missed the call for papers , but please put in your proposal right away. This is often a busy time of year, but please take the time to consider presenting at BSDCan.

Please read the submission instructions and send in your proposal today!

You may be interested in our sister conference: PGCon. If you have an interest in PostgreSQL , a leading relational database, which just happens to be open source, then we have the conference for you! PGCon 2007 will be held immediately after BSDCan 2007, at the same venue, and will follow a similar format.

Waiting for papers
FreeSBIE Matteo Riondato matteo@FreeBSD.org FreeSBIE Staff staff@FreeSBIE.org FreeSBIE Mailing List freesbie@gufi.org FreeSBIE 2.0 Release Notes Preview FreeSBIE 2.0 Screenshots Preview

FreeSBIE is approaching the 2.0-RELEASE. The first release candidate proved to be good enough but a second one will probably be released. An external developer is working on integrating BSDInstaller in FreeSBIE 2.0 and this may cause a little delay of the release date. Release Notes were written and need to be updated with the current list of packages. A script which allows to switch Tor+Privoxy on and off was added and its usage was documented. The 2.0-RELEASE is near, hopefully near the end of January but this will also depend on when FreeBSD 6.2-RELEASE will be released.

MPT LSI-Logic Host Adapters: mpt Matthew Jacob mjacob@FreeBSD.org

The 'mpt' project is support for the MPT LSI-Logic Host Adapters (SCSI, Fibre Channel, SAS).

The last quarter saw a lot of change supported by Yahoo! and LSI-Logic and many others as things settled out for better support for U320. Some initial Big Endian support was offered by John Birrel and Scott Long.

Finish SAS Integrated RAID support. Try and get U320 RAID working better than it currently does. Finish Big Endian support, including that for target mode.
QLogic SCSI and Fibre Channel: isp Matthew Jacob mjacob@FreeBSD.org

This project is for support for QLogic SCSI and Fibre Channel host adapters.

The last quarter saw the addition of 4Gb Fibre Channel support and a complete rewrite of fabric management (which is still settling out).

Bt878 Audio Driver (aka FusionHDTV 5 Lite driver) John-Mark Gurney jmg@FreeBSD.org Perforce source repository

Basic audio capture is working. All of the parameters are set by userland, while the RISC program generation is by kernel. No real audio has been captured as there are no drivers for the NTSC tuner yet. Someone with a real Bt878 NTSC card that is supported by bktr(4) could use this to capture audio without using the sound card.

Due to lack of documentation from DViCO and LG, I have copied magic values from the Linux driver and managed to get ATSC capturing working. There was a bug in the capture driver that was releasing buffers to userland early causing what appeared to be reception issues. Now that we use the RISC status bits as buffer completion bits, capture works cleanly. This does mean that even if you provide more than 4 buffers to the driver, the buffers will be divided into four segments, and returned in segments.

A Python module is available, along with a sample capture application using it. The module is now known to work well with threads so that tuning (expensive due to i2c ioctls) can happen in another thread without causing program slow down. The module is working well with a custom PVR backend.

Additional ioctls have been added to get sibling devices. This allows one to open a bktrau device, and get the correct bktr(4) device that is in the same slot. This is necessary so that when adjusting GPIO pins or sending i2c commands, they are to the correct device.

Provide support for NTSC and FM tuning. Add support for other cards and tuners that use the Bt878 chip.
Past and Future PR Closing Events Florent Thoumie flz@FreeBSD.org

Following the example of our NetBSD friends, we organized a couple of Bugathons to help decreasing the open PR count. At first, it was decided to make it a monthly event focused on both src, ports and doc. Audience decreased with each Bugathon organized and less non-ports committers attended the events. So from now on, we will focus on ports (making it a Portathon) and organize a new event after the end of each ports freeze (that should be twice a year, at most).

Updating X.org FreeBSD Ports to 7.2 Florent Thoumie flz@FreeBSD.org Eric Anholt anholt@FreeBSD.org Dejan Lesjak lesi@FreeBSD.org X.org Official Website Experimental X.org Ports Tree Latest news about FreeBSD X.org Porting Efforts FreeBSD-X11 Mailing List Archives

X.org 7.2 release has been delayed more than a month, which gave us more time to fix build failures, to work on a few runtime issues and to determine the easiest way to upgrade from 6.9 to 7.2 (mostly with the help of people on the freebsd-x11@ mailing list ). Everything is in a rather good shape but there's still a little amount of work to do. The merge of new ports is most likely to happen before the end of January.

Do a global review of the diff between the original tree and the experimental one (git-diff origin xorg for git users) Fix the remaining (9 I think, 3 being lang/jdk's) build errors Continue testing Do another experimental build on pointyhat
New USB Stack Hans Petter Sirevaag Selasky hselasky@FreeBSD.org Current USB files My USB homepage

During the last three months there has not been so much activity in the USB project. Some regression issues have been reported and fixed. Bernd Walter reports that he has got the new USB stack working on ARM processors with some minor tweaks. Markus Brueffer reports that he is working on the USB HID parser and support. A current issue with the new USB stack is that the EHCI driver does not work on the Sparc64 architecture. If someone has got a Sparc64 with FreeBSD 7-CURRENT on and can lend the USB project the root password, a serial console and a USB test device, for example a USB memory stick, that would be much appreciated. Another unresolved issue is that the ural(4) USB device driver does not always work. This is currently being worked on.

If you want to test the new USB stack, check out the USB perforce tree or download the SVN version of the USB driver from my USB homepage. At the moment the tarballs are a little out of date.

Ideas and comments with regard to the new USB API are welcome at freebsd-usb@FreeBSD.org .

Multi-link PPP daemon (MPD) Alexander Motin mav@alkar.net Archie Cobbs archie@FreeBSD.org Project home ChangeLog

MPD is moving to the next major release - mpd4_0. At the end of October one more beta version (4_0b5) was released and first RC is planned soon.

Since 3_18 and 4_0b4 numerous bugs and cases of incorrect internal handling have been fixed. Performance has been increased and system requirements reduced.

Many new features have been implemented:

Some historically broken features have been reimplemented:

To support compression, two new Netgraph nodes ng_deflate and ng_pred1 have been created and the ng_ppp node has been modified.

ng_ppp node refactoring. Implement packet loss notification in related Netgraph nodes (ng_ppp, ng_pptp, ng_async, ng_deflate, ng_pred1, ng_vjc, ...) to reduce recovery time and probability of incorrect packet decompression. MPD auth subsystem refactoring.
Update of the Linux Compatibility Environment in the Kernel Alexander Leidinger netchild@FreeBSD.org Roman Divacky rdivacky@FreeBSD.org Emulation Mailinglist emulation@FreeBSD.org Wiki page about the Linux compatibility environment.

Since the last status report we made good progress in improving the compatibility environment. We fixed more than 30 testcases on i386 (130 testcases = 16% still failing) and more than 60 testcases on amd64 (140 testcases = 17% still failing) in the Linux 2.4 compatibility. These numbers compare FreeBSD 6.2 with -CURRENT. Some of those fixes are edge cases in the error handling, and some of them fix real issues -- e.g. hangs -- and improve the stability and correctness of the emulation.

Regarding the Linux 2.6 compatibility there are 140 testcases (17%) on i386 and 150 testcases (18%) on amd64 still failing in -CURRENT. After fixing some showstopper problems with real applications, we should be able to give the 2.6 emulation a more widespread exposure "soon" to find more bugs and to determine the importance of those Linux syscalls which we did not implement yet.

The severity of the broken testcases varies, and some of them will never be fixed, e.g., we will never be able to load Linux kernel modules into a FreeBSD kernel, being able to add swap with a Linux command has very low priority, and fixing stuff which is used by applications like IPC type 17 has high priority.

Some differences in the 2.6 compatibility are because not all i386 changes are merged into the amd64 code, and some testcases are already fixed in our perforce repository but need more review before they can be committed to -CURRENT.

We need some more testers and bug reporters. So if you have a little bit of time and a favorite Linux application, please play around with it on -CURRENT. If there is a problem, have a look at the wiki if we already know about it and report on emulation@ . We are especially interested in reports about the 2.6 compatibility (sysctl compat.linux.osversion=2.6.16), but only with the most recent -CURRENT and maybe with some patches we have in the perforce repository (mandatory on amd64).

We thank all people who tested the changes / submitted patches and thus helped improving the Linux compatibility environment.

Sound Subsystem Improvements Ariff Abdullah ariff@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Multimedia Mailinglist multimedia@FreeBSD.org Some patches / binary modules. The FreeBSD Project Ideas List. Wiki page about the sound system.

Since the last status report there were improvements to the emu10kx driver for High Definition Audio (HDA) compatible chips. Some more chips are supported now and already supported chips should provide a better zero-configuration experience.

The generic sound code got some very nice low latency changes, and fixes which make it multichannel/endian/format safe. We do not support multichannel operation yet, but this work is a prerequisite to work on implementing multichannel operation. This work also fixed some bugs which people may experience as clicks, hickups, truncation or similar behavior in the sound-output.

So far there is no merge to 5.x or 6.x planned for this code, especially because there are API/ABI changes, e.g., several sysctls changed. People who do not care about this can download binary sound modules from Ariff's download page for 6.x and 5.x.

We thank all people who tested the changes / submitted patches and thus helped improving the sound system.

Have a look at the sound related entries on the ideas list. Add multichannel support. sndctl(1): tool to control non-mixer parts of the sound system (e.g. spdif switching, virtual-3D effects) by a user (instead of the sysctl approach in -CURRENT); pcmplay(1), pcmrec(1), pcmutil(1). Plugable FEEDER infrastructure. For ease of debugging various feeder stuff and/or as userland library and test suite. Extend the wiki page.
Hungarian Translation of the Webpages Gábor Kövesdán gabor@FreeBSD.org Giorgos Keramidas keramida@FreeBSD.org Hungarian webpages

Gábor Kövesdán (gabor@) has submitted the Hungarian translation of the webpages and Giorgos Keramidas (keramida@) has reviewed and committed the pages. The initial rendering issues have also been fixed and the webpage is in a pretty good shape now.

As usual, this translation does not contain every part of the English version, but the most important and useful parts are there. Gábor will maintain this translation and regularly sync the content with the English version and add new translations if such become available.

Fix typos and mistakes that will be revealed after a deeper review by the public Get more people involved
Intel 3945ABG Wireless LAN Driver: wpi Benjamin Close benjsc@FreeBSD.org

An initial port of the NetBSD wpi driver has been done and development is happening fast to get this driver ready for the tree. At present basic functionality works. The driver can associate with a non encrypted peer and pass data in 11b and 11g modes. There is still lots to do and testing is welcome.

Many thanks have to go to Sam, Max and Kip for helping the driver reach this point.

Solve bus dma alignment issues Support WEP and WPA Testing and more testing
iSCSI Initiator Daniel Braniss danny@cs.huji.ac.il

Though it is still a work in progress, it now supports more targets, has login CHAP authentication and header/data digest. It will also recover from a lost connection - most of the time.

instrumentation task management support improve the error recovery
FreeBSD/powerpc on Freescale MPC8555 Rafal Jaworowski raj@semihalf.com Marcel Moolenaar xcllnt@mac.com

Platform summary:

Currently the machine is booting FreeBSD 6.1-RELEASE-p10 and operating both single- and multi-user modes; below are highlights of available functionality:

  1. Low-level support
    • booting from U-Boot bootloader
    • locore machine initialization
    • e500 exceptions
    • VM: a new pmap module developed
  2. On-chip peripherals
    • introduced ocpbus hierarchy (nexus and descendants)
    • interrupt controller: using generic OpenPIC driver
    • serial console: using uart(4) driver
    • barebones serial support using the QUICC's SCC
    • host/PCI bridge: a new driver developed for the built-in bridge
    • networking: a new driver developed for TSEC (3-speed Ethernet)
  3. Booting
    • from ATA disk and USB memory stick (both through a secondary PCI VIA82C686B controller)
    • from network (NFS-mounted rootfs)
  4. Basic TCP/IP protocols and apps work (DHCP, NFS, SSH, FTP, Telnet etc.)
  5. Userland
    • integrated SoftFloat emulation lib (required due to e500 not being equipped with the old-style PowerPC FPU)
    • almost all applications seem to work

Work out extensible layout for sys/powerpc architecture directory so we can easily add support for new core variations and platforms to come in the future. Integrate with FreeBSD source tree. Release and tinderbox related options and settings.
Network Stack Virtualization Marko Zec zec@fer.hr

The network stack virtualization project aims at extending the FreeBSD kernel to maintain multiple independent instances of networking state. This will allow for complete networking independence between jails on a system, including giving each jail its own firewall, virtual network interfaces, rate limiting, routing tables, and IPSEC configuration.

The prototype currently virtualizes the basic INET and INET6 kernel structures and subsystems, including the TCP machinery and the IPFW firewall. The focus is currently being kept on resolving bugs and sporadic lockups, and defining the internal and management APIs. It is expected that within the next month the code will become sufficiently complete and stable for testing by early adopters.

BSNMP Bridge Module Shteryana Shopova syrinx@FreeBSD.org

The BSNMP bridge module for FreeBSD's BSNMP daemon, which was implemented during SoC 2006, was committed to HEAD. In addition to RFC 4188 single bridge support it also supports monitoring multiple bridges via a private MIB. Since SoC 2006 Rapid Spanning Tree (RSTP) support (RSTP-MIB defined in RFC4318 and additions to the private MIB) was added to the module as well.

A patch for RELENG_6 is available and will be merged to STABLE the next weeks.

MFC to RELENG_6. More feedback from users is always welcome.
BSNMP Client Tools Shteryana Shopova syrinx@FreeBSD.org Bjoern A. Zeeb bz@FreeBSD.org Wiki Page Shteryana's P4 tree Bjoern's P4 tree (rewrite)

During SoC 2005 BSNMP client tools (bsnmptools) were implemented and have since then been available via Shteryana's P4 tree or port net-mgmt/bsnmptools.

In order to finally get the code committed some cleanup was needed which ended in a partly rewrite to minimize duplicate code and to reduce the size of the binaries. This ongoing work is available via Bjoern's P4 tree and will be merged back to upstream trees before it will be committed to HEAD.

Update Wiki Page to reflect latest work. Finish cleanup and have it reviewed. User feedback is always welcome.
BSNMP - More Ongoing and Upcoming Work Shteryana Shopova syrinx@FreeBSD.org Harti Brandt harti@FreeBSD.org Bjoern A. Zeeb bz@FreeBSD.org BSNMP TODO Wiki page

In addition to other more detailed reports this is intended to give a summary about other ongoing or upcoming BSNMP related work. To collect some ideas from users and coordinate work a BSNMP TODO Wiki page was created. Feel free to add your ideas or let us know about them.

Release Engineering Release Engineering Team re@FreeBSD.org

The recent activities of the Release Engineering team have centered around FreeBSD 6.2-RELEASE, which is now available for downloading. This is the latest release from the RELENG_6 branch, and includes many new performance and stability improvements, bug fixes, and new features. The release notes and errata notes for FreeBSD 6.2 contain more specific information about what's new in this version. We thank the FreeBSD developer and user community for their efforts towards making this release possible.

The Release Engineering Team also produced snapshots of FreeBSD CURRENT in November 2006 and January 2007. These snapshots have not received extensive testing, and should not be used in production environments. However, they can be used for testing or experimentation, and show the kinds of functionality that can be expected in future FreeBSD releases.

Libelf Joseph Koshy jkoshy@FreeBSD.org Wiki page tracking LibELF Wiki page for PmcTools PMC Tools Project

Libelf is a BSD-licensed library for ELF parsing & manipulation implementing the SysV/SVR4 (g)ELF[3] API.

Current status: The library is now in -CURRENT. Work continues on its test suite and tutorial, and on deploying it in PmcTools.

The FreeBSD Dutch Documentation Project Remko Lodder remko@FreeBSD.org

The FreeBSD Dutch Documentation Project is an ongoing project to translate the FreeBSD Handbook to the Dutch Language.

Currently we almost translated the entire handbook, and we translated parts of the website, sadly the project went into a slush lately, so we seek out for fresh and new translators that are willing to join the team to continue the effort.

Translate the rest of the handbook Make the documentation up to date Translate the rest of the website
FreeBSD GNOME Project FreeBSD GNOME Project gnome@FreeBSD.org

Where have we been?! Not doing status reports, that's for sure. But the FreeBSD GNOME project has been very busy with regular GNOME releases, and other side projects. We are currently shipping GNOME 2.16.2 in the ports tree, and we are testing GNOME 2.17.5 in the MarcusCom tree.

Most recently, work has completed on a cleanup of the FreeBSD backend to libgtop. This module has needed a lot of work, and should now be reporting correct system statistics. The cleaned up version is currently being tested in the MarcusCom tree, and will make it into the FreeBSD ports tree along with GNOME 2.18.

The GStreamer framework has been taken out of direct gnome@ maintainership, and put under a new multimedia@ umbrella. This will give multimedia-savvy developers a chance to collaborate on this important piece of the GNOME Desktop along with other important audio and video components.

The biggest accomplishment of 2006 for the FreeBSD GNOME team had to have been the port of HAL . This effort was started to give FreeBSD users a richer desktop experience. Since the initial FreeBSD release of HAL with GNOME 2.16, it has been incorporated into the FreeBSD release of KDE 3.5.5 as well as PC-BSD 1.3. The FreeBSD backend has also made it upstream into the HAL git repository so future releases of HAL will have FreeBSD support out-of-the-box.

Finally, it is with sadness that we say good-bye to one of our team members. Adam Weinberger stepped down from the FreeBSD GNOME team to save lives instead (priorities, man!). His splash screens and grammar nit-picking will be missed.

Now that HAL has been ported to FreeBSD, there is a strong desire to see NetworkManager ported. The big parts will be porting NM to use our 80211 framework, and extending some of the base utilities such as ifconfig. Contact marcus@FreeBSD.org if you are interested in helping. Our system-tools-backends module needs some attention. This module is responsible for system configuration tasks in GNOME such as user management, network shares administration, etc. A knowledge of Perl is highly recommended. Contact marcus@FreeBSD.org if you are interested in helping. We need good documentation writers to help update our FAQ and other documentation. If you would like to take on the responsibility full-time, or just contribute some pieces, please notify gnome@FreeBSD.org . We are always in need of GNOME development testers. See our development branch FAQ for ways on how you can help make the next release of GNOME the best release.
ipfw NAT and libalias Paolo Pisati piso@FreeBSD.org

Support for in-kernel NAT, redirect and LSNAT for ipfw was committed to HEAD, and i encourage people to test it so we can quickly discover/fix bugs.

To add these features to ipfw, compile a new kernel adding "options IPFIREWALL_NAT" to your kernel config or, in case you use modules, add "CFLAGS += -DIPFIREWALL_NAT" to your make.conf.

Teach libalias to handle mbufs (this will fix TSO-capable NICs). Add support for hardware checksum offloading.
Interrupt Filtering Paolo Pisati piso@FreeBSD.org John Baldwin jhb@FreeBSD.org Scott Long scottl@FreeBSD.org

Interrupt filtering is a new method to handle interrupts in FreeBSD that retains backward compatibility with the previous models (FAST and ITHREAD), while improving over them in some aspects. With interrupt filtering, the interrupt handler is divided into 2 parts: the filter (that checks if the actual interrupt belongs to a device) and a private per-handler ithread (that is scheduled in case some blocking work has to be done). The main benefits of this work are:

During the last quarter many improvements were made up to the point where 3 archs (i386, amd64 and arm) are reported to work, and the project can be considered feature complete.

I definitely want to make it part of the 7.0 release.

Define a road map to commit the code into the tree. Rethink the interrupt stray handling (?!?!). Finish off support for powerpc, sparc64 and ia64 (sun4v support is known to be broken now).
FreeBSD Bugbusting Team Mark Linimon linimon@FreeBSD.org Ceri Davies ceri@FreeBSD.org Remko Lodder remko@FreeBSD.org

The FreeBSD Bugbusting team is a team of volunteers keeping track of various PR tickets in the GNATS application. Currently the Bugbusting team is investigating old PR tickets, checking whether they are still accurate, checking what needs to be done to fix the issues reported and make sure that the developers team can focus on the latest releases.

The team is always in need of volunteers willing to give a hand to resolve the old tickets and get the best feedback that is needed for the open tickets.

Please contact FreeBSD-bugbusters@FreeBSD.org if you want more information about the things that need to be done.

Checkout old PR tickets, getting the proper feedback and finally fix and/or resolve the tickets.
The FreeBSD Foundation Deb Goodkin deb@FreeBSD.org The FreeBSD Foundation

The FreeBSD Foundation ended 2006 raising over $100,000. We received commitments for another $55,000 in donations for the Fall Fundraiser. We fell short of our goal of raising $200,000. But, we are working hard to fill this gap, early in 2007, so we can continue with the same level of support for the project and community. Please go to http://www.freebsdfoundation.org/donate/ to find out how to make a donation to the foundation.

We added a donors page to our website to acknowledge our generous donors. We negotiated and are now actively managing a joint technology project with NLNet and the University of Zagreb to develop virtualized network stack support for FreeBSD. We sponsored AsiaBSDCon and are now accepting travel grant applications for this conference.

We are working to upgrade the project's network testbed with 10Gigabit interconnects. Cisco has generously donated a 10Gigabit switch and we have received network adapters from Myricom, Neterion, Intel, and Chelsio. Adapters from other vendors are being solicited so that we can do interoperability testing.

For more information on what we've been up to, check out our end-of-year newsletter at http://www.freebsdfoundation.org/press/2006Dec-newsletter.shtml .

Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom Tinderbox

The ports count has jumped to 16347. The PR count, despite a jump, has gone back down to around 700.

Not much work has been committed on the ports infrastructure due to the long 6.2 release cycle. However, many test runs have been done for several upcoming features, such as making sure that ports will work with the new release of gcc (4.1), and do not have /usr/X11R6 hard-coded into them. The intention of the latter is to move all ports to $LOCALBASE, which can then be selected by the user. This should help consistency going forwards, albeit at the cost of a one-time conversion.

GNOME was updated to 2.16 during the release cycle.

In addition, we are in the process of moving the FORTRAN default from f77 to gfortran. See the ports mailing list for details.

The new xorg ports are still being worked on as well; they are intended to all live in $LOCALBASE. Hopefully this can get done in the early 6.3 development cycle. See the wiki for more information.

A new version of the ports Tinderbox code is available, which is mostly a bugfix release.

We have also added Pav Lucistnik as a new portmgr member, who we hope will help us work on the portmgr PR backlog. Welcome!

We have also added 8 new committers since the last report.

linimon continues to work on resetting committers who are no longer interested in their ports; as well, several ports commit bits have been stored for safekeeping. This is part of an attempt to keep the best match between volunteers and work to be done.

Most of the remaining ports PRs are "existing port/PR assigned to committer". Although the maintainer-timeout policy is helping to keep the backlog down, we are going to need to do more to get the ports in the shape they really need to be in. Although we have added many maintainers, we still have many unmaintained ports. As well, the packages on amd64 and sparc64 are lagging behind.
FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.FreeBSD.org/administration.html#t-secteam" />

In the time since the last status report, four security advisories have been issued concerning problems in the base system of FreeBSD (three in 2006 and one in 2007); of these, one problem was in "contributed" code, while the remaining three were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 55 new entries have been added, bringing the total up to 869.

In order to streamline security team operations and ensure that incoming emails are promptly acknowledged, Remko Lodder has been appointed the security team secretary.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.11, FreeBSD 5.5, FreeBSD 6.0, FreeBSD 6.1, and FreeBSD 6.2. The respective End of Life dates of supported releases are listed on the web site; of particular note, FreeBSD 4.11 and FreeBSD 6.0 will cease to be supported at the end of January 2007.

Cryptographic Subsystem Sam Leffler sam@FreeBSD.org

Michael Richardson has been spearheading work to improve the crypto subsystem used by various parts of the kernel including Fast IPSec and geli. This work is sponsored by Hifn and has been happening outside the CVS repository. A main focus of this work is to add support for higher-level hardware operations that can significantly improve the performance of IPSec and SSL protocols.

Results of this work are now being readied for CVS. These redesign the core/driver APIs to use the kobj facilities and recast software crypto drivers as pseudo devices. The changes greatly improve the system and permit new functionality such as specifying which crypto device to use when multiple are available. The redesign will also enable load balancing of crypto work across multiple devices and the addition of virtual crypto sessions by which small operations can be done in software when the overhead to set up a hardware device is too costly.

In addition to the changes to the core crypto system several crypto drivers have been updated to improve their operation. Top of this list is the hifn(4) driver where many longstanding bugs have been fixed for 7955/756 parts.

ARM/XScale Port Olivier Houchard cognet@FreeBSD.org Sam Leffler sam@FreeBSD.org

FreeBSD is running multi-user on a variety of Gateworks Avila boards with most of the on-board devices supported. These include the compact flash/IDE slot, wired network interfaces, realtime clock, and environmental sensors. Several different minipci cards have been tested including those supported by the ath(4) and hifn(4) drivers. Remaining devices that need support are the onboard flash, optional 4-port network switch, and optional USB interface. Crypto acceleration for IXP425 parts is planned but will likely be done at a later time.

The Network Processor Engine (NPE) support is done with an entirely new replacement for the Intel Access Layer (IAL). The most important hardware facilities are supported (e.g. the hardware Q manager) and the wired NIC driver was also done from scratch. The resulting code is approximately 1/10th the number of lines of the equivalent IAL code.

Bootstrap support needs work to enable booting from the compact flash device.
Porting ZFS to FreeBSD Pawel Jakub Dawidek pjd@FreeBSD.org Source code. ZFS porting site. ZFS port announce.

The ZFS file system works quite well on FreeBSD now. The first patchset has already been published on the freebsd-fs@FreeBSD.org mailing list .

All file system methods are already implemented (except ACL-related). Basically all stress tests I tried work, even under very high load. There is still a problem with memory allocation, which can get out of control, but from what I know the SUN guys also work on this.

Recently I have been working on a file system regression test suite. From what I found, there are no such test suites for free. I've already more than 3000 tests and I'm testing correctness of most file system related syscalls (chflags, chmod, chown, link, mkdir, mkfifo, open, rename, rmdir, symlink, truncate, unlink). I'm also working to make it usable on other operating systems (like Solaris, where it already works and Linux).

Few days ago I also (almost) finished NFS support. You can't use the 'zfs share' command yet, but you can export file systems via /etc/exports and you can also access snapshots. It was quite hard, because snapshots are separate file systems and after exporting the main file system, we need to also serve data from snapshots under it.

The one big thing which is missing is ACL support. This is not an easy task, because we first have to make some decisions. Currently we use POSIX ACLs in our UFS, but the market is moving slowly to NTFS/NFSv4-type ACLs. In Solaris they use POSIX ACLs for UFS and NFSv4-type ACLs for ZFS and we probably also want to use NFSv4-type ACLs in our ZFS, which requires some work outside ZFS.

TrustedBSD priv(9) Robert Watson rwatson@FreeBSD.org TrustedBSD Project

TrustedBSD priv(9) replaces suser(9) as an in-kernel interface for checking privilege in FreeBSD 7.x. Each privilege check now takes a specific named privilege. This allows both centralization of jail logic relating to privilege, which is currently distributed around the kernel at the point of each call to suser(9), and allows instrumentation of the privilege logic by the MAC Framework. Two new MAC Framework entry points, one to grant and the other to limit privilege, are now available, providing fine-grained control of kernel privilege by policy modules. This lays the kernel infrastructure groundwork for further refinement and extension of the kernel privilege model. The priv(9) implementation has been committed to FreeBSD 7-CURRENT.

This software was developed by Robert N. M. Watson for the TrustedBSD Project under contract to nCircle Network Security, Inc.

Complete review of kernel privilege checks, removal of suser(9) jail flag now that checks are centralized. Explore possible changes to kernel privilege model along lines of POSIX.1e privileges, the Solaris privilege interface, etc. This has been explored previously as part of the TrustedBSD Capabilities project also.
TrustedBSD MAC Framework Robert Watson rwatson@FreeBSD.org trustedbsd-discuss@TrustedBSD.org TrustedBSD Project

Most work on the MAC Framework during this period, other than as relates to the priv(9) project described in a separate status report, has been in refinement of the structure of the framework.

Now that the MAC Framework has been fully moved to src/sys/security/mac, embark on the 'mac2' interface cleanup, in which many MAC Framework entry points are renamed for consistency. This will require most MAC Framework policy modules to be modified between FreeBSD 6.x and FreeBSD 7.x, although in a way that can be largely done using sed. Add accessor functions for policies retrieving per-policy label data from labels, so that policy modules do not compile in the binary layout of struct label. This will allow future optimization of the label layout. Complete integration of audit and MAC support, allowing MAC policy modules to control access to audit interfaces, and allowing them to annotate audit records.
TrustedBSD Audit Robert Watson rwatson@FreeBSD.org Christian Peron csjp@FreeBSD.org Wayne Salamon wsalamon@FreeBSD.org TrustedBSD Audit Page OpenBSM Page

FreeBSD 6.2-RELEASE, the first release of FreeBSD with experimental audit support is now available. The plan is to make audit a full production feature as of FreeBSD 6.3-RELEASE, with "options AUDIT" compiled in by default. A TODO list has been posted to trustedbsd-audit.

OpenBSM 1.0 alpha 13, which includes support for XML record printing, additional 64-bit token types, additional audit events, and more cross-platform build support, has been released. OpenBSM 1.0 alpha 14, which adds support for warnings clean building with gcc 4.1, will be released shortly. The new OpenBSM release will be merged to FreeBSD CVS in late January or early February.

Complete assignment of audit events to non-native and a few remaining native system calls. Add additional system call argument auditing. Merge MAC Framework hooks allowing MAC modules to control access to kernel audit services. Refine and merge MAC labeling support in audit, including support for MAC annotations in the audit trail. Complete pass through user space services adding audit support to system management tools (and ftpd). Work with third party software maintainers to add audit support for applications like xdm/kdm/gdm. Merge latest OpenBSM, including XML output support.
FAST_IPSEC Upgrade George Neville-Neil gnn@FreeBSD.org Bjoern Zeeb bz@FreeBSD.org Host only patch gnn's networking blog

Just this week I got routing working for the FAST_IPSEC and IPv6 code. Now there are memory smash problems, and then we need to remove the old GIANT lock. I hope to produce another patch with the routing code working in the next week.

Test the patch!!!!
Automatic TCP Send and Receive Socket Buffer Sizing Andre Oppermann andre@FreeBSD.org Patch against 7-CURRENT Patch against RELENG_6

Normally the socket buffers are static (either derived from global defaults or set with setsockopt) and do not adapt to real network conditions. Two things happen: a) your socket buffers are too small and you can't reach the full potential of the network between both hosts; b) your socket buffers are too big and you waste a lot of kernel memory for data just sitting around.

With automatic TCP send and receive socket buffers we can start with a small buffer and quickly grow it in parallel with the TCP congestion window to match real network conditions.

FreeBSD has a default 32K send socket buffer. This supports a maximal transfer rate of only slightly more than 2Mbit/s on a 100ms RTT trans-continental link. Or at 200ms just above 1Mbit/s. With TCP send buffer auto scaling and the default values below it supports 20Mbit/s at 100ms and 10Mbit/s at 200ms. That's an improvement of factor 10, or 1000%. For the receive side it looks slightly better with a default of 64K buffer size.

The automatic send buffer sizing patch is currently running on one half of the FTP.FreeBSD.ORG cluster w/o any problems so far. Against this machine with the automatic receive buffer sizing patch I can download at 5.7 MBytes per second. Without patch it maxed out at 1.6 MBytes per second as the delay bandwidth product became equal to the static socket buffer size without hitting the limits of the physical link between the machines. My test machine is about 35ms from that FTP.FreeBSD.ORG and connected through a moderately loaded 100Mbit Internet link.

New sysctls are:

Wireless Networking Sam Leffler sam@errno.com

Work on wireless support has continued to evolve in the public CVS tree while other work has been going on behind the scenes in the developer's perforce repository.

Support was recently added to HEAD for half- and quarter-rate channels as found in the 4.9 GHz FCC Public Safety Band. This work was a prerequisite to adding similar support in the 900 MHz band as found in Ubiquiti's SR9 cards. Adding this functionality was straightforward due to the design of the net80211 layer, requiring only some additions to handle the unusual mapping between frequencies and IEEE channel numbers. The ath(4) driver currently supports hardware capable of operating on half- and quarter-rate channels.

Kip Macy recently made significant advances preparing legacy drivers for the re-architected net80211 layer that has been languishing in perforce. With his efforts this code is nearly ready for public testing after which it can be merged into CVS. Our goal is to complete this merge in time for the 7.x branch (otherwise it will be forced to wait for 8.0 before it appears in a public release). This revised net80211 layer includes advanced station mode facilities such as background scanning and roaming and support for Atheros' SuperG extensions. Getting the revised scanning work into CVS will greatly simplify public distribution of the Virtual AP (VAP) code as a patch as well as enable addition of 802.11n support.

Benjamin Close is working on support for the Intel 3945 parts commonly found in laptops. The work is going on in the perforce repository with public code drops for testing.

Atheros PCI/Cardbus support was updated with a new HAL that fixes a few minor issues and corrects a problem that kept AR2424 parts from working. The new HAL also enables more efficient use of the hardware keycache for TKIP keys; on newer hardware you can now support up to 57 stations without faulting keys into the cache. Support for the latest 802.11n parts found in the new Lenovo and Apple laptops (among others) is in development; initial release will support only legacy operation.

Support for Atheros USB devices is coming. Atheros has agreed to license their firmware with the same license applied to the HAL which means it can be committed to the tree and distributed as part of releases. The driver is still in development.

wpa_supplicant and hostapd were updated to the latest stable build releases from Jouni Malinen. Shortly the in-tree code base will switch to the 0.5.x tree which will bring in much new functionality including dynamic VLAN tagging that will be especially useful once the multi-bss support is available.

The support for injection of raw 802.11 frames was committed to HEAD. This work was done in collaboration with Andrea Bittau. At this point there are no plans to commit this to the STABLE branch as it requires API changes.

EuroBSDCon 2007 Sidsel Jensen info@EuroBSDCon.dk

The sixth EuroBSDCon will take place in Copenhagen, Denmark on Friday the 14th and Saturday 15th of September 2007 . The conference will be held at Symbion Science Park . Sunday the 16th there will be an optional tour to LEGOland.

The call for papers was sent out right after EuroBSDCon 2006 in Milan in November and abstracts are due February 1st! So hurry up and send in all your fantastic and amazing papers to papers at eurobsdcon dot dk.

diff --git a/en/news/status/report-2007-01-2007-03.xml b/en/news/status/report-2007-01-2007-03.xml index d67c96b5f1..3e3115d35a 100644 --- a/en/news/status/report-2007-01-2007-03.xml +++ b/en/news/status/report-2007-01-2007-03.xml @@ -1,1117 +1,1117 @@ - + January-March 2007
Introduction

This report covers FreeBSD related projects between January and March 2007. This quarter ended with a big bang as a port of Sun's critically acclaimed ZFS was added to the tree and thus will be available in the upcoming FreeBSD 7.0 release. Earlier this year exciting benchmark results showed the fruits of our SMP work. Read more on the details in the "SMP Scalability" report.

During the summer, FreeBSD will once again take part in Google's Summer of Code initiative. Student selection is underway and we are looking forward to a couple of exciting projects to come.

BSDCan is approaching rapidly, and will be held May 16-19th in Ottawa.

Thanks to all the reporters for the excellent work! We hope you enjoy reading.

proj Projects team FreeBSD Team Reports kern Kernel net Network Infrastructure bin Userland Programs ports Ports misc Miscellaneous BSDCan 2007 Dan Langille dan@langille.org BSDCan 2007

The Schedule and the Tutorials have been released. Once again, we have a very strong collection of Speakers .

BSDCan: Low Cost. High Value. Something for Everyone.

Everyone is going to be there. Make your plans now.

Problem Report Database Mark Linimon bugmeister_at_freebsd_dot_org GNATS

We have added Remko Lodder to the bugmeister team. Remko has been doing a great deal of work to go through antique PRs, especially in the i386 category, and it was time to recognize that hard work. As a result of his work the i386 count is at a multi-year low.

Remko has also been instrumental in working with some new volunteers who are interested in finding out how they can contribute. Our current plans are to ask them to look through the PR backlog and, firstly, ask for feedback from the submitters, and secondly, identify PRs that need action by committers. We also have some committers who have volunteered to review those PRs. If you are interested in helping, please subscribe to bugbusters@FreeBSD.org. Our thanks to our current helpers, including Harrison Grundy.

The overall PR count has dropped to around 5100, a significant reduction.

EuroBSDCon 2007 EuroBSDCon 2007 Organizing Committee info@EuroBSDCon.dk

The sixth EuroBSDCon will take place at Symbion in Copenhagen, Denmark on Friday the 14th and Saturday 15th of September 2007.

The estimated price for the two day conference is 200EUR, excluding Legoland trip and social event. The whole-day trip to Legoland is expected to cost around 130EUR including transportation, some food on the way, and entry fee. Arrangements have been made with a newly renovated Hostel which offers beds for 23EUR per night and 10EUR breakfast. A lounge with sponsored Internet connection will be available at the Hostel. Staying at the hostel is of course entirely optional and several Hotels exists in the area. Reservation for the conference and exact prices are expected to be ready no later than 1st of May.

As of this writing 10 presentations have been accepted and more are in the process of being evaluated.

For FreeBSD Developers, a by invitation Developers summit will be held in connection with the conference. Exactly when this will take place has not yet been decided.

We are still looking for more sponsors.

A public IRC channel #eurobsdcon on EFnet has been created for discussion and questions about the conference.

More details will follow on the EuroBSDCon 2007 web site as they become available.

FAST_IPSEC Upgrade George Neville-Neil gnn@freebsd.org Bjoern Zeeb bz@freebsd.org Latest patch against CURRENT

There are currently two p4 branches being used for this work: gnn_fast_ipsec: a dual stack branch which contains both Kame and FAST_IPSEC with v6 enabled. gnn_radical_ipsec: a single stack branch, still in progress, where Kame IPsec has been removed and only FAST remains.

Test the patch!
The FreeBSD Foundation Deb Goodkin deb@FreeBSD.org The FreeBSD Foundation

The FreeBSD Foundation ended Q1 raising over $65,000. We're a quarter of the way to our goal of raising $250,000 this year. We continued our mission of supporting developer communication by helping FreeBSD developers attend AsiaBSDCon. We are a sponsor of BSDCan and are currently accepting travel grant applications for this conference.

The foundation provided support that helped the ZFS file system development. We continued working to upgrade the project's network testbed with 10Gigabit interconnects. We attended SCALE where we received an offer from No Starch Press to include a foundation ad in their BSD books. Our first ad will appear in the book "Designing BSD Rootkits."

For more information on what we've been up to, check out our website at http://www.freebsdfoundation.org .

GCC 4.1 integration Alexander Kabaev kan@FreeBSD.org Kris Kennaway kris@FreeBSD.org

A version of GCC 4.1 is being prepared for inclusion into FreeBSD 7.0-CURRENT. Work was started late in 2006 but progress on certain technical points (e.g. correctly integrating and bootstrapping a shared libgcc_s into the build) was slow due to lack of developer time. The remaining outstanding issue is that compiling with -O2 is shown to lead to runtime failures of certain binaries (e.g. some port builds); it is not currently known whether these are due to application errors or GCC miscompilations. It is believed that the current snapshot is otherwise ready for inclusion, and this will likely happen within a week or two.

Building Linux Device Drivers on FreeBSD Luigi Rizzo rizzo@icir.org

The above URL documents some work done around January to build an emulation layer for the Linux kernel API that would allow Linux device driver to be built on FreeBSD with as little as possible modifications. Initially the project focused on USB webcams, a category of devices for which there was basically no support so far. The emulation layer, available as a port ( devel/linux-kmod-compat ) simulates enough of the Linux USB stack to let us build, from unmodified Linux sources, two webcam drivers, also available as ports ( multimedia/linux-gspca-kmod and multimedia/linux-ov511-kmod ), with the former supporting over 200 different cameras.

While some of the functions map one-to-one, for others it was necessary to build a full emulation (e.g. collecting input from various function calls, and then mapping sets of Linux data structures into functionally equivalent sets of FreeBSD data structures). But overall, this project shows that the software interfaces are reasonably orthogonal to each other so one does not need to implement the full Linux kernel API to get something working. More work is necessary to cover other aspects of the Linux kernel API, e.g. memory mapping, PCI bus access, and the network stack API, so we can extend support to other families of peripherals.

Implement more subsystems (e.g. the network interface API; the memory management/pci bus access API). Address licensing issues. In the current port, the C code is entirely new and under a FreeBSD license. Many of the headers have been rewritten (and documented) from scratch (and so under a FreeBSD license as well). Some of the other headers are still taken from various Linux distributions and need to be rewritten to generate BSD-licensed code that can be imported in the kernel instead of being made available as a port. While this is not a concern with GNU drivers, it may be an important feature for drivers that are available under a dual license.
Update of the Linux compatibility environment in the kernel Alexander Leidinger netchild@FreeBSD.org Roman Divacky rdivacky@FreeBSD.org Emulation Mailinglist emulation@FreeBSD.org Wiki page about the linux compatibility environment. Wiki page about the linux test project testsuite success reports.

Since the last status report AMD64 was feature synced with i386. Notably TLS and futexes are now available on AMD64. Many thanks to Jung-Uk Kim for doing the TLS work.

Currently the focus is to implement the *at() family of linux syscalls and to find and fix the remaining futex problems.

We need some more testers and bug reporters. So if you have a little bit of time and a favorite linux application, please play around with it on -CURRENT. If there is a problem, have a look at the Wiki if we already know about it and report on emulation@. We are specially interested in reports about the 2.6 compatibility (sysctl compat.linux.osversion=2.6.16), but only with the most recent -current and maybe with some patches we have in the perforce repository (available from the wiki).

We would like to thank all the people which tested the changes / submitted patches and thus helped improve the linux compatibility environment.

malloc(3) Jason Evans jasone@freebsd.org malloc(3) (hopefully) set for 7.0

malloc(3) has recently been enhanced to reduce memory overhead, fragmentation, and mapped memory retention. As an added bonus, it tends to be a bit faster. See the above URL for my email to the -current mailing list for a more detailed description of the enhancements.

Multi-link PPP daemon (MPD) Alexander Motin mav@alkar.net Project home ChangeLog

Stable release 4.1 of mpd4 branch was released in February providing many new features and fixes. Mpd3 branch was declared legacy.

Since the release several new features have been implemented in CVS:

ng_car node has been updated, to support shaping and very fast Cisco-like rate-limiting. ng_ppp node has been completely re-factored to confirm to the protocol stack model.

LAC/PAC testing. Traffic filtering/shaping/rate-limiting testing. PPTP modification for multiple bindings support. Dynamic link/bundle creation.
Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom tinderbox

The ports count is nearing 17,000. The PR count has been stable at around 700. The 'new port' PR backlog is at a multi-year low. We appreciate all the hard work of our ports committers.

Since the long 6.2 release cycle ended, portmgr has once again been able to do experimental ports runs. As a result of six run/commit cycles, the portmgr PR count is now the lowest in quite some time. Please see the CHANGES and UPDATING files for details. Many thanks to Pav among others for keeping the build cluster busy.

We have received new hardware, resulting in a significant speedup of our package building capability: the AMD64 package builds now use 4 8-core machines (and one lonely UP system), which means a full AMD64 build is about 5 times faster than it was. Also, the i386 cluster gained an 8-core and roughly doubled its performance too. Two of the sparc64 build machines have recently brought back online, so package builds there have been restarted there after a long period offline.

linimon continues to work on improvements to portsmon to allow graphing of the dependent ports of ignored/failed ports. This work will be presented at BSDCan. In addition, pages that show the state of port uploads on ftp*.FreeBSD.org have been added, as well as ports that have NO_PACKAGE set. Also, the individual port overview page now shows the latest package that has been uploaded to the ftp servers for each buildenv.

A number of absent maintainers have been replaced by some new volunteers who had been sending PRs to update and/or fix their ports. Welcome! This helps to spread the workload.

Since the last report, support for FreeBSD 4.X has been dropped from the Ports Collection. Anyone still using RELENG_4 should have stayed with the ports infrastructure as of the RELEASE_4_EOL tag, as later commits remove that support. 4.X served us long and well but the burden of trying to support 4 major branches finally became too much to ask of our volunteers. Use of 4.X, even with the RELEASE_4_EOL tag, is no longer recommended; we recommend either 6.2-RELEASE or RELENG_6, depending on your needs.

There have been new releases of the ports tinderbox code, the portmaster update utility, and portupgrade. A new utility, pkgupgrade, has been introduced by Michel Talon, which appears interesting.

KDE was updated to 3.5.6.

GNOME was updated to 2.18.

XFree86 version 3 was removed as being years out of date.

We have added 3 new committers since the last report.

Most of the remaining ports PRs are "existing port/PR assigned to committer". Although the maintainer-timeout policy is helping to keep the backlog down, we are going to need to do more to get the ports in the shape they really need to be in. Although we have added many maintainers, we still have many unmaintained ports. The number of buildable packages on AMD64 lags behind a bit; sparc64 requires even more work.
Release Engineering Release Engineering Team re@FreeBSD.org

During the past quarter, the Release Engineering team has begun planning and preparing for FreeBSD 7.0, which is scheduled for release later in 2007. The HEAD codeline has been placed in a "slush" mode, meaning that large changes should be coordinated with the Release Engineering team before being committed.

The RE team also produced snapshots of FreeBSD 6.2-STABLE and 7.0-CURRENT for February and March 2007, corresponding roughly to the state of those development branches at the start of the respective months. While they have not had the benefit of extensive testing, and should not be used in production, they can be useful for experimenting with or testing new features.

FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In the time since the last status report, one security advisory has been issued concerning a problem in the base system of FreeBSD; this problem was in "contributed" code maintained outside of FreeBSD. In addition, several Errata Notices have been issued in collaboration with the release engineering team, including one concerning FreeBSD Update. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 21 new entries have been added, bringing the total up to 890.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 5.5, FreeBSD 6.1, and FreeBSD 6.2. Of particular note, FreeBSD 4.11 and FreeBSD 6.0 are no longer supported. The respective End of Life dates of supported releases are listed on the web site.

SMP Scalability Kris Kennaway kris@FreeBSD.org Jeff Roberson jeff@FreeBSD.org Attilio Rao attilio@FreeBSD.org Robert Watson rwatson@FreeBSD.org MySQL scaling Remaining Giant-locked code

Over the past few months there has been a substantially increased focus on improving scalability of FreeBSD on large SMP hardware. This has been driven in part by the new availability of 8-core hardware to the project, which allows easy profiling of scalability bottlenecks and benchmarking of proposed changes. Significant progress has been made on certain application workloads such as MySQL and PostgreSQL, with the result that FreeBSD 7 now has excellent scaling to at least 8-CPU systems with prospects for further improvements. Progress with other application workloads has been limited by the need to set up a suitable test case; please contact me if you are interested in helping. As part of this general effort, work is progressing steadily on removing the last remaining Giant-locked code from the kernel. A complete list of remaining Giant-locked code is found here: http://wiki.freebsd.org/SMPTODO Many of these sub-tasks have owners, but some do not. The major remaining Giant-locked subsystem with no owner is the TTY subsystem. In parallel, profiling of contention and bottlenecks in other subsystems has lead to a number of experimental changes which are being developed. Work is in progress by Jeff Roberson and Attilio Rao to break up the global scheduler spinlock in favor of a set of per-CPU scheduling locks, which is expected to improve performance on systems with many CPUs. Experimental changes by Robert Watson to allow for multiple netisr threads show good promise for improving loopback IP performance on large SMP systems, which can otherwise easily saturate a single netisr thread. A variety of other changes are being profiled and evaluated to improve SMP performance under various workloads. The majority of these changes are collected in the //depot/user/kris/contention/ Perforce branch.

Importing trunk(4) from OpenBSD Andrew Thompson thompsa@FreeBSD.org

Work has completed to port over trunk(4) from OpenBSD and this also includes merging 802.3ad LACP from agr(4) in NetBSD. This driver allows aggregation of multiple network interfaces as one virtual interface using a number of different protocols/algorithms.

This will be committed shortly, further testing is welcome.

USB Hans Petter Sirevaag Selasky hselasky@freebsd.org Current USB files My USB Homepage Code reference for the new USB stack and USB device drivers

During the last three months not too much has changed. Here is a quick list of changes:

  1. There has been some cleanups in the UCOM layer, generally to to create a context for all the callbacks so that they can call sleeping functions. This is achieved using the USB config thread system. The reason for this is that the code becomes simpler when synchronous operation is applied versus asynchronous. But asynchronous behavior is the most secure, hence then all USB resources are preallocated for each transfer. After the change, only data transfers are done asynchronously. All configuration is now done synchronously. This makes the USB device drivers look more like in the old USB stack.
  2. moscom.c has been imported from OpenBSD. It is called umoscom.c under FreeBSD.
  3. ugensa.c has been imported from NetBSD.
  4. f_axe.c has now has support for Ax88178 and Ax88772, which is derived from OpenBSD.

In my last status report I asked for access to Sparc64 boxes with FreeBSD installed. Testing is ongoing and some problems remain with EHCI PCI Cards. I am not exactly sure where the problem is, but it appears that DMA-able memory does not get synced properly.

Markus Brueffer is still working on the USB HID parser and support. Nothing has been committed yet.

Several people have reported success with my new USB stack. Some claim 2x improvements, others have seen more. But don't expect too much.

If you want to test the new USB stack, checkout the USB perforce tree or download the SVN version of the USB driver from my USB homepage. At the moment the tarballs are a little out of date.

Ideas and comments with regard to the new USB API are welcome at freebsd-usb@freebsd.org .

Intel 3945ABG Wireless LAN Driver: wpi Benjamin Close benjsc@freebsd.org

Work is slowly continuing on this driver, focusing mainly on dealing with the newly released firmware for the card. The old firmware was not redistributable, the new firmware can be redistributed but has a completely different API. With the new firmware changes almost complete, the driver is approaching a state ready for -CURRENT.

Fix mbuf leakage (potential fix pending). Integrate s/w control of radio transmitter.
X.Org 7.2 integration Florent Thoumie flz@FreeBSD.org Dejan Lesjak lesi@FreeBSD.org Kris Kennaway kris@FreeBSD.org

X.Org 7.2 is now on final approach for landing into the ports tree. Work had proceeded at a slow pace for the first few months of the year due to reduced availability of flz@, the single developer working on integration. Recently lesi@ was recruited back into the task and readiness of the ports collection was pushed to completion (i.e. there are no major regressions apparent on package builds). The remaining tasks which need to be completed are a review of the diff to make sure no unintentional changes or regressions slip in to the CVS tree in the big merge, and completion of an upgrade script to manage the migration from X.Org 6.9 (X.Org 7.2 is so fundamentally different that it cannot be upgraded "automatically" using the existing tools like portupgrade). We hope to have these finished within a week or two, at which stage the ports collection will be frozen for the integration, and we will likely remain in a ``mini-freeze'' for a week or two in order to focus committer attention on resolving the inevitable undetected problems which will emerge from this major change.

FreeBSD and ZFS Pawel Jakub Dawidek pjd@FreeBSD.org Source code. OpenSolaris ZFS site. ZFS commit announce. ZFS - Quick Start.

The ZFS file system in now part of the FreeBSD operating system. ZFS was ported from the OpenSolaris operating system and is under CDDL license. As an experimental feature ZFS will be available in FreeBSD 7.0-RELEASE.

diff --git a/en/news/status/report-2007-04-2007-06.xml b/en/news/status/report-2007-04-2007-06.xml index 6c6dcb13a8..1155f062de 100644 --- a/en/news/status/report-2007-04-2007-06.xml +++ b/en/news/status/report-2007-04-2007-06.xml @@ -1,2796 +1,2796 @@ - + April-June 2007
Introduction

This report covers FreeBSD related projects between April and June 2007. Again an exciting quarter for FreeBSD. In May we saw one of the biggest developers summits to date at BSDCan , our 25 Google Summer of Code students started working on their projects - progress reports are available below, and finally the 7.0 release cycle was started three weeks ago.

If your are curious about what's new in FreeBSD 7.0 we suggest reading Ivan Voras' excellent summary at: http://ivoras.sharanet.org/freebsd/freebsd7.html and of course these reports.

The next gathering of the BSD community will be at EuroBSDCon in Copenhagen , September 14-15. More details about the conference and the developer summit are available in the respective reports below.

Thanks to all the reporters for the excellent work! We hope you enjoy reading.

soc Google summer of code proj Projects team FreeBSD Team Reports kern Kernel net Network Infrastructure vendor Vendor / 3rd Party Software misc Miscellaneous Multi-link PPP daemon (MPD) Alexander Motin mav@FreeBSD.org Project home ChangeLog

Mpd-4.2 has been released. It includes many new features, performance improvements and fixes.

The most significant and unique new feature is a link repeater functionality. It allows mpd to accept incoming connection of any supported type and forward it out as same or different type outgoing connection. As example, this functionality allows mpd to implement real LAC with accepting incoming PPPoE connection from client and forwarding it using L2TP tunnel to LNS. All other software L2TP implementations I know is only a LAC emulators without real incoming calls forwarding abilities.

Also mpd-4.2 presents:

Replacing external ifconfig and route calls with their internal implementations and other optimizations in 4.2 gave significant performance boost in session management. Newly implemented overload protection mechanism partially drops incoming connection requests for periods of critical load by monitoring daemon's internal message queue. As result, simple 2GHz P4 system is now able to accept, authenticate and completely process spike of 1000 concurrent PPPoE connections in just a 30 seconds.

Implement dynamic link/bundle creation. Auth proxying support in repeater mode. It is required for some LAC/PAC and Tunnel Switching Aggregator (TSA) setups. Remove static phys - link - bundle and phys - repeater relations. Implement ability to differentiate incoming connections processing depending on user login, domain and/or other parameters.
Distributed Logging Daemon Alexey Mikhailov karma@FreeBSD.org Bjoern Zeeb bz@FreeBSD.org Description of the project design Perforce repository for project hosting

The basic idea behind this project is to implement secure and reliable log file shipping to remote hosts. While the implementation focuses on audit logs, the goal is to build tools that will make it possible to perform distributed logging for any application by using a simple API and linking with a shared library.

Network protocol implementation Spooling SSL support
Porting OpenBSD's sysctl Hardware Sensors Framework to FreeBSD Constantine A. Murenin cnst@FreeBSD.org Shteryana Shopova syrinx@FreeBSD.org Port OpenBSD's sysctl hw.sensors framework to FreeBSD, original proposal for GSoC2007 cnst's GSoC2007 blog cnst's GSoC2007 atom feed cnst-sensors in soc2007 in perforce

OpenBSD includes sysctl hw.sensors framework since 2003; since 2005 the frameworks supports raid drives and most known i2c sensors; since 2006 the framework is redesigned with a sensor device concept in mind to accommodate continued growth. Consists of kernel api, sysctl(3)/sysctl(8), sensorsd(8), ntpd(8), systat(1), ports/sysutils/symon and 51 drivers as of 2007-07-07.

This GSoC2007 project is to port the underpinnings of this unified hardware monitoring interface to FreeBSD. Whilst it won't be possible to port all of the drivers due to architecture differences, we aim at porting all other parts of the framework and accompanying userland utilities.

At this time, lm(4) at isa and some kernel api have already been ported. The next big step is to complete sysctl(3) glue code so that further work on porting userland utilities could be accomplished. Details about sysctl are being discussed on arch@.

sysctl(3) glue code
Porting Linux KVM to FreeBSD Fabio Checconi fabio@FreeBSD.org Luigi Rizzo luigi@FreeBSD.org

The Linux kernel-based Virtual Machine (KVM) is a mechanism to exploit the virtualization extensions present in some modern CPUs (e.g., Intel VT and AMD-V). Virtualization extensions let ordinary processes execute a subset of privileged instructions in a controlled way at near-native speed. This in turn may improve the performance of system emulators such as qemu, xen, vmware, vkernel, User Mode Linux (UML), etc.

This project consists in porting to FreeBSD the Linux KVM, implemented as a loadable module, lkvm.ko. We use the approach in ports/devel/linux-kmod-compat to reuse the original Linux source code almost unmodified. We will also port a modified version of qemu which exploits the facilities made available by the Linux KVM to speed up emulation.

The URL above links to progress report detailing the exact project goals, milestones reached, and commit log details.

As of end of June 2007, we have mainly extended linux-kmod-compat to support the kernel API used by the Linux KVM code. The required functions have been implemented at various degrees, from simple stubs to fully functional ones. We have also imported the modified qemu and the libraries that are used to build the Linux KVM userspace client. In the second half of the SoC work we plan to complete the implementation of the kernel API and have a fully functional Linux KVM module, together with its client (qemu).

Multicast DNS and Service Discovery Fredrik Lindberg fli@FreeBSD.org

This project aims to create a multicast DNS daemon and service discovery utilities suitable for the base system. Multicast DNS is a part of Zero Configuration Networking (Zeroconf) and provides the ability to address hosts using DNS-like names without the need of an existing (unicast), managed DNS server. Work on the responder daemon is well underway and the only large missing piece of the puzzle is a way for local clients to do queries. The code can be found in the p4 branch projects/soc2007/fli-mdns_sd if anyone would like to give it a spin, even though it's incomplete. The project plan can be found on the wiki.

FreeBSD-update front end Andrew Turner andrew@FreeBSD.org

The project is split up with a front end to interact with the user and a back end to interact with freebsd-update. The back and front ends are able to communicate with each other using an XML protocol. The GUI is almost at the point it can take a command from the user and send it to the back end. The back end is able to detect when updates are ready.

EuroBSDcon 2007 EuroBSDCon 2007 Organizing Committee info@EuroBSDCon.dk

The sixth EuroBSDCon will take place at Symbion in Copenhagen, Denmark on Friday the 14th and Saturday 15th of September 2007.

The programme is ready and online at the webpage. Registration is open. Details about tutorials and Legoland trip are ready too.
The keynote will be John Hartman: Real men's pipes

If you share a room with friends at the hostel, then lodging is really inexpensive, and the lounge has high speed Internet access. Staying at the hostel is of course optional, and the area has several hotels.

KD85.com and O'Reilly will each have a booth at the conference.

We are still looking for more sponsors.

A public IRC channel #eurobsdcon on EFnet has been created for discussion and questions about the conference.

FreeSBIE Matteo Riondato matteo@FreeBSD.org FreeSBIE Staff staff@freesbie.org FreeSBIE ML freesbie@gufi.org FreeSBIE Website Freesbie ML Subscription

After the success of FreeSBIE-2.0.1-RELEASE, development slew down a bit, but we have a big task for the summer: enable unionfs again and trying the new efficient memory filesystem, tmpfs.

For all new ISO images we will be following RELENG_7, with the hope to release a stable image once 7.0-RELEASE have been released.

Build and test an ISO image with FreeSBIE+unionfs+tmpfs.
Ports Collection infrastructure improvements Gábor Kövesdán gabor@FreeBSD.org Andrew Pantyukhin sat@FreeBSD.org Gábor's SoC 2007 wiki page

Gábor Kövesdán is working on some improvements for the Ports Collection infrastructure. This year, he aimed to work on long-standing issues, which are tracked in GNATS, but we have not had a volunteer for recently. With the mentorship of Andrew Pantyukhin, he is also reimplementing the DESTDIR support for Ports Collection in a more practical way. The complete description and status of this project is available on Gábor's SoC 2007 Wiki page.

Please see the Wiki page for the current status.
The Hungarian Documentation Project Gábor Kövesdán gabor@FreeBSD.org Info for volunteers Hungarian Webpages Latest translation

We have added one translated article since the last status report about this project. The infrastructure is ready to support localized articles and books as well, we just lack of human resource. New volunteers are highly welcome! Please see the link below and contact Gábor if you are interested.

Translate more articles and books.
tarfs: A tar File System Eric Anderson anderson@FreeBSD.org TarFS Wiki

Tarfs is a simple tar file system implementation for FreeBSD.

The current goals are:

Here's the current state of things:

No `..' directory in root of mounted tar file system Locking issues regarding `..' in subdirs off root of fs No block/char special device support. Needed? Needs a directory hashing method More testing needed.
FAST_IPSEC Upgrade George Neville-Neil gnn@FreeBSD.org Bjoern Zeeb bz@FreeBSD.org

FAST_IPSEC has now replaced Kame IPsec as the IPsec stack in HEAD. This will be part of the 7.0 release. The merge happened in early July with George handling the kernel bits and Bjoern handling user space.

The kernel option IPSEC is now the ONLY option for IPsec support in the FreeBSD kernel.

Test test test!!!!
USB Hans Petter Sirevaag Selasky hselasky@FreeBSD.org Current USB files My USB Homepage Code reference for the new USB stack and USB device drivers

During the last three months there has been several changes to the USB stack. Here is a quick list of the most important changes:

  1. FULL speed isochronous devices over HIGH speed USB Hubs are now fully supported. Due to various reasons the maximum isochronous bandwidth has been limited to 6MBit/s. This limit is tunable.
  2. There is now full support for Linux USB device drivers through a Linux USB API emulation layer.
  3. Various cleanups and fixes.

Markus Brueffer is still working on the USB HID parser and support. Nothing has been committed yet.

If you want to test the new USB stack, checkout the USB perforce tree or download the SVN version of the USB driver from my USB homepage. At the moment the tarballs are a little out of date.

Ideas and comments with regard to the new USB API are welcome at freebsd-usb@FreeBSD.org .

gvirstor Ivan Voras ivoras@FreeBSD.org

Gvirstor is a GEOM class which provides virtual storage capacity (something like virtual memory for storage devices). It's ready to be committed to HEAD (the plan is for it to get into 7.0-RELEASE).

Any interested testers are welcome!
finstall Ivan Voras ivoras@FreeBSD.org

Project "finstall" aims to create a next-generation FreeBSD installer that will make use of the newest features present in the system. The project should yield something usable for 7.0-RELEASE, but the intention is to keep it as a "second" installer system during 7.x, alongside sysinstall. In any case, sysinstall will be kept for architectures not supported by finstall (e.g. all except i386 and amd64).

The work is progressing well and on plan. There's a small setback currently with X11 applications executing of a read-only file system (at least that's the currently recognizable symptom). Any interested testers are very much welcome!
HDTV Drivers (ATSC) John-Mark Gurney jmg@FreeBSD.org bktrau Perforce source repository cxd Perforce source repository

This entry was previously the Bt878 Audio Driver (aka FusionHDTV 5 Lite driver) announcement, but as work expanded slightly, it's a bit more generic now.

A few bugs in bktrau has been fixed since January. If you have been running an earlier version, it is recommended to upgrade as the driver could panic. The driver works with multiple cards in the same machine (tested with two).

FusionHDTV 5 Lite -- Due to lack of documentation from DViCO and LG, I have copied magic values from the Linux driver to get ATSC capturing working.

ATI HDTV Wonder -- After years of trying to get into the ATI developer program, they have finally suspended it, so no support from ATI. I have started work on a driver, cxd, for the Conexant CX2388x based cards. The ATI HDTV Wonder uses ATI's own demodulator, and I was able to get it to tune, after cribbing from the Linux driver. When capturing, I get some valid data, but not all the data. Due to lack of support from ATI and linux-dvb the project has been put on indefinite hold.

If someone has another CX2388x based card, it shouldn't be too hard to take the driver and get it working with a different tuner.

A Python module is available for both drivers/cards, along w/ a sample capture application using it. The module is now known to work well with threads so that tuning (expensive due to i2c ioctl's) can happen in another thread without causing program slow down. The module is working well with a custom PVR backend.

Provide support for NTSC and FM tuning. Add support for other cards and tuners that use the Bt878 chip. Add support for other cards and tuners that use the CX2388x chip.
Problem Report Database Mark Linimon bugmeister_at_FreeBSD_dot_org GNATS PR statistics

Gavin Atkinson has joined the bugbuster team via getting a GNATS account on the FreeBSD cluster. He is following in the footsteps of Matteo Riondato, who later graduated to a full src commit bit. So far, he has helped close nearly 150 PRs, including many that had become stale. Welcome!

Our short-term goal is to try to identify bugs that we might be easily able to fix before the 6.3/7.0 simultaneous release. So far, great progress has been made on ata- and usb-related PRs.

The goal for the rest of this year is to generate more developer interest in fixing bugs. To do this, we are, first, trying to do more work on triaging PRs as they come in, to help flag ones that seem to be valid problems (especially if they include patches.) Secondly, we have started a new weekly periodic posting to the freebsd-bugbusters@FreeBSD.org mailing list, which is a short list of PRs that we feel are ready for committer action. This posting is automatically generated from a text-file list that we maintain.

We are continuing to try to manage our community's expectations of what we can do with the incoming PRs. In particular, we are trying to discourage submissions of the form "I cannot get the XYZ function to work". In practice, these PRs are not worked on. Instead, we are now encouraging these postings to go to one of the mailing lists such as freebsd-questions@, freebsd-x11@, and so forth. The idea is to emphasize GNATS as a "Problem Report" method, rather than a "general FreeBSD support" method. I feel that, otherwise, we were creating a false expectation.

The overall PR count has dropped to below 5000, despite the extra PRs still not cleared up from the ports freeze for the xorg7.2 import. Significant progress has been made on the i386, kern, and bin PRs, as well as PRs in the 'feedback' state. In addition, Warner Losh has made progress on closing many of the usb PRs.

Please join us on the freebsd-bugbusters@ mailing list, or on #freebsd-bugbusters on EFNet, to help us triage PRs as they come in and also help us to work through the backlog, and help us to try to create a bugbusting "community".
Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom tinderbox

The ports count is over 17,300. The PR count has been stable at around 800; we have not quite cleared up the backlog that showed up during the freeze to import xorg7.2.

There have been 4 experimental runs on the build cluster, most notably resulting in some speedups for package registration. A further experimental run to genericize autotools handling is in progress.

One of the most sweeping ports commits to happen in years was the upgrade of xorg from 6.9 to 7.2. This involved a complete rework of the internals of the port, as X.org itself has effectively pushed the responsibility for packaging to the OSes that incorporate it. The idea was to be able for them to update individual code (such as video drivers) without having to reroll the entire distribution. This commit caused us to have the longest period of preparation work, and actual tree lockdown, that I am aware of. The commit continues to be controversial, partly due to the fact that none of our port upgrade tools was up to the task of doing the upgrade without manual intervention.

At the same time that xorg was upgraded, we moved the installation directory from the obsolete /usr/X11R6 to our default /usr/local. This further complicated the upgrade.

There have been new releases of the ports tinderbox code, the portmaster update utility, and portupgrade.

GNOME was updated to 2.18.2.

We have added 7 new committers since the last report. We appreciate all the new help. However, a few committers have turned in their commit bits for safekeeping, due to lack of time.

Unfortunately, Clement Laforet has also had to step down from portmgr due to lack of time. We thank him for his help so far.

Erwin, Kris and Mark met up at BSDCan and reviewed all the portmgr-owned PRs. A large number were closed, or suspended pending more work from the submitter. After closing the PRs that were committed after the -exp builds, the number of portmgr owned PRs came down to an all time low of 48 from around 70. We hope to make further progress during the rest of the year.

gcc4.2 has been imported to the base for 7.0. Unfortunately, this breaks a large number of ports. We need committer and maintainer help to get these in good shape for the release. Most of the remaining ports PRs are "existing port/PR assigned to committer". Although the maintainer-timeout policy is helping to keep the backlog down, we are going to need to do more to get the ports in the shape they really need to be in. Although we have added many maintainers, we still have many unmaintained ports. The packages on amd64 are lagging behind a bit; those on sparc64 require even more work.
Network Stack Virtualization Marko Zec zec@fer.hr

The network stack virtualization project aims at extending the FreeBSD kernel to maintain multiple independent instances of networking state. This will allow for complete networking independence between jails on a system, including giving each jail its own firewall, virtual network interfaces, rate limiting, routing tables, and IPSEC configuration.

I believe that the prototype, which is kept in sync with FreeBSD -CURRENT, is now sufficiently stable for testing. It virtualizes the basic INET and INET6 kernel structures and subsystems, including IPFW and PF firewalls, and more. In the next month I plan to have the IPSEC code fully virtualized, and refine and document the management APIs. The short-term goal is to deliver production-grade kernel support for virtualized networking for FreeBSD 7.0-RELEASE (as a snap-in kernel replacement), while continuing to keep the code in sync with -CURRENT for possible merging at a later date.

mtund - Magic Tunnel Daemon Matus Harvan mharvan@FreeBSD.org mtund wiki page

IP can easily be tunneled over a plethora of network protocols at various layers, such as IP, ICMP, UDP, TCP, DNS, HTTP, SSH. While a direct connection may not always be possible due to a firewall, the IP packets could be encapsulated as payload in other protocols, which would get through. However, each such encapsulation requires the setup of a different program and the user has to manually probe different encapsulations to find out which of them works in a given environment.

mtund is a tunneling daemon using run-time loadable plugins for the different encapsulations. It automagically selects the best encapsulation in each environment and fails over to another encapsulation in case the environment changes. There already is running code available, capable of tunneling via TCP and UDP with a working failover mechanism. As this is a Summer of Code project, rapid changes and addition of new features can be expected during the summer. Please see the wiki page for more details and up-to-date information.

Note that the project originally started under the name of Super Tunnel Daemon, but was later renamed to mtund for Magic Tunnel Daemon.

I am always happy to hear from others trying out the code and providing feedback, both positive and negative.
Fine grain thread locking Jeff Roberson jeff@FreeBSD.org Attilio Rao attilio@FreeBSD.org Kris Kennaway kris@FreeBSD.org

Over the past 6 months several developers undertook an effort to replace the global scheduler lock with a finer-grain interface modeled on the Solaris container lock approach. This significantly reduces contention on higher-end multiprocessor machines.

This patch went into 7.0-CURRENT and has proven to be very stable. The last remaining bugs are in rusage and effect only process time accounting statistics.

SCHED_SMP and SCHED_ULE Jeff Roberson jeff@FreeBSD.org Benchmarks and SCHED_SMP discussion.

SCHED_SMP is a fork of the ULE scheduler which makes use of the new fine grain scheduler locking in 7.0-CURRENT to significantly improve SMP performance on some workloads. It has improved and stronger affinity, smarter CPU load balancing, structural improvements and many sysctl tunables. This can be considered ULE 3.0. Discussions are ongoing as to whether this will go into 7.0 as SCHED_SMP or as SCHED_ULE in 7.0 or 7.1.

SCHED_ULE has had many bugfixes and performance improvements over the 7.0 development cycle and should no longer be considered unstable or experimental. On most workloads it significantly outperforms SCHED_4BSD on SMP and even slightly outperforms it on UP. There are some pathlogical workloads which exhibit as much as a 5% performance penalty. Many thanks to Kris Kennaway and current users for bug reports and performance testing.

Kernel contention reduction using mysql Jeff Roberson jeff@FreeBSD.org mysql benchmarks and discussion.

FreeBSD developers have been using mysql as a testbed to find kernel contention hotspots in the kernel. As a result of this we have seen a 5x performance improvement over 6.0 on 8way machines. Recent changes include finer locking in fcntl(), removing Giant from flock and fcntl F_SETLK. These changes will be available in 7.0 and primarily improve write performance. Experimental changes to select() have also been discussed on arch@ that solve contention issues there however these will not be ready in the 7.0 timeframe.

PC-BSD Kris Moore kris@pcbsd.com PC-BSD Homepage

The last major updates are currently being made to PC-BSD 1.4, which will include KDE 3.5.7, Beryl, Flash, Intel Wireless, Nvidia Drivers and more! This release will also include new utilities to make running PC-BSD on the desktop easier than ever, including:

Once any final major issues are resolved, we will be issuing a public beta of PC-BSD 1.4 to ensure compatibility across a variety of platforms.

EuroBSDCon 2007 Developer Summit Poul-Henning Kamp phk@FreeBSD.org

The next developer summit will be different from the previous ones.

Very different.

Gone are the auditorium style seating, beamers, endless presentations and soggy sandwiches.

Instead we head out to an old village school in the beautiful Danish countryside, we hang around all over the place, sleep in the old science room, cook our own food and hack the living daylights out of anything we care for.

September 17th and 18th, right after EuroBSDcon2007 in Copenhagen. (Well, right after the optional trip to legoland...)

Be there!

PS: Yes, it's not uncivilized, there is a full speed ADSL and WLAN.

http support for PXE Alexey Tarasov taleks@FreeBSD.org Project repository. Project related Wiki-page.

Main goal of project is to introduce code working in PXE preboot environment, able to download from web server via direct connection or http proxy and prepare booting of FreeBSD kernel.

Already implemented, but haven't thoroughly tested: PXE wrappers core code, ARP, ICMP echo request/reply, sockets code similar to common sockets (UDP and TCP modules). On base of sockets: simple DHCP client, DNS client.

Currently working on http client, TCP testing, kernel booting and documenting main concepts of project modules.

Testing PXE API related code in different PXE implementations. Testing of implemented protocols.
Release Engineering Release Engineering Team re@FreeBSD.org

Code freeze in preparation for FreeBSD 7.0 began on June 18th. There are several large projects still being finished up as well as some issues that resulted as "fallout" from the work done just before the code freeze started (e.g. things resulting from the GCC 4.2 import). A schedule for the 7.0 release has not been set yet but the hope is that the first BETA build will be done near the end of July with a "fairly normal" release cycle (a few BETA builds followed by two or three RCs, each separated by around two weeks).

We are planning to release FreeBSD 6.3 around the same time as FreeBSD 7.0 is released so the release schedule for that will be set at the same point we set the release cycle for 7.0, hopefully late in July.

10Gigabit Network Support Kip Macy kmacy@FreeBSD.org Andrew Gallatin gallatin@FreeBSD.org Jack Vogel jfv@FreeBSD.org Robert Watson rwatson@FreeBSD.org

Support was added for two more 10gigabit network drivers and there were major advances on improving system performance over 10g media.

Kip Macy committed a new driver for the Chelsio adapters. The cxgb driver supports all current 10g adapters, as well as the new four-port gigabit model. The cxgb driver work was supported by Chelsio.

Drew Gallatin made significant improvements to the Myricom 10g driver mxge. With these updates the driver does line rate transfers with less system overhead.

Neterion contributed the nxge driver to support all their Xframe 10Gbe Server/Storage adapters. The initial driver import was done by Sam Leffler; a switch over to vendor support will happen soon.

Jack Vogel is preparing a driver to support the latest Intel 10g hardware devices. The new driver - ixgbe - will complement the existing ixgb driver that supports older Intel 10g cards.

Kip and Drew worked with other folks on performance analysis and tuning. This work improved cpu affinity and reduced overhead for managing network resources. Work is also underway to define a common Large Receive Offlaod (LRO) infrastructure. LRO is analogous to TSO on the receive side enabling drivers to receive at near line rate with normal sized frames. This common code base will help replace driver-specific code.

A GUI audit analyzer for FreeBSD Dongmei Liu ldm@ercist.iscas.ac.cn

This project is due to provide a GUI audit log analysis tool for FreeBSD. Refer to ethereal/wireshark packet parsing engine and its framework to view and parse audit logs.

Get a GUI framework using GTK2.0 include menu bar, toolbar, list view and tree view. Parse and display audit log in the trailer file in the list view and tree view. Online capture audit log and parse and display them in the list view and tree view Add the filter mechanism Add the statistic mechanism Remote audit log analysis mechanism
BSD Bintools project Kai Wang kaiw27@gmail.com

A basic implementation of ar(1) (include ranlib) was finished and available in the perforce repository. Currently it provides all the main functions an ar(1) should have and it is based on the libarchive and libelf library thus is expected to have a better and simpler structure than the GPL'ed version. The work left in this part of the project is to perform a elaborate test and add additional functions.

Stack trace capture in PMCTools Joseph Koshy jkoshy@FreeBSD.org PMCTools Wiki page.

The kernel/hwpmc(4) bits of stack trace capture have been implemented and are available in Perforce under path '//depot/user/jkoshy/projects/pmc/...'. I'm currently enhancing pmcstat(8) to extract and summarize this information. Support by Google Inc. for this project is thankfully acknowledged.

Linuxulator update Roman Divacky rdivacky@FreeBSD.org Konstantin Belousov kib@FreeBSD.org Linuxulator update 2007

Just like last year I got the opportunity to work on updating the Linuxulator to Linux version 2.6. This year I work on finishing futexes, *at syscalls and epoll/inotify.

I, cooperating with Konstantin Belousov, have managed to fix futexes to the state of passing the official futex testing program. The fix was committed and 7.0R will ship with correct futex implementation. Work is planned on removing Giant locking from futexes. This only needs some carefull review and testing.

These days I mostly focus on *at syscalls, the patch is almost finished for committing and I hope that it will make it into 7.0R. As a part of this work I implemented native FreeBSD syscalls as well. Watch arch mailing list as I post the patch there.

I also finished writing my master thesis describing how the Linuxulator works and Gábor Kövesdán is working on integrating it into official FreeBSD articles.

No work has happened in the epoll/inotify area but I hope to work on it right after I finish the *at syscalls.h

Finishing *at syscalls. Start the epoll/inotify work. Finish removal of Giant from futexes.
Security Regression Test Zhouyi Zhou zhouzhouyi@FreeBSD.org Robert Watson rwatson@FreeBSD.org Perforce Repository.

Security Regression Test is supported by the project of Google summer code 2007. The main objective of this stage is to test the correctness of FreeBSD Mandatory Access Control Framework including correctly passing the security label from userland to kernel and non-bypassibility of Mandatory Access Control Hooks.

Work performed in the last month:

  1. Constructed a pair of pseudo ethernet drivers used for testing network related hooks. To avoid the packet go through the lo interface, the IP address in the packet is twisted in the driver.
  2. Constructed a framework for logging Mandatory Access Control hooks which is got called during a period of time.
    • In kernel, every non-null label is got externalized into human readable string and recorded in a tail queue together with the name of hook that got called and possible flags or modes (etc. VREAD/VWRITE for mac_check_vnode_open hook). There is a thread much like audit subsystem's audit_worker logging the queue into a userspace file. The userland program use open, ioctl and close the /dev/mactest node to trigger and stop the logging. The logging file is truncated to zero every time the logging mechanism is triggered.
    • In userland, a bison based parsing tool is used to parse the logged file and reconstruct the record chain which will be compared with testsuite supplied configuration file to examine if expected hooks is got called and the label/flags/modes are correct. c) The testsuite mainly follows src/tools/regression/fstest, modified to adapt to test Mandatory Access Control Framework and include tests for signals
The code is quick and dirty. For example, a call to vn_open without checking its return value which is not fault tolerance. The coding style also needs modifications. Although a test framework is completely constructed, the detailed test cases still need to be written, the test cases beside fstest and signal need to be add. Testing of audit subsystem has not begin. Other parts of Security Subsystem in FreeBSD also need concern.
TrustedBSD Audit Robert Watson rwatson@FreeBSD.org Christian Peron csjp@FreeBSD.org trustedbsd-audit@TrustedBSD.org TrustedBSD Audit Page

General cleanups in preparation for 7.0.

Process audit state moved to the credential to allow it to be accessed lock-free in most cases, as well as allowing it to be used in asynchronous contexts.

OpenBSM 1.0a14 has been imported, which: fixes IPv6 endian issues, makes OpenBSM gcc41 warnings clean, teaches audit_submit(3) about getaudit_addr(), adds zonename tokens; other changes since the existing CVS 1.0a12 release previously imported include man page improvements, XML printing support, better audit.log.5 documentation, additional 64-bit token types, and new audit event identifiers.

MAC checks have been added so that MAC policies can control use of audit system calls.

Additional system call arguments are now audited.

Audit now provides a security.audit sysctl node in order to determine if audit support is compiled in; boot-time console printfs have been removed.

"options AUDIT" is now in the 7-CURRENT GENERIC kernel, so AUDIT support will be available out of the box in 7.0 without a kernel recompile. Manually enabling audit support in rc.conf will still be required. With FreeBSD 7.0, AUDIT will be a fully supported, rather than experimental, feature.

The FreeBSD Foundation Deb Goodkin deb@FreeBSD.org The FreeBSD Foundation

The FreeBSD Foundation ended Q2 raising over $116,000. We're almost half way to our goal of raising $250,000 this year! We continued our mission of supporting developer communication by helping FreeBSD developers attend BSDCan. We were also a sponsor of BSDCan and the developer summit. We are a sponsor of EuroBSDCon 2007 and are now accepting travel grant applications for this conference. Foundation board members met with representatives of companies that use or are thinking of using FreeBSD both in the bay area and Ottawa.

The Foundation has negotiated a joint development agreement with Google, Inc. to sponsor FreeBSD developer Joseph Koshy to improve FreeBSD's HWPMC implementation, including adding stacktrace support, and a donation of SMP hardware for future SMP scalability work. We greatly appreciate Google's support for this project, which will facilitate performance measurement and optimization of both the FreeBSD operating system and applications running on it.

To learn more about what we're doing, go to our website at http://www.FreeBSDFoundation.org/ . Our July newsletter will be published soon to update you on how we've been supporting the project and community worldwide.

TrustedBSD MAC Framework Robert Watson rwatson@FreeBSD.org trustedbsd-discuss@TrustedBSD.org TrustedBSD MAC Page

Cleanup of MAC Framework API/KPI layers: mac.h is now just the user and user<->kernel API; mac_framework.h is the kernel<->MAC Framework KPI, and mac_policy.h is the MAC Framework<->MAC policy module KPI. Along similar lines, mac_label_get() and mac_label_set() accessor functions now allow policies to access label data without encoding struct label binary layout into policy modules, opening the door to more efficient layouts. struct label is now in mac_internal.h and used only inside the MAC Framework.

General MAC policy cleanup, including removing no-op entry points and sysctls for some sample policies. mac_test(4) has been cleaned up significantly, and counters for all entry points added.

A MAC check for UNIX domain socket connect has been added.

MAC checks have been added so that MAC policies can control use of audit system calls.

MAC checks that duplicate existing privileges but add no additional context have been removed (such as sysarch_ioperm, kld_unload, settime, and system_nfsd) -- checks aligned with privileges but that do provide additional context, such as additional arguments, have been kept.

The Biba and LOMAC policies now implement priv(9) checks, differentiating between privileges that may compromise system integrity models, and those that don't.

The essentially unused mnt_fslabel / mnt_label distinction has been eliminated by moving to a single mnt_label. No functional change to any policy.

Several MAC-related interfaces have been modified to synchronize with the naming conventions present in the version of the MAC Framework adopted in Mac OS X Leopard; significant further changes are in the pipeline to complete this synchronization. While it will not be possible to reuse a policy between the two platforms without careful thinking and modification, this makes porting much easier.

Multiprocessor Network Stack Robert Watson rwatson@FreeBSD.org net@FreeBSD.org Netperf Project Page

The custom file descriptor array lock has been replaced with an optimized sx lock, resulting in 2x-4x improvement in MySQL transaction rates on 8-core MySQL benchmarks. This improvement is due to moving to shared locking for frequent fd lookup operations, as well as significant optimization of the case where the filedesc lock is highly contended (as occurs in the threaded MySQL server performing constant socket I/O).

The custom socket buffer I/O serialization lock (sblock), previously created by interlocking SB_WANT and SB_LOCK flags with the socket buffer mutex, has been replaced with an optimized sx lock, leading to a 10% performance improvement in MySQL and PostgreSQL benchmarks on 8-core systems. As part of this change, sx locks now have interruptible sleep primitives to allow the SB_NOINTR flag to work properly.

These changes also correct a long-standing bug in socket buffer lock contention and SB_NOWAIT reported by Isilon; a simpler patch has been merged to 6.x to fix this bug without merging loocking changes.

TCP debugging is now properly synchronized using a new tcp_debug_mtx.

UMA allocation counters are now used for pipes rather than custom atomic counters, resulting in lowered overhead for pipe allocation and free.

Significant code cleanup, commenting, and in some cases MFC'ing, has taken place with respect to the network stack and synchronization. Additional DDB debugging commands for sockets of various sorts have been added, allowing listing of socket state from DDB without the use of GDB.

Certain non-MPSAFE subsystems have been removed or will be removed from FreeBSD 7.0, including IPX over IP tunneling (not general IPX/SPX support, just the tunneling over IP), KAME IPSEC (FAST_IPSEC is MPSAFE and now now supports IPv6), i4b, netatm (two other ATM stacks are still present), and ng_h4. Some of these features will be reintroduced in FreeBSD 7.1, but by removing them now, we are able to remove the NET_NEEDS_GIANT compatibility infrastructure that significant complicates and obfuscates the socket and network stack code.

Other measurement and optimization projects continue; however, the 7.0 locking/synchronization work for the network stack is essentially complete.

New work to parallelize the netisr thread (netisr2) as well as distribute UDP and TCP processing over multiple CPUs by connection, rather than just by input source as in 7.0, was presented at BSDCan. This work will be targeted at the 8-CURRENT branch. Complete netatm and NET_NEEDS_GIANT removal for 7.0. Complete MPSAFE locking of mld6 and nd6 IPv6 subsystems, which currently run under a global lock.
TrustedBSD priv(9) Robert Watson rwatson@FreeBSD.org trustedbsd-discuss@TrustedBSD.org TrustedBSD Project

Further reduction of suser(9) consumers in order to attempt to remove the suser(9) KPI for 7.0. This includes resource limits, System V IPC, PPP, netinet port reuse, the NFS server, and netatalk. Remove unnecessary or redundant privilege checks were possible. UFS-privileges that apply to other file systems have been renamed to VFS privileges.

All suser_cred() flags and priv_check_cred() flags are no longer required, as SUSER_ALLOWJAIL and SUSER_RUID use are determined entirely inside kern_jail.c and kern_priv.c and selected based on the privilege number, not a calling context flag. All privileges are now consistently allowed or not allowed in jail, and consistently use the ruid or euid. We will leave the flags field there as it will likely be used for other things in the future.

Documentation in suser(9) and priv(9) has been updated.

Apple's MacBook on FreeBSD Rui Paulo rpaulo@FreeBSD.org P4 repository wiki page

Apple's MacBook computers are nicely designed and have neat features that other laptops don't. While Mac OS X is a nice operating system, UNIX folks (like me) would prefer to run other operating systems like FreeBSD. This project aims to bring bug fixes and new drivers to FreeBSD that would help running this OS on this platform.

Write drivers or fix issues for/with the touchpad, keyboard, remote control IR receiver, Bluetooth. Fix reboot, halt, suspend/resume issues.
Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org + href="http://www.freebsd.org/administration.html#t-secteam" />

In the time since the last status report, two security advisories have been issued concerning problems in the base system of FreeBSD; both of these problems were in "contributed" code maintained outside of FreeBSD. The FreeBSD Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated; since the last status report, 35 new entries have been added, bringing the total up to 925.

In order to improve handling of security issues in the FreeBSD Ports Collection a new "ports-security" team has been created to include ports committers who periodically help with fixing ports security issues and documenting them in the FreeBSD VuXML document. Committers who wish to help with this effort can contact simon@ for details.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 5.5, FreeBSD 6.1, and FreeBSD 6.2. The respective End of Life dates of supported releases are listed on the web site; it is expected that of the upcoming releases, FreeBSD 6.3 will be supported for two years after release, while FreeBSD 7.0 will be supported for one year after release.

lockmgr rewriting Attilio Rao attilio@FreeBSD.org Jeff Roberson jeff@FreeBSD.org http://wiki.freebsd.org/AttilioRao

The project consists in a rewriting of the lockmgr(9) interface on a lighter basis, using atomic instructions and direct usage of the sleepqueue interface. This should lead to a faster primitive, a saner interface and an higher maintainability of the code.

So far, 3 newly files called kern/kern_lockng.c, sys/_lockmgrng.h and sys/lockmgrng.h have been created for the new primitive and an initial implementation has been committed into the perforce branch: //depot/user/attilio/attilio_lockmgr/...

The implementation contains a good set of code intended to replace old lockmgr. Actually it only misses the support for lock draining that will be committed after an initial phase of testing and the inclusion of a better wake-up algorithm (which will simplify draining a lot and will improve performance on wakeup).

Need some testing
Gvinum improvements Ulf Lilleengen lulf@FreeBSD.org Patches of my SoC wo Weblog Wikipage

My previous status reports contained a lot of code that updated gvinum with the old vinum features.

This year gvinum has been significantly rewritten. Lukas Ertl began rewriting the way gvinum is organized from using a multi consumer/provider model, to use a single consumer and provider, and having an event-system that first handles user-requests, and then runs normal I/O operations (Much like other GEOM classes). This makes the code easier to read, and perhaps there will be less bugs :)

  1. setstate on plexes and volumes.
  2. attach/detach command now works.
  3. concat/stripe/mirror commands. The previous code conflicted more than I expected with the new gvinum system, but it should work now.
  4. (Mounted) rebuilds possible.
  5. (Mounted) sync possible.
  6. Some refactoring of old code (Basically updating old code to use the new event system, and add some abstractions where possible)

And of course, some time has gone to work out how things should be done, and to fix other bugs. I hope some of you are interested in trying this out (all the work has been in perforce so far), a patch can be found in the URL section. . This is a bit experimental, and although I've done much testing to hunt down bugs, there are most probably bugs left.

I have other goals this summer as well. However, since some parts of gvinum was rewritten, I might not be able to do all of these, but growing is already working for the concatenated volumes (and also mirrored). I'd also like to implement growing for Raid5 arrays as well. Logging plexes would also be cool to have, but this is not really needed, since we have g_journal. Both these features will be addressed after I've made sure gvinum does all old vinum does, and also perhaps better. As I might have some extra time on my hands this summer, so I gladly accept suggestions on what else I might fix or implement "while I'm at it".

Stability, stability, stability. I want gvinum to work really well. To accomplish that I have several test-machines I'm going to do different tests on. I sort of have a little test-plan in the working that I'll be using. A gvinumadmin tool that would make gvinum easier to use for unexperienced users. Perhaps integrate this into the installer. This is now probably something I'll do at the end, when hopefully everything works :) I might poke Ivan Voras a bit on this. Documenting gvinum and it's differences to vinum better. I take notes on where I need to document, so this is in progress. Implementing growing and shrinking of volumes. Implement logging plexes. Log all parity data being written.
libarchive/bsdtar Tim Kientzle kientzle@FreeBSD.org Colin Percival cperciva@FreeBSD.org Project page

Both libarchive 2 and bsdtar 2 are now in -CURRENT and will be in 7.0. Libarchive 1.9 and bsdtar 1.9 should be in 6-STABLE in time for 6.3.

libarchive 2 is much faster writing to disk than libarchive 1. It also supports new formats, has several minor API/ABI corrections, is more portable, and has many fewer bugs. Of special note is "libarchive_test", a new program that exercises much of the libarchive functionality; anyone interested in working on libarchive should become familiar with this test suite. bsdtar 2 is less ambitious, but does have a number of bug fixes and takes advantage of several new features in libarchive 2.

libarchive 1.9 is identical to libarchive 2 except it maintains the old API/ABI. Similarly, bsdtar 1.9 is nearly identical to bsdtar 2, lacking only a few features that would prevent it from being used with existing libarchive 1 libraries.

Tim Kientzle has started work on a libarchive-based cpio implementation that should be ready for inclusion with FreeBSD 8. Volunteer needed: We want a libarchive-based pax to replace our out-of-date pax implementation. Volunteer needed: pkg_add should use libarchive instead of forking an external tar; this could eventually make it much faster. Volunteer(s) needed: libarchive should write more cpio variants (easy); libarchive should read and write mtree format (not difficult); libarchive should write GNUtar 1.0 format sparse tar entries (tricky); bsdtar should support --metadata=<archive> to read names and properties from one archive, with data from disk, to create a new archive (mtree support in libarchive would make this very useful); bsdtar should preserve sparseness when creating archives.
USB update Warner Losh imp@FreeBSD.org

About 18 months ago, I started to remove the compatibility macros that we had in the USB stack. These macros made it very hard to read the code and to diagnose problems. They represented a barrier to entry for people reading and understanding the stack. In addition, many of them effectively hid bugs from all but the most intensive investigations of the code.

I've removed almost all of the macros in the client drivers, and all instances of the macros in the core FreeBSD USB stack. This makes the drivers more readable, and a little more robust. During this process, I fixed a lot of little bugs that people had been tripping over, and some that people hadn't reported. I've added a boatload of new vendor and product ids to the drivers from user PRs as well as from OpenBSD/NetBSD drivers.

I finished up this work so that the FreeBSD USB stack would be more maintainable during the RELENG_7 period of time. I plan on MFCing most of the changes I've made into RELENG_6 after they have been shaken out in current. There was only one API changes in this work, so this is doable, and makes sharing drivers between 6.x and 7.x much easier. At this stage, it is unclear how long RELENG_6 will be around, so I'm hoping this will make USB much better in 6.3 if that's the release people choose to run.

I've shied away from many of the more complicated changes to the stack. There's work being done outside of the tree by Hans Petter Selasky (hps) to make these sorts of changes. There is much in his stack that's ready to be merged, and I hope to integrate from that work useful bits that can be merged without disruption to improve the FreeBSD USB stack.

I'm also looking for other FreeBSD developers that can jump in and help. Nearly all of the improvements I've done by spending a few hours a week sorting through the PRs for extremely low hanging fruit. There's plenty of room for others to be involved as well in improving FreeBSD's USB stack, as well as chances for us to import the now-useful bits from the evolving hps USB stack, hopefully reducing the diffs between it and the present FreeBSD USB stack. In addition, I'm looking for someone to do similar device ID merges from DragonFlyBSD.

Finally, I've embarked on a mission to try to merge all the BSD's usbdevs files. There's no reason to have separate ones. I've started to modify usbdevs(1) to read the src/sys/dev/usb/usbdevs file and report more verbose information that way. A merged usbdevs would be larger, and take up more memory in a USBVERBOSE kernel, so to mitigate that effect, I'm making changes to usbdevs(1).

The biggest area of concern before the 7.0 release is to get the updated device lists into the manual pages. This task is too big for me to take on in addition to the work I'm doing in cleaning up. We need more people that are willing to help out on the 'trivial' PRs that add IDs to the driver. In addition, we need people to periodically sync our driver lists with DragonFlyBSD, NetBSD, and OpenBSD drivers. Merging the other BSD's usbdevs tables would be very helpful. Writing a usbdevs parser for usbdevs(1) to use.
Wireless Networking Sam Leffler sam@FreeBSD.org Andrew Thompson thompsa@FreeBSD.org

A major update of the 802.11 wireless support was committed. Changes include advanced station mode facilities such as background scanning and roaming, and support for 802.11n devices. In addition parts of the Atheros' SuperG protocol extensions were added so that wireless clients that communicate with Atheros-based access points can operate more effectively. The changes to the infrastructure are also important because they simplify future distribution of Virtual AP (VAP) support.

This work represents the effort of many people including Kip Macy, Andrew Thompson, Sepherosa Ziehau, Max Laier, and Kevin Lo. Getting these changes into the tree now ensures they will be present for the lifetime of the 7.x branch.

The scanning and SuperG work were supported by Atheros. The 802.11n-related work was supported by Marvell.

Please test your wireless networking, especially during the 7.0 BETA and RC period.
FreeBSD and Wake On Lan Stefan Sperling stsp@stsp.name

I have been working on making wake on lan (WOL) work with FreeBSD. Contrary to popular believe OS support is required for WOL to work properly. In particular network card drivers need to configure network cards for WOL during system shutdown, else the cards won't wake up. WOL is _not_ just a BIOS issue.

This is work in progress. Currently the following cards/chipsets are supported:

I would be glad to get more feedback on my patch. I can add support for more chipsets but I need testers for hardware I don't have. I would appreciate access to data sheets for any NIC chipsets that are supported by FreeBSD and have WOL support.

I would especially appreciate technical feedback on the patch, preferably by a committer who is willing to nitpick the patch to make it ready for inclusion in -CURRENT. I currently maintain the patch against RELENG_6_2 for my own use but I would port it to -CURRENT for inclusion.

FreeBSD/xen Rink Springer rink@FreeBSD.org

Work is well under way to finish Kip Macy's FreeBSD/xen port, and get it into a shape which is suitable for inclusion in 7.0.

Generally, the port is stable and performs quite well. The major bottleneck is the inability to work with GCC 4.2, this is the last major TODO before the work can be committed.

Fix the port to correctly work with GCC 4.2. Port the Xen drivers to newbus. Test/fix PAE support. Start on amd64 support.
OpenBSD packet filter - pf Max Laier mlaier@FreeBSD.org

pf in HEAD (soon to be FreeBSD 7.0) has been updated to OpenBSD 4.1 bringing in a couple of new features:

Some patches that went into OpenBSD after 4.1 and improve performance significantly will be merged later.

Work to support pf and netgraph interaction is underway and will be imported after 7.0. As all required ABI changes have been made during the update, we will be able to MFC this work for 7.1 later on.

FreeBSD and Coverity Prevent Pawel Jakub Dawidek pjd@FreeBSD.org David Maxwell dmaxwell@coverity.com

FreeBSD's static analysis scans have been updated with a recent version of Coverity Prevent. Coverity is providing additional advice on configuration of the analysis to maximize the benefit from the tools.

At BSDCan2007, Coverity provided FreeBSD with a license for an additional analysis tool called Extend, which allows writing custom FreeBSD specific code checkers. David Maxwell presented training material for interested FreeBSD developers. Some applications of custom checkers have been considered, and more results will be forthcoming as they are implemented and tested.

diff --git a/en/search/web.atoz b/en/search/web.atoz index 3fd2a1e292..b8d4077d36 100644 --- a/en/search/web.atoz +++ b/en/search/web.atoz @@ -1,526 +1,526 @@ # # `A-Z Index' for http://www.FreeBSD.org # # With the format `|<url>'. # Empty lines or comments are ignored. # -# $FreeBSD: www/en/search/web.atoz,v 1.89 2007/07/21 11:28:24 danger Exp $ +# $FreeBSD: www/en/search/web.atoz,v 1.90 2008/03/12 11:14:50 remko Exp $ # # NOTE: the entries should be sorted alphabetically by their relative # path to www/en. E.g. docs/man.sgml comes after docs/books.sgml, # which comes before send-pr.sgml. Entries that does not belong strictly # to our repository (e.g. docs on docs.FreeBSD.org) should be put into # the misc section after the www/en section. Please always respect these # guidelines to keep this file easy to maintain. # # # www/en section # # applications.sgml Applications|&base;/applications.html Hittinger, Mark|&base;/applications.html WinNet Communications|&base;/applications.html Netscape Navigator|&base;/applications.html Java, Netscape Navigator|&base;/applications.html Internet services|&base;/applications.html X Windows workstation|&base;/applications.html Networking|&base;/applications.html Software development|&base;/applications.html Net surfing|&base;/applications.html Education and research|&base;/applications.html # art.sgml FreeBSD Art|&base;/art.html Art, FreeBSD|&base;/art.html # commercial/commercial.sgml Commercial Vendors|&base;/commercial/commercial.html Vendors, commercial|&base;/commercial/commercial.html Commercial Vendors, Consulting|&base;/commercial/consult_bycat.html Consulting, Commercial Vendors|&base;/commercial/consult_bycat.html Commercial Vendors, Hardware|&base;/commercial/hardware.html Hardware, Commercial Vendors|&base;/commercial/hardware.html Commercial Vendors, Software|&base;/commercial/software.html Software, Commercial Vendors|&base;/commercial/software.html Commercial Vendors, Miscellaneous|&base;/commercial/misc.html Miscellaneous, Commercial Vendors|&base;/commercial/misc.html # community/mailinglists.sgml Mailing lists|&base;/community/mailinglists.html non-English mailing lists|&base;/community/mailinglists.html Mailing lists, Brazilian Portuguese|&base;/community/mailinglists.html Mailing lists, Simplified Chinese|&base;/community/mailinglists.html Mailing lists, Czech|&base;/community/mailinglists.html Mailing lists, German|&base;/community/mailinglists.html Mailing lists, French|&base;/community/mailinglists.html Mailing lists, Hungarian|&base;/community/mailinglists.html Mailing lists, Indonesian|&base;/community/mailinglists.html Mailing lists, Italian|&base;/community/mailinglists.html Mailing lists, Japanese|&base;/community/mailinglists.html Mailing lists, Korean|&base;/community/mailinglists.html Mailing lists, Latvian|&base;/community/mailinglists.html Mailing lists, Netherlands|&base;/community/mailinglists.html Mailing lists, Polish|&base;/community/mailinglists.html Mailing lists, Portuguese|&base;/community/mailinglists.html Mailing lists, Russian|&base;/community/mailinglists.html Mailing lists, Slovakian|&base;/community/mailinglists.html Mailing lists, Spanish|&base;/community/mailinglists.html Mailing lists, Swedish|&base;/community/mailinglists.html Mailing lists, Turkish|&base;/community/mailinglists.html Brazilian Portuguese mailing lists|&base;/community/mailinglists.html Simplified Chinese mailing lists|&base;/community/mailinglists.html Czech mailing lists|&base;/community/mailinglists.html German mailing lists|&base;/community/mailinglists.html French mailing lists|&base;/community/mailinglists.html Hungarian mailing lists|&base;/community/mailinglists.html Polish mailing lists|&base;/community/mailinglists.html Portuguese mailing lists|&base;/community/mailinglists.html Japanese mailing lists|&base;/community/mailinglists.html Hungarian mailing lists|&base;/community/mailinglists.html Indonesian mailing lists|&base;/community/mailinglists.html Russian mailing lists|&base;/community/mailinglists.html Indonesian mailing lists|&base;/community/mailinglists.html Italian mailing lists|&base;/community/mailinglists.html Japanese mailing lists|&base;/community/mailinglists.html Korean mailing lists|&base;/community/mailinglists.html Latvian mailing lists|&base;/community/mailinglists.html Netherlands mailing lists|&base;/community/mailinglists.html Polish mailing lists|&base;/community/mailinglists.html Portuguese mailing lists|&base;/community/mailinglists.html Russian mailing lists|&base;/community/mailinglists.html Slovakian mailing lists|&base;/community/mailinglists.html Spanish mailing lists|&base;/community/mailinglists.html Swedish mailing lists|&base;/community/mailinglists.html Turkish mailing lists|&base;/community/mailinglists.html # community/newsgroups.sgml Newsgroups|&base;/community/newsgroups.html # community/webresources.sgml Web Resources, mirrors|&base;/community/webresources.html # copyright/daemon.sgml BSD Daemon|&base;/copyright/daemon.html Daemon, BSD|&base;/copyright/daemon.html Nemeth, Evi|&base;/copyright/daemon.html Lassiter, John|&base;/copyright/daemon.html Hosokawa, Tatsumi|&base;/copyright/daemon.html McKusick, Marshall Kirk|&base;/copyright/daemon.html # copyright/license.sgml Copyright|&base;/copyright/license.html License|&base;/copyright/license.html # copyright/trademarks.sgml Trademark legend|&base;/copyright/trademarks.html # developers/cvs.sgml CVS Repository|&base;/developers/cvs.html CTM|&base;/developers/cvs.html CVSup|&base;/developers/cvs.html anoncvs|&base;/developers/cvs.html # doc/* Japanese Handbook|&base;/doc/ja_JP.eucJP/books/handbook/index.html Handbook, Japanese|&base;/doc/ja_JP.eucJP/books/handbook/index.html Frequently Asked Questions (FAQ)|&base;/doc/en_US.ISO8859-1/books/faq/index.html FAQ|&base;/doc/en_US.ISO8859-1/books/faq/index.html # docproj.sgml Documentation Project|&base;/docproj/docproj.html Project, Documentation|&base;/docproj/docproj.html Goals, documentation|&base;/docproj/docproj.html FAQ, Documentation Project|&base;/docproj/docproj.html Handbook, Documentation Project|&base;/docproj/docproj.html Contributing, Documentation Project|&base;/docproj/docproj.html Submitting corrections, Documentation Project|&base;/docproj/docproj.html Submitting new material, Documentation Project|&base;/docproj/docproj.html SGML, Documentation Project|&base;/docproj/docproj.html Linuxdoc, Documentation Project|&base;/docproj/docproj.html Docbook, Documentation Project|&base;/docproj/docproj.html Guidelines, Documentation Project|&base;/docproj/docproj.html # docs.sgml Documentation|&base;/docs.html Handbook|&base;/docs.html # docs/books.sgml Books|&base;/docs/books.html # docs/man.sgml Manual Pages|&cgibase;/man.cgi # donations/index.sgml Charter, Donations Liaison|&base;/donations/index.html#charter Donations Liaison Charter|&base;/donations/index.html#charter Donations|&base;/donations/index.html # events/events.xsl Events|&base;/events/events.html Past Events|&base;/events/events.html#past Upcoming Events|&base;/events/events.html#upcoming # features.sgml Features|&base;/features.html 4.4BSD, A complete operating system|&base;/features.html Berkeley, University of California|&base;/features.html UCB|&base;/features.html Computer Systems Research Group|&base;/features.html CSRG|&base;/features.html Merged virtual memory and filesystem buffer cache|&base;/features.html virtual memory|&base;/features.html buffer cache|&base;/features.html Compatibility, SCO|&base;/features.html Compatibility, Linux|&base;/features.html Compatibility, NetBSD|&base;/features.html Compatibility, BSDI|&base;/features.html SCO, Compatibility|&base;/features.html Linux, Compatibility|&base;/features.html NetBSD, Compatibility|&base;/features.html BSDI, Compatibility|&base;/features.html # internal/about.sgml Statistics for this server|&base;/internal/about.html Fieber, John|&base;/internal/about.html Apache http server|&base;/internal/about.html http server|&base;/internal/about.html WWW server www.FreeBSD.org|&base;/internal/about.html hub.FreeBSD.org|&base;/internal/about.html BSDi, network connection|&base;/internal/about.html Network connection, BSDi|&base;/internal/about.html # internal/bylaws.sgml Core Bylaws|&base;/internal/bylaws.html Bylaws, Core|&base;/internal/bylaws.html # internal/doceng.sgml Charter, Doceng Team|&base;/internal/doceng.html Doceng Team Charter|&base;/internal/doceng.html Documentation Project, doceng|&base;/internal/doceng.html # internal/mirror.sgml Mirroring the FreeBSD Web Pages|&base;/internal/mirror.html rsync|&base;/internal/mirror.html # internet.sgml Internet|&base;/internet.html TCP/IP protocols|&base;/internet.html NFS|&base;/internet.html NIS|&base;/internet.html SNMP|&base;/internet.html FTP|&base;/internet.html DNS/BIND|&base;/internet.html SLIP|&base;/internet.html MBONE|&base;/internet.html SAMBA|&base;/internet.html PCNFS|&base;/internet.html Appletalk|&base;/internet.html Novell|&base;/internet.html TCP extensions|&base;/internet.html RFC-1323|&base;/internet.html networking|&base;/internet.html FTP Server ftp.FreeBSD.org, configuration|&base;/internet.html Yahoo|&base;/internet.html High performance and security|&base;/internet.html Encryption software|&base;/internet.html secure shells|&base;/internet.html Kerberos|&base;/internet.html end-to-end encryption|&base;/internet.html secure RPC facilities|&base;/internet.html O'Brien, Michael|&base;/internet.html SunExpert|&base;/internet.html # kse/index.sgml KSE|&base;/kse/index.html Threads, KSE|&base;/kse/index.html POSIX threads|&base;/kse/index.html # mailto.sgml Contact us|&base;/mailto.html Questions about this WWW server|&base;/mailto.html Questions about the contents of this WWW server|&base;/mailto.html Questions about FreeBSD|&base;/mailto.html # news/newsflash.sgml News flash|&base;/news/newsflash.html Press releases, News|&base;/news/newsflash.html #Changes at the FreeBSD Web Server|&base;/news/webchanges.html #Webchanges at the FreeBSD Web Server|&base;/news/webchanges.html # news/status/status.sgml Bi-monthly status reports|&base;/news/status/status.html FreeBSD Status Reports|&base;/news/status/status.html Status Reports|&base;/news/status/status.html # platforms/alpha.sgml Alpha|&base;/platforms/alpha.html Compaq Alpha|&base;/platforms/alpha.html DEC Alpha|&base;/platforms/alpha.html DIGITAL Alpha|&base;/platforms/alpha.html FreeBSD/alpha|&base;/platforms/alpha.html HP Alpha|&base;/platforms/alpha.html # platforms/amd64.sgml AMD64|&base;/platforms/amd64.html Athlon64|&base;/platforms/amd64.html FreeBSD/amd64|&base;/platforms/amd64.html Opteron|&base;/platforms/amd64.html x86-64|&base;/platforms/amd64.html # platforms/arm.sgml ARM|&base;/platforms/arm.html FreeBSD/ARM|&base;/platforms/arm.html StrongARM|&base;/platforms/arm.html # platforms/ia64/index.sgml FreeBSD/ia64|&base;/platforms/ia64/index.html IA-64|&base;/platforms/ia64/index.html Itanium|&base;/platforms/ia64/index.html # platforms/mips.sgml FreeBSD/MIPS|&base;/platforms/mips.html MIPS, FreeBSD|&base;/platforms/mips.html SGI MIPS, FreeBSD|&base;/platforms/mips.html # platforms/pc98.sgml FreeBSD/pc98|&base;/platforms/pc98.html NEC PC-98x1|&base;/platforms/pc98.html PC-98|&base;/platforms/pc98.html # platforms/ppc.sgml FreeBSD/PowerPC|&base;/platforms/ppc.html FreeBSD/ppc|&base;/platforms/ppc.html PowerPC|&base;/platforms/ppc.html # platforms/sparc.sgml FreeBSD/sparc64|&base;/platforms/sparc.html Sparc64|&base;/platforms/sparc.html Sparc|&base;/platforms/sparc.html UltraSparc|&base;/platforms/sparc.html # platforms/sun4v.sgml FreeBSD/sun4v|&base;/platforms/sun4v.html sun4v|&base;/platforms/sun4v.html UltraSparc-T1|&base;/platforms/sun4v.html # platforms/xbox.sgml xbox|&base;/platforms/xbox.html FreeBSD/xbox|&base;/platforms/xbox.html # ports/index.sgml Ports Collection|&base;/ports/index.html # press.sgml Press, in the|&base;/news/press.html Press Releases, Official|&base;/news/pressreleases.html # projects/* Home Automation|&base;/projects/projects.html#homeauto Automation, Home|&base;/projects/projects.html#homeauto Java|&base;/java/index.html GNOME|&base;/gnome/index.html KDE|&base;/projects/projects.html#kde Newbies Project|&base;/projects/newbies.html KAME Project|&base;/projects/projects.html#kame IPv6/IPsec stack for BSD|&base;/projects/projects.html#kame Token-Ring Project|&base;/projects/projects.html#tokenring IPSec|&base;/projects/projects.html#kame vinum|&base;/projects/projects.html#vinum logical volume manager|&base;/projects/projects.html#vinum volume manager, logical|&base;/projects/projects.html#vinum ATM, BSD|&base;/projects/projects.html#atm BSD ATM|&base;/projects/projects.html#atm GLOBAL common source code tag system|&base;/projects/projects.html#global Retail Outlets for FreeBSD|&base;/doc/en_US.ISO8859-1/books/handbook/mirrors.html Tinderbox|&base;/projects/projects.html#tinderbox Laptop Compatibility List|&base;/projects/projects.html#flcl Project ideas|&base;/projects/ideas/index.html # projects/busdma/index.sgml busdma and SMPng driver conversion project|&base;/projects/busdma/index.html SMPng driver conversion|&base;/projects/busdma/index.html # projects/c99/index.sgml C99 & POSIX Conformance Project|&base;/projects/c99/index.html POSIX Conformance|&base;/projects/c99/index.html # publish.sgml Related Publications|&base;/publish.html Publications, Related|&base;/publish.html Covers, Publications|&base;/publish.html Daemon, Covers|&base;/publish.html CDROM, Covers|&base;/publish.html#cdroms Books, Covers|&base;/publish.html#books Magazines, Covers|&base;/publish.html#magazines # releases/index.sgml Recent announcements about FreeBSD Releases|&base;/releases/index.html Current Releases|&base;/releases/index.html#current Future Releases|&base;/releases/index.html#future Past Releases|&base;/releases/index.html#past Release Information|&base;/releases/index.html Releases, current|&base;/releases/index.html#current Releases, future|&base;/releases/index.html#future Releases, past|&base;/releases/index.html#past 1.0 FreeBSD|&base;/releases/index.html#past 1.1 FreeBSD|&base;/releases/index.html#past 1.1.5 FreeBSD|&base;/releases/index.html#past 1.1.5.1 FreeBSD|&base;/releases/index.html#past 2.0 FreeBSD|&base;/releases/index.html#past 2.0.5 FreeBSD|&base;/releases/index.html#past 2.1 FreeBSD|&base;/releases/index.html#past 2.1.5 FreeBSD|&base;/releases/index.html#past 2.1.6 FreeBSD|&base;/releases/index.html#past 2.1.7 FreeBSD|&base;/releases/index.html#past 2.2 FreeBSD|&base;/releases/index.html#past 2.2.1 FreeBSD|&base;/releases/index.html#past 2.2.2 FreeBSD|&base;/releases/index.html#past 2.2.5 FreeBSD|&base;/releases/index.html#past 2.2.6 FreeBSD|&base;/releases/index.html#past 2.2.7 FreeBSD|&base;/releases/index.html#past 2.2.8 FreeBSD|&base;/releases/index.html#past 3.0 FreeBSD|&base;/releases/index.html#past 3.1 FreeBSD|&base;/releases/index.html#past 3.2 FreeBSD|&base;/releases/index.html#past 3.3 FreeBSD|&base;/releases/index.html#past 3.4 FreeBSD|&base;/releases/index.html#past 4.0 FreeBSD|&base;/releases/index.html#past 4.1 FreeBSD|&base;/releases/index.html#past 4.2 FreeBSD|&base;/releases/index.html#past 4.3 FreeBSD|&base;/releases/index.html#past 4.4 FreeBSD|&base;/releases/index.html#past 4.5 FreeBSD|&base;/releases/index.html#past 4.6 FreeBSD|&base;/releases/index.html#past 4.7 FreeBSD|&base;/releases/index.html#past 4.8 FreeBSD|&base;/releases/index.html#past 4.9 FreeBSD|&base;/releases/index.html#past 4.10 FreeBSD|&base;/releases/index.html#past 4.11 FreeBSD|&base;/releases/index.html#past 5.0 FreeBSD|&base;/releases/index.html#past 5.1 FreeBSD|&base;/releases/index.html#past 5.2 FreeBSD|&base;/releases/index.html#past 5.2.1 FreeBSD|&base;/releases/index.html#past 5.3 FreeBSD|&base;/releases/index.html#past 5.4 FreeBSD|&base;/releases/index.html#past 5.5 FreeBSD|&base;/releases/index.html#past 6.0 FreeBSD|&base;/releases/index.html#past 6.1 FreeBSD|&base;/releases/index.html#past 6.2 FreeBSD|&base;/releases/index.html#past 6.3 FreeBSD|&base;/releases/index.html#current 7.0 FreeBSD|&base;/releases/index.html#current # releng/index.sgml Code-Freeze Status|&base;/releng/index.html#freeze Release Engineering Information|&base;/releng/index.html Upcoming Release Schedule|&base;/releng/index.html#schedule # releng/charter.sgml Charter, Release Engineering Team|&base;/releng/charter.html Release Engineering Team Charter|&base;/releng/charter.html # relnotes.sgml Release Documentation|&base;/relnotes.html # search/search.sgml Search Services|search.html Web pages, search|search.html#web Search, Web pages|search.html#web Mailing list archives, search|search.html#mailinglists Search, Mailing list archives|search.html#mailinglists Ports Changes, Search|search.html Search, Ports Changes|search.html Message-ID, Search|search.html Search, Message-ID|search.html Usenet News, Search|search.html Newsgroups, Search|search.html Search, Usenet News|search.html Cross reference of the FreeBSD kernel|search.html XR, Cross reference of the FreeBSD kernel|search.html Kernel, Cross reference|search.html # search/searchhints.sgml Searching Hints|searchhints.html # security/security.sgml Security Guide|&base;/security/security.html # send-pr.sgml Submit a FreeBSD problem report|&base;/send-pr.html Bug report, submit|&base;/send-pr.html # smp/index.sgml Symmetric MultiProcessing (SMP)|&base;/smp/index.html SMP|&base;/smp/index.html # support.sgml Support|&base;/support.html # support/bugreports.sgml GNATS Problem Report Database|&base;/support/bugreports.html Bug reports, view|&base;/support/bugreports.html Bug reports, search|&base;/support/bugreports.html # support/webresources.sgml General UNIX Information|&base;/support/webresources.html#general X Window System|&base;/support/webresources.html#xwin Hardware, support|&base;/support/webresources.html#hardware # usergroups.sgml User Groups|&base;/usergroups.html # where.sgml Getting FreeBSD|&base;/where.html Installing FreeBSD|&base;/where.html#install Distribution Sites|&base;/where.html#distribution Applications and Utility Software|&base;/where.html#apps Commercial software|&base;/where.html # y2kbug.sgml y2k|&base;/y2kbug.html Year 2000 bug|&base;/y2kbug.html Millennium bug|&base;/y2kbug.html 2000, year bug|&base;/y2kbug.html # # Misc section # # Docs 4.4BSD Documents|http://docs.freebsd.org/44doc/ BSD Documents|http://docs.freebsd.org/44doc/ Documents, 4.4BSD|http://docs.freebsd.org/44doc/ Info Documents|http://docs.freebsd.org/info/ GNU Info Documents|http://docs.freebsd.org/info/ # Logo Contest Logo design competition|http://logo-contest.FreeBSD.org/ # News BSD News|http://bsdnews.com Daemon News|http://www.daemonnews.org/ # Security Advisories Security Advisories|http://security.freebsd.org Advisories, security|http://security.freebsd.org SA|http://security.freebsd.org # Source code Source Code|http://fxr.watson.org/ # Translated webpages German web pages|&base;/de/index.html Spanish web pages|&base;/es/index.html Russian web pages|&base;/ru/index.html French web pages|&base;/fr/index.html Italian web pages|&base;/it/index.html Japanese web pages|&base;/ja/index.html # Who's Who -Project Staff|&base;/doc/en_US.ISO8859-1/articles/contributors/staff-who.html -Staff, Project|&base;/doc/en_US.ISO8859-1/articles/contributors/staff-who.html -Who's Who|&base;/doc/en_US.ISO8859-1/articles/contributors/staff-who.html -Officers, Project|&base;/doc/en_US.ISO8859-1/articles/contributors/staff-who.html +Project Staff|&base;/administration.html +Staff, Project|&base;/administration.html +Who's Who|&base;/administration.html +Officers, Project|&base;/administration.html