Skip site navigation (1) Skip section navigation (2)


This report covers FreeBSD-related projects between July and September 2011. It is the third of the four reports planned for 2011. This quarter was mainly devoted to polishing the bits for the next major version of FreeBSD, 9.0, which is to be released by then end of this year.

Thanks to all the reporters for the excellent work! This report contains 28 entries and we hope you enjoy reading it.

Please note that the deadline for submissions covering the period between October and December 2011 is January 15th, 2012.


FreeBSD Team Reports

Network Infrastructure






Google Summer of Code


GELI status update

Contact: Pawel Jakub Dawidek <>

Selected GELI (disk encryption GEOM class) changes since 2010/Q3 report:

  • Implementation of suspend/resume functionality.
  • New version subcommand to check GELI providers version.
  • New -V option for init subcommand, which allows to create GELI providers for older FreeBSD versions.
  • Significant aesni(4) performance improvements for AES-XTS algorithm.

HAST (Highly Available Storage) status update

Contact: Pawel Jakub Dawidek <>
Contact: Mikolaj Golub <>

HAST is under active development. Some changes since Q1 report:

  • Async replication mode. Unfortunately it will not make it into 9.0-RELEASE (pjd@).
  • IPv6 support (pjd@).
  • Activemap fix that significantly reduces number of metadata updates (trociny@).
  • Provider's write cache flush after metadata updates (pjd@).
  • Possibility to specify pidfile in configuration file (pjd@).
  • Many bug fixes and other improvments.


pfSense Home URL:

Contact: Scott Ullrich <>
Contact: Chris Buechler <>

pfSense 2.0 has been released to the world. This brings the past three years of new feature additions, with significant enhancements to almost every portion of the system. The changes and new features are summarized here. This is by far the most widely deployed release we have put out, thanks to the efforts of thousands of members of the community.

Open tasks:

  1. Work on 2.1 is underway with the biggest changes being IPV6 support and PBI packaged binaries for the package system.

Tool for providing FreeBSD VM Images

Main github repo URL:

Contact: Alexander Yerenkow <>

A set of scripts to make building FreeBSD VM images easy.

Providing a way to make regular build images of the latest version from SVN. Images currently can be copied with `dd` to USB flash (for testing on real hardware) and VirtualBox (.vdi).

Open tasks:

  1. Build images with ports-set from main port-tree
  2. Build images with ports-set from main port-tree plus overrides from area51 (like experimental images)
  3. Build images with special development branches included (like for testing drivers)


ZFSguru main website URL:

Contact: Jason Edwards <>

ZFSguru is a newly designed Network Attached Storage operating system, much like FreeNAS. The difference is that ZFSguru focuses heavily on ZFS and user friendly operation, and uses a full FreeBSD distribution with no elements stripped down. This allows people new to FreeBSD and UNIX in general to access the power of ZFS, while still allowing more advanced users to tweak their NAS with additional functionality and use it as a normal FreeBSD distribution.

Started a little over a year ago, the ZFSguru project is making good progress. It should already be one of the most user friendly distributions focused on ZFS, and sports some very unique features. The advanced ZFS benchmarking and convenient Root-on-ZFS installation are good examples. Priority is given to finishing the missing core functionality, and extending the number of available service addons which currently are limited to iSCSI-target and VirtualBox extensions.

Open tasks:

  1. Finish ZFS and network related functionality in the web-interface.
  2. Introduce new service addons, adding optional functionality to ZFSguru.
  3. Extend the documentation. project — a FreeBSD-based firmware for embedded devices

Redmine project interface URL:
Mailing lists URL:
Main mercurial repository URL:
FreeBSD HEAD copy with our modifications URL:

Contact: Aleksandr Rybalko <> is a young project that aims to produce FreeBSD-based firmware for small boxes such as SOHO router, APs, etc. At the present time is able to build working firmware for:

  • D-Link DAP-1350
  • D-Link DIR-320
  • D-Link DIR-320-NRU
  • D-Link DIR-330
  • D-Link DIR-615-E4
  • D-Link DIR-620
  • D-Link DIR-632
  • D-Link DSA-3110-A1
  • D-Link DSR-1000N
  • NorthQ NQ-900
  • TPLink TL-WR941ND-v3_2
  • Ubiquiti RSPRO

Currently we are working on most parts of the core system but we are also in the planning phase for implementing a simple web-based GUI which we hope will have taken form before the next FreeBSD status report.

We still have many items not done, so devices in that list cannot be called "Production Ready" yet. But we work on that.

It is easy to add new devices, because we have separate definition of board and SoC(System on Chip), so if you have "Asus WL-500g Premium v2" for example, you can copy D-Link/DIR-320 directory and tweak to work for your device. We already have basic support for:

  • Broadcom BCM5354
  • Broadcom BCM5836
  • Ralink RT3052F
  • Ralink RT3050F
  • Ralink RT5350F
  • Atheros AR7161
  • Atheros AR7242
  • Atheros AR7241
  • Atheros AR7240
  • Atheros AR9132
  • Intel ixp435
  • Cavium CN5010

If you have ability and time, please join us at (Redmine interface and mailing lists)

Open tasks:

  1. Device drivers
  2. Web UI
  3. Control scripts
  4. Watchdog
  5. etc.

FreeBSD Team Reports

Ports Collection


Contact: Thomas Abthorpe <>
Contact: Port Management Team <>

The ports tree slowly moves up closer to the 23,000 mark. The PR count still remains at about 1000.

In Q2 we added 4 new committers, but took in 6 commit bits for safe keeping.

The Ports Management team have been running -exp runs on an ongoing basis, verifying how base system updates may affect the ports tree, as well as providing QA runs for major ports updates. Of note, -exp runs were done for:

  • Python update
  • Boost updates
  • Gtk3 updates
  • clang testing
  • pkgng testing
  • testing ruby19
  • setting the default fortran to lang/gcc46
  • setting apache22 as default
  • setting the default LDFLAGS in CONFIGURE_ENV

Work continues to refine the new build master pointyhat-west. An upgrade to -current done in September has proven problematic. We have enlisted ISC and Josh Paetzel to try to determine a fix. In the meantime, the source will be downgraded to RELENG_9.

The portsmon instance is being re-homed at Yahoo. Users should not see any changes. The new instance is currently visible at but will soon take on the name. The team would like to express its appreciation to TDC A/S for the loan of the existing machine for several years.

Work is underway to create a new QAT instance at NYI/NJ.

portmgr also assisted in setting up a sparc64 machine for general develop access at Yahoo.

Thanks to on-site work by Sean Bruno and Ben Haga, we once again have access to the powerpc build machine at ISC, and powerpc builds have been restarted. They also helped us get one more i386 machine back online.

linimon is working on a set of scripts to more quickly produce pre-configured PXEboot images for package build nodes.

The update of __FreeBSD_version in param.h to 1000000 proved very disruptive to the ports tree, triggering lots of bad assumption in code that interpreted it as FreeBSD 1. A great deal of work has gone into identifying the instances of broken code and fixing and upstreaming them. While this is taking place, one recommended workaround is to set your version to 999999.

Open tasks:

  1. Looking for help getting ports to build with clang.
  2. Looking for help fixing ports broken on CURRENT. (List needs updating, too)
  3. Looking for help with Tier-2 architectures. (List needs updating, too)
  4. Most ports PRs are assigned, we now need to focus on testing, committing and closing.

The FreeBSD Foundation


Contact: Deb Goodkin <>

The Foundation sponsored KyivBSD 2011 which was held in Kiev, Ukraine on September 24. We were represented at Ohio LinuxFest in Columbus, Ohio. And, we approved six travel grants for EuroBSDCon. Stop by and visit us at the FreeBSD booth during LISA '11, December 7-8, in Boston, MA.

Three Foundation funded projects were completed during this period: implementing xlocale APIs to enable porting libc++ by David Chisnall, implementing DIFFUSE for FreeBSD by Swinburne University, and adding GEM, KMS, and DRI support for Intel drivers by Konstantin Belousov.

We published our semi-annual newsletter. We purchased servers and other hardware for the FreeBSD co-location centers at Sentex and NYI.

The work above, as well as many other tasks which we do for the FreeBSD Project, could not be done without donations. Please help us by making a donation or asking your company to make a donation. We would be happy to send marketing literature to you or your company. Find out how to make a donation at our donate page.

Find out more up-to-date Foundation news by reading our blog and Facebook page.

The FreeBSD Release Engineering Team


Contact: Release Engineering Team <>

The Release Engineering Team has been coordinating the upcoming FreeBSD 9.0-RELEASE. Thanks to work done by many of the developers. The release, though delayed, is taking the shape nicely. We have reached the stage of doing the second Release Candidate. At this time we expect to have one more Release Candidate, to be followed by the final release itself.

Network Infrastructure

802.11n / atheros


Contact: Adrian Chadd <>

AR5416, AR9160, and AR9280 functions in both station and hostap mode. Performance is good.

Software retry of frames is implemented. Aggregation is implemented.

BAR TX is not yet handled. HT protection is not implemented; neither is MIMO powersave.

Open tasks:

  1. BAR TX
  2. MIMO powersave
  3. Correct handling of flushing TX queues during interface reset/reconfigure
  4. Correct handling of 20<->20/40mhz transitions (without dropping frames)
  5. More intelligent rate control

DIstributed Firewall and Flow-shaper Using Statistical Evidence (DIFFUSE)


Contact: Sebastian Zander <>
Contact: Lawrence Stewart <>
Contact: Grenville Armitage <>

DIFFUSE enables FreeBSD's IPFW firewall subsystem to classify IP traffic based on statistical traffic properties.

With DIFFUSE, IPFW computes statistics (such as packet lengths or inter-packet time intervals) for observed flows, and uses ML (machine learning) to classify flows into classes. In addition to traditional packet inspection rules, IPFW rules may now also be expressed in terms of traffic statistics or classes identified by ML classification. This can be helpful when direct packet inspection is problematic (perhaps for administrative reasons, or because port numbers do not reliably identify applications).

DIFFUSE also enables one instance of IPFW to send flow information and classes to other IPFW instances, which then can act on such traffic (e.g. prioritise, accept, deny, etc.) according to its class. This allows for distributed architectures, where classification at one location in your network is used to control fire-walling or rate-shaping actions at other locations.

The FreeBSD Foundation has funded the Centre for Advanced Internet Architectures at Swinburne University of Technology to undertake the DIFFUSED (DIFFUSE for freebsD) project, which aims to refine our publicly released DIFFUSE prototype and integrate all components of the architecture into FreeBSD.

The project is progressing well in the diffused_head project branch of the FreeBSD Subversion repository, and is due to be completed by the end of October 2011. Once the project is completed, the code will be merged from the project branch into the head branch. An MFC of the code to 8.x and 9.x should be possible after an appropriate amount of soak time has elapsed.

Ethernet Switch Framework

Code here. URL:

Contact: Aleksandr Rybalko <>

Many embedded devices have an Ethernet switch on board; such switches are even embedded on some multiport NICs. This embedded switch framework is designed to give users the ability to easily control basic features present in managed switches, such as VLANs, QoS, port mirroring, etc. Currently we are able to control only VLANs on:

  • Atheros AR8216/AR8316 (standalone and embedded in AR724X)
  • Broadcom BCM5325 switch family (also embedded in BCM5354 SoC)
  • Ralink RT3050F/RT3052F internal switch
  • Realtek RTL8309
  • IP175X
  • IP178X

Open tasks:

  1. Fix AR8216/AR8316 driver
  2. Fix BCM5325 driver, not all ports pass data
  3. Add tick handler for RTL8309 to automatically unisolate ports
  4. Unify MIB statistic counters access
  5. Add mii read/write bus methods
  6. Implement pseudo interfaces for switch PHYs


The new CARP


Contact: Gleb Smirnoff <>

I am now working on significant rewrite of CARP in FreeBSD.

The reason for this work is that the CARP protocol actually does not bring a new interface, but is a property of interface address. Rewriting it in this way helps to remove several hacks from incoming packet processing, simplifies some code, makes CARP addresses more sane from the viewpoint of routing daemons such as quagga/zebra and closes many CARP-related PRs in GNATS. It also brings support for a single redundant address on the subnet, the thing that is called "carpdev feature" in OpenBSD, long awaited in FreeBSD.

For this moment I have a patch against head/ that compiles and works in my test environment that I am going to deploy soon on some of servers under my control.

The patch has been reviewed by Bjoern Zeeb (bz@).

Open tasks:

  1. More testing requested!
  2. Implement arpbalance and ipbalance features. This requires a next step of rewriting, probably borrowing some ideas from OpenBSD.
  3. Update documentation.

VM layer for allocations larger than a page

Contact: Alan Cox <>
Contact: Davide Italiano <>

The aim of this project is to create a new layer that sits between UMA and the virtual memory system managing chunks of kernel virtual memory on the order of 2 to 4 MB in size. At the end of the work, UMA page_alloc() would no longer call directly into the VM system. It would instead call into this new layer. Thus, uma_large_malloc() and uma_large_free() would no longer be immediately allocating and deallocating kernel virtual memory. This results in a gain in terms of performances (there is a relatively high cost in the approach adopted until now), and also in terms of reduction of fragmentation (the VM system uses a first-fit policy of allocation so there is room for improvements).


Doc sprint on IRC, September 5, 2011

Results and Notes written down during the sprint URL:

Contact: Benedict Reuschling <>
Contact: Dru Lavigne <>

On September 5, we held another documentation sprint on IRC channel #bsddocs to discuss various issues that are important for the whole FreeBSD documentation community. We talked about the status of the planned documentation repository conversion to SVN and the status of the XML docbook conversion. At that point in time, we did not have any documentation regarding the new bsdinstaller in the upcoming release, which would have been very bad for users that were trying to install the release. Luckily, a small team formed quickly to start working on a new bsdinstall chapter from scratch using a separate Google code repository that gjb@ had set up.

Some of the topics we discussed were moved forward and their status was revisited at EuroBSDcon's devsummit documentation session. Before the end of the conference, we had a new bsdinstall chapter committed into the official documentation tree, thanks to the efforts put into the new chapter by Gavin Atkinson, Warren Block, and Glen Barber. Garrett Cooper provided valuable instructions on the various installation methods that are possible with the new bsdinstaller. Thanks to all who helped make this a reality.

It is nice to see that the things we talked about at the documentation sprint developed further, which is why we are trying to do these sprints in regular intervals.

Open tasks:

  1. Plan the next documentation sprint
  2. Continue working on the issues that are still open like the conversion of the repository to SVN

The FreeBSD German Documentation Project Status Report

Website of the FreeBSD German Documentation Project. URL:

Contact: Johann Kois <>
Contact: Benedict Reuschling <>

We managed to update the German version of the documentation just in time to get it included in the upcoming 9.0-RELEASE. The website translations were also kept in sync with the ones on

We tried to re-activate committers who did not contribute for some time but most of them are currently unable to free up enough time. We hope to gain fresh contributor blood as we are getting occasional reports about bugs and grammar in the German translation.

Open tasks:

  1. Submit grammar, spelling or other errors you find in the German documents and the website
  2. Translate more articles and other open handbook sections (especially the new chapter about the new FreeBSD installer).

The FreeBSD Greek Documentation Project

The FreeBSD Greek Documentation Project URL:
The FreeBSD Greek Handbook URL:

Contact: Manolis Kiagias <>
Contact: Giorgos Keramidas <>

After a few rather quiet months, the FreeBSD Greek Documentation Project is back on track, translating and improving the Handbook, FAQ and FreeBSD articles. The new bsdinstall chapter has been translated and is now present in the Handbook. Our experimental Handbook builds are also available at the project's hub. Three new status pages have been added:

For more information, please visit Patches, fixes and contributions are always welcome.

Open tasks:

  1. Translate the remaining chapters of the Handbook to Greek.
  2. Complete the translation of the FreeBSD FAQ.
  3. Keep the currently translated docs in sync with the English versions.

The FreeBSD Japanese Documentation Project

Japanese FreeBSD Web Pages URL:
The FreeBSD Japanese Documentation Project Web Page URL:

Contact: Hiroki Sato <>
Contact: Ryusuke Suzuki <>

The www/ja and doc/ja_JP.eucJP/books/handbook subtrees have constantly been updated since the last report.

www/ja: During this period, many areas of outdated content in the www/ja subtree were updated to the latest versions of the English counterparts. The Japanese version of the 8.2R release announcement was added and the upcoming 9.0R announcement will be translated in a timely manner.

Handbook: The Japanese "kernelconfig" section finally caught up with the original English version. The next targets are "cutting-edge" and the new installer section.

Open tasks:

  1. Further translation work for outdated documents in both doc/ja_JP.eucJP and www/ja.


FreeBSD/arm on Marvell Armada XP

Contact: Grzegorz Bernacki <>
Contact: Rafal Jaworowski <>

Marvell Armada XP is a complete system-on-chip solution based on the Sheeva embedded CPUs. These devices integrate up to four ARMv6/v7 compliant Sheeva CPU cores with shared L2 cache.

This work is extending FreeBSD/arm infrastructure towards support for recent ARM architecture variations along with a basic set of device drivers for integrated peripherals.

The following code has been implemented since the last status report:

  • PCI-Express support
  • SMP support
    • Created framework for ARM platform dependent code.
    • Initialization and starting of Application Processor.
    • Implementation of sending/handling IPI

Next steps:

  • Finalize SMP support (TLB/cache operation broadcast, etc.)
  • L2 cache support
  • SATA driver

FreeBSD/powerpc on AppliedMicro APM86290

Contact: Grzegorz Bernacki <>
Contact: Rafal Jaworowski <>

The APM86290 system-on-chip device is a member of AppliedMicro's PACKETpro family of embedded processors.

The chip includes two Power Architecture PPC465 processor cores, which are compliant with the Book-E specification of the architecture, and a number of integrated peripherals.

This work is extending current Book-E support in FreeBSD towards PPC4xx processor variants along with device drivers for integrated peripherials.

The following drivers have been created since the last report:

  • Interrupt controller
  • EHCI USB driver attachment
  • Queue Manager/Traffic Manager support
  • Initial support of Ethernet controller
  • GPIO, I2C

Next steps:

  • Finalize Ethernet controller driver
  • L2 cache support


FreeBSD Haskell Ports

Contact: Gabor Janos PaLI <>
Contact: Ashish SHUKLA <>

We updated existing ports to their latest versions and hunted down a bug in the 9-CURRENT rtld which was causing GHC to crash intermittently. We also started work on Haskell Platform 2011.3.0.0 (development version) in a separate git branch in our development repository.

Open tasks:

  1. Test GHC to work with clang/LLVM.
  2. Add an option to the GHC port to be able to build it with already installed GHC instead of requiring a separate GHC boostrap tarball.
  3. Update Haskell Platform (along with GHC) to 2011.4.0.0 as soon as it gets out.
  4. Add more ports to the Ports collection.


KDE/FreeBSD home page URL:
area51 URL:

Contact: KDE FreeBSD <>

The KDE/FreeBSD team has continued to improve the experience of KDE software and Qt under FreeBSD. The latest round of improvements include:

  • Splitting some of the KDE modules into smaller ports
  • Reduced startup time by ~15 seconds
  • Allowed auto-login out-of-the-box
  • Kopete supports GoogleTalk
  • Kalzium installs with its molecular editor
  • Zeitgeist support added
  • Porting Calligra to FreeBSD (work-in-progress)

The team has also made many releases and upstreamed many fixes and patches. The latest round of releases include:

  • Qt: 4.7.4
  • PyQt: 4.8.5 (SIP: 4.12.4)
  • KDE SC: 4.7.2
  • Amarok: 2.4.3
  • KDevelop: 4.2.3 (KDevPlatform: 1.2.3)

The team is always looking for more testers and porters so please contact us at and visit our home page at

Open tasks:

  1. Testing KDE PIM 4.7.2
  2. Testing phonon-gstreamer and phonon-vlc as the phonon-xine backend was deprecated (and will remain in ports)

OpenAFS port

OpenAFS home page URL:
FreeBSD Wiki on AFS URL:

Contact: Benjamin Kaduk <>
Contact: Derrick Brashear <>

AFS is a distributed network filesystem that originated from the Andrew Project at Carnegie-Mellon University. OpenAFS 1.6.0 has been released, and is available in the FreeBSD Ports Collection; it is usable under light load, but heavy usage reveals some issues that remain unresolved. The OpenAFS kernel module is now built using the infrastructure on the git master branch; unfortunately this change required a minor change in the OS-independent Makefiles and could not be merged in time for 1.6.0. Some attention has been given to memory leaks, but only one small leak has been patched so far.

There are several known outstanding issues that are being worked on, but detailed bug reports are welcome at

Open tasks:

  1. Update VFS locking to allow the use of disk-based client caches as well as memory-based caches.
  2. Track down races and deadlocks that may appear under load.
  3. Eliminate a moderate memory leak from the kernel module.
  4. PAG (Process Authentication Group) support is not functional.



Contact: Doug Barton <>

Portmaster offers several new features since the last quarterly update; some bug fixes for the package installation code, and various internal optimizations. The most exciting new feature is probably the ability to specify the -r option more than once for the same portmaster run. This greatly increases efficiency when several "branch" and/or "trunk" ports need updates at the same time, especially for package-building systems.

Open tasks:

  1. Splitting out the fetch code is still "on the list" of work to be done, but it was sidetracked by other priorities in the past months. I hope to complete it in the quarter to come.
  2. Another new feature in the works is support for a list of files for portmaster to preserve and restore during upgrades of a port.



Home page of bsd_day(2011) URL:

Contact: Martin Matuska <>
Contact: Gabor Pali <>

The purpose of this one-day event was to gather Central European developers of today's open-source BSD systems to popularize their work and their organizations, and to meet each other in the real life. We wanted to motivate potential future developers and users, especially undergraduate university students, to work with BSD systems.

This year's BSD-Day was held in Bratislava, Slovakia at the Slovak University of Technology, Faculty of Electrical Engineering and Information Technology on November 5, 2011.

EuroBSDcon 2011

EuroBSDcon 2011 web site URL:

Contact: EuroBSDcon Organizers <>
Contact: Gabor Pali <>

The 10th anniversary European BSD Conference was organized in Maarssen, The Netherlands with more than 250 registered visitors. There were many interesting tutorials, including introductions to DTrace and working with Netgraph. It featured 26 high-quality talks and 2 keynote speakers on various topics related to FreeBSD, OpenBSD, NetBSD, or even MINIX: OpenBSD PF, NetBSD NPF, IPv6 support in FreeBSD, virtualization in the BSD domain, recent developments in OpenSSH, exploration of the recent FreeNAS, system management with ZFS, practical capabilities for UNIX known as Capsicum.

It also had a dedicated track for the attendees of the FreeBSD developer summit, where one could learn more about what is happening currently in the Project. We had presentations on the new package management solution, Google Summer of Code 2011, a stacked cryptographic file system, conversion of documents of different formats, and status reports on the sparc64 port and the NAND flash support.

FreeBSD Developer Summit, Maarssen

Home page of the summit URL:

Contact: Gabor Pali <>

We had 60 FreeBSD developers and invited guests attending the FreeBSD Developer Summit organized as part of EuroBSDcon 2011 in Maarssen, The Netherlands. This year EuroBSDcon organizers offered us their generous support in handling the details, like registrations, renting the venue, and providing food for keeping attendees happy.

The Maarssen developer summit spanned over 3 days. It is generally a workshop-style event that has now adopted the layout of the developer summit organized successfully in Canada earlier in May. On the first day, there were working groups on various topics, e.g. Capsicum, toolchain issues, ports, and documentation. On the second day, there were various plenary discussions, like how FreeBSD relates to virtualization or how vendors relate to FreeBSD. Finally, on the third day, there were many interesting work-in-progress reports given in a dedicated developer summit track at the main conference.

Photos and slides for the most of the talks are available on the home page of the summit.

Google Summer of Code

Multibyte Encoding Support in Nvi

FreeBSD Wiki URL:
Github page URL:

Contact: Zhihao Yuan <>

nvi-iconv keeps the behaviors and the license of nvi-1.79 in the base system and adopts the multibyte encoding support from nvi-1.8x.


  • Known memory leaks, bugs are fixed. make buildworld clear, under WARNS=1 (the old one was WARNS=0).
  • UTF-16 is supported with less hacks.
  • The 'windowname' option now restores the xterm title through xprop.
  • The file encoding detection modified from file(1) is finished and considered stable. The detection is always on as nvi-iconv never changes the actual encoding, and the detection falls back to locale.
  • Pavel Timofeev provided a full Russian translation of the catalog. Thanks to him.
  • Now nvi-iconv is able to be compiled with widechar only and without iconv (inspired by a user on In that case, it only supports your locale.

Open tasks:

  1. The wide character support in nvi's message (feedback over the last line) system.
  2. Collect more testing results and get code review.

News Home | Status Home