FreeBSD Status Report April - June, 2011

Daniel Gerzo danger at freebsd.org
Wed Sep 14 14:39:26 UTC 2011


FreeBSD Quarterly Status Report - April-June, 2011

Introduction

   This report covers FreeBSD-related projects between April and June
   2011. It is the second of the four reports planned for 2011. Since this
   quarter, the work is being focused on the next major version of
   FreeBSD, 9.0, which is to be released in September.

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

   Please note that the deadline for submissions covering the period
   between July and September 2011 is October 15th, 2011.
     __________________________________________________________________

Projects

     * Clang replacing GCC in the base system
     * Fix clang warnings
     * libarchive, bsdtar, bsdcpio
     * ZFS pool version 28

FreeBSD Team Reports

     * ArabBSD
     * The FreeBSD Foundation

Network Infrastructure

     * DIstributed Firewall and Flow-shaper Using Statistical Evidence
       (DIFFUSE)
     * FreeBSD IPv6-only Support
     * IPv6 RA Handling Improvements
     * netmap
     * New ipfw features
     * TCP User Timeout Option (UTO)

Kernel

     * Intel GPU Driver
     * OpenAFS port
     * Overhaul of the mii(4)-subsystem
     * Status Report for NFS

Documentation

     * FreeBSD June 6th, 2011 Doc Sprint
     * The FreeBSD Dutch Documentation Project
     * The FreeBSD Japanese Documentation Project

Architectures

     * FreeBSD on the Sony Playstation 3
     * FreeBSD/arm on Marvell Armada XP
     * FreeBSD/powerpc on AppliedMicro APM86290
     * FreeBSD/powerpc64 on IBM pSeries machines
     * FreeBSD/sparc64

Ports

     * Chromium
     * FreeBSD Haskell Ports
     * KDE-FreeBSD
     * libvirt networking port
     * Portbuilder
     * Ports Collection

Miscellaneous

     * bsd_day(2011)

Google Summer of Code

     * Capsicum adaptation and core libraries
     * Disk device error counters
     * Google Summer of Code
     * nvi-iconv
     * Replacing the Regular Expression Code
     __________________________________________________________________

ArabBSD

   URL: https://sites.google.com/site/arabbsd/

   Contact: Mohammed Farrag <mfarrag at FreeBSD.org>

   FreeBSD Awareness, Handbook Translation and FreeBSD Kernel Development
   Summer Course.

Open tasks:

    1. FreeBSD Kernel Development Summer Course.
     __________________________________________________________________

bsd_day(2011)

   URL: http://bsdday.eu/2011

   Contact: Martin Matuska <mm at FreeBSD.org>
   Contact: Gábor Páli <pgj at FreeBSD.org>

   The purpose of this one-day event is 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
   would also like to motivate potential future developers and users,
   especially undergraduate university students to work with BSD systems.

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

   Everybody is welcome!

Open tasks:

    1. Apply. We are looking for you!
     __________________________________________________________________

Capsicum adaptation and core libraries

   URL: http://www.cl.cam.ac.uk/research/security/capsicum
   URL: http://wiki.FreeBSD.org/SOC2011IlyaBakulin

   Contact: Ilya Bakulin <kibab at FreeBSD.org>

   Some applications from the base system received sandboxing support,
   current task is to adapt lightweight resolver daemon for using it in
   sandboxes -- this fixes problems with applications that need to convert
   IP addresses into domain names while in sandbox.

Open tasks:

    1. Add sandboxing to even more applications in the base system.
    2. Help Jonathan Anderson and Robert Watson to merge FreeBSD-Capsicum
       into FreeBSD-HEAD.
     __________________________________________________________________

Chromium

   URL: http://www.chromium.org/Home
   URL: http://trillian.chruetertee.org/chromium

   Contact: Chromium on FreeBSD Team <chromium at FreeBSD.org>

   During the last quarter we have been keeping the Chromium browser up to
   date, with new major releases being imported into the Ports Collection
   the same day as the upstream release. As time passes by, more patches
   are incorporated or otherwise became obsolete by virtue of upstream
   code cleanups. Version 13 is already available from the Chruëtertee
   repository, with 70 patches less than version 12.
     __________________________________________________________________

Clang replacing GCC in the base system

   URL: http://wiki.FreeBSD.org/BuildingFreeBSDWithClang
   URL: http://wiki.FreeBSD.org/PortsAndClang

   Contact: Dimitry Andric <dim at FreeBSD.org>
   Contact: Roman Divacky <rdivacky at FreeBSD.org>
   Contact: Brooks Davis <brooks at FreeBSD.org>
   Contact: Pawel Worach <pawel.worach at gmail.com>

   We imported newer snapshot of clang/llvm. This features quite a lot of
   goodies. Most notably there's a new register allocator that brings much
   better runtime performance. If you did a performance evaluation of
   clang/llvm in the past now it's the time to rerun it with the new
   register allocator!

   There was some progress on Mips and PowerPC in addition to the usual
   influx of improvements on ARM, i386 and amd64. We've managed to get
   clang compiled arm kernel booting. ARM world is blocked by FreeBSD
   using old ARM ABI.

   We got a buildbot that periodically builds clang/llvm on FreeBSD and
   FreeBSD (amd64 and i386) using clang/llvm, including booting the
   resulting image.

   We ran a few ports exp runs and got many ports bugs fixed so right now
   we're able to build more than 15000 ports with clang. We expect this
   number to grow rapidly as the problems are mostly trivial.

Open tasks:

    1. Fix your ports.
    2. Performance evaluate the new clang/llvm.
    3. Fix clang warnings in src.
    4. Implement proper support for cross compiling.
     __________________________________________________________________

Disk device error counters

   URL: http://wiki.FreeBSD.org/Disk%20device%20error%20counters

   Contact: Oleksandr Dudinskyi <dudinskyj at gmail.com>

   Currently, I work on schedule, I printed the information of disk error
   in utility iostat option -E. While only displays five types of errors.
   Further analysis will give me the opportunity to identify other types
   of disk errors.

Open tasks:

    1. Search other type of error and the place of their registration.
    2. Maybe find a better place registration of errors than xpt_done().
     __________________________________________________________________

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

   URL: http://caia.swin.edu.au/urp/diffuse/
   URL: http://caia.swin.edu.au/urp/diffuse/downloads.html

   Contact: Sebastian Zander <szander at swin.edu.au>
   Contact: Grenville Armitage <garmitage at swin.edu.au>

   DIFFUSE is a system enabling 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 DIFFUSE prototype is a set of patches for FreeBSD-CURRENT that can
   be downloaded from the project's web site. The web site also contains a
   more comprehensive introduction, as well as links to related work and
   documentation.

   In July 2011, we released DIFFUSE v0.4. This release contains a number
   of bug fixes and new features. Most notably we improved the
   functionality of the tools used for training classification models, and
   performing offline analysis.

   DIFFUSE v0.4 is the last release, as the DIFFUSE project has concluded.
   However, we may release bug fixes in the future if necessary.
     __________________________________________________________________

Fix clang warnings

   Contact: Ben Laurie <benl at FreeBSD.org>

   In order to assist with the process of moving away from gcc, while I
   learn the ropes of being a contributor, I am systematically fixing
   clang warnings, so we can turn on -Werror again.

   Down from > 42,000 warnings at the end of May to < 9,000 warnings now.

Open tasks:

    1. Always happy if someone else finds and fixes a warning!
     __________________________________________________________________

FreeBSD Haskell Ports

   URL: http://wiki.FreeBSD.org/Haskell
   URL: https://github.com/freebsd-haskell/freebsd-haskell/
   URL: http://haskell.org/mailman/listinfo/freebsd-haskell/

   Contact: Gábor János PÁLI <pgj at FreeBSD.org>
   Contact: Ashish SHUKLA <ashish at FreeBSD.org>
   Contact: Giuseppe Pilichi <jacula at FreeBSD.org>

   We are proud to announce that the FreeBSD Haskell Team has committed
   Haskell Platform 2011.2.0.1 to the FreeBSD Ports Collection, as well as
   updated existing ports to their latest stable versions. Apart from the
   ports officially available there, many ports (Snap web framework,
   Leksah, and their dependencies) are still waiting to be added. Any
   users who like to get early access to them, please refer to the
   instructions at our development repository.

Open tasks:

    1. Update Haskell Platform (along with GHC) to 2011.4.0.0 as soon as
       it gets out.
    2. Add more ports to the Ports Collection.
    3. Create a port for Happstack.
    4. Create a port for gitit.
     __________________________________________________________________

FreeBSD IPv6-only Support

   URL:
   http://www.FreeBSDFoundation.org/project%20announcements.shtml#Bjoern
   URL:
   http://www.ixsystems.com/ix/media/freebsd-foundation-and-ixsystems-anno
   unce-ipv6-only-testing-versions-of-freebsd-and-pc-bsd
   URL: http://www.FreeBSD.org/ipv6/ipv6only.html
   URL: http://www.pcbsd.org/IPv6

   Contact: Bjoern A. Zeeb <bz at FreeBSD.org>

   As a follow-up work to the no-IP kernel, a FreeBSD IPv6-only prototype
   kernel was build beginning of 2010. This work was now carried on and
   merged to mainstream FreeBSD and will be part of the upcoming
   9.0-RELEASE allowing for custom no-IPv4 kernels to be built. In
   addition IPv6 installation and configuration support for FreeBSD and
   PC-BSD were improved.

   An IPv6-only kernel and continued efforts to build world without IPv4,
   like FreeBSD had supported compiling out IPv6 for a long time, will
   allow easier IPv6 validation work to happen. This will not only help
   FreeBSD or FreeBSD-derived commercial product builders but we are also
   hoping to motivate other Open Source projects to test their software
   for IPv6-readiness on FreeBSD or PC-BSD.

   We have provided and will continue to provide IPv6-only snapshots for
   FreeBSD. In IPv6-only PC-BSD snapshots have been released to provide a
   great Open Source desktop environment to test GUI applications for
   IPv6-readiness as well.

   I would like to thank the FreeBSD Foundation and iXsystems for their
   support of the project, as well as George Neville-Neil for providing
   review and Kris Moore for helping on the PC-BSD integration and
   building and providing the PC-BSD snapshots.
     __________________________________________________________________

FreeBSD June 6th, 2011 Doc Sprint

   URL: http://wiki.FreeBSD.org/DocSprints
   URL: http://people.FreeBSD.org/~bcr/doc/sprints/20110606-final.html
   URL: http://people.FreeBSD.org/~linimon/annotated_prs.docsprint.html
   URL: http://openhelpconference.com/

   Contact: Benedict Reuschling <bcr at FreeBSD.org>
   Contact: Dru Lavigne <dru at FreeBSD.org>

   On June 6, the FreeBSD documentation project held a doc sprint where a
   number of documentation issues were discussed. The sprint took place
   primarily in IRC channel #bsddocs on EFNet. Notes were taken in an
   Etherpad document where all participants could concurrently edit them
   in an easy to use interface. Parallel to the discussion, a number of
   doc problem reports have been closed. There are still some doc PRs that
   have been identified that could also be closed, because their original
   issue was already committed but the PR is still open. This needs to be
   investigated on a case by case basis.

   Dru Lavigne brought in her experiences from the Open Help conference
   that she was attending during the sprint. It would be good to have some
   FreeBSD documentation people at a future Open Help conference to
   exchange ideas with other open source documentation projects and how
   they go about doing their work.

   The primary discussion focused on the issues that have been talked
   about at the documentation working group at BSDCan's DevSummit in May.
   Subjects like converting the documentation repository from CVS to SVN,
   the move from DocBook SGML to XML-based documentation as well as other
   formats like RST (re-restructured text), and publication efforts of the
   handbook in electronic and dead-tree form were thoroughly debated.

   Overall participation was good, but we would like to have more
   documentation folks to participate in future sprints. The next sprint
   is planned before EuroBSDCon 2011 and will be announced in time so that
   interested people can set aside some time for it. We also plan to
   include different time zones so that we can have more input from
   various areas. We hope to establish these kind of sprints on a regular
   basis to deal with documentation issues that affect the whole
   community.

   Thanks to everyone who participated and helped bring some of the issues
   we talked about forward.

Open tasks:

    1. Schedule the next documentation sprint before the next EuroBSDCon
       and include different timezones.
    2. Work on the todo items identified during the sprint.
    3. Resolve open documentation problem reports identified to be fixed,
       but still open for some reason.
     __________________________________________________________________

FreeBSD on the Sony Playstation 3

   URL: http://people.freebsd.org/~nwhitehorn/ps3/

   Contact: Nathan Whitehorn <nwhitehorn at freebsd.org>

   The FreeBSD Playstation 3 port is now fairly mature and will be
   included in the 9.0 release, starting with BETA2. Most internal
   devices, including the USB ports, bluetooth, ethernet, and SATA devices
   are now supported, and the operating system can be installed to and
   boot from the internal hard disk.

   There are several remaining pieces to the port (Wireless, Sound, X11,
   and the SPUs), which may be interesting projects for those interested
   in non-PC architectures.

Open tasks:

    1. Built-in wireless. The 802.11 wireless interface on the Playstation
       3 is multiplexed through the wired ethernet MAC and is currently
       unsupported.
    2. The sound hardware is not currently supported.
    3. The framebuffer driver does not currently support X11. This would
       involve writing a simple X11 framebuffer driver to connect to
       syscons.
    4. The synergistic processing units (SPUs) on the Cell processor are
       not supported yet. They present an interesting model of
       heterogeneous computing, more suited for full treatment by a
       UNIX-type kernel than GPGPU computing: each SPU has a concept of
       user and supervisor mode, as well as interrupts, and can share MMU
       context with the main CPU cores. As such, they in principle can
       support a full UNIX process model.
     __________________________________________________________________

FreeBSD/arm on Marvell Armada XP

   Contact: Grzegorz Bernacki <gjb at semihalf.com>
   Contact: Rafal Jaworowski <raj at semihalf.com>

   Marvell Armada XP is a complete system-on-chip solution based on Sheeva
   embedded CPU. 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
   peripherials. Current FreeBSD suppport for Armada XP includes:
     * Booting via U-Boot bootloader
     * ARMv6/v7 support
     *
          + Reworked CPU indentification scheme
          + New cache identification scheme
          + Support for PIPT caches
          + Reworked PMAP for ARMv6/v7 features
     * Serial console support (UART)
     * Interrupt controller
     * Integrated timers
     * USB driver attachment
     * Ethernet controller driver

   Next steps:
     * L2 cache support
     * SMP support
     * PCI-Express and SATA drivers
     __________________________________________________________________

FreeBSD/powerpc on AppliedMicro APM86290

   Contact: Grzegorz Bernacki <gjb at semihalf.com>
   Contact: Rafal Jaworowski <raj at semihalf.com>

   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 Book-E
   specification of the architecture, and a number of integrated
   peripherals. This work is extending current Book-E support in FreeBSD
   towards PPC4xx processors variation along with device drivers for
   integrated peripherials. Current FreeBSD APM86290 support includes:
     * Booting via U-Boot bootloader
     * Support for PPC465 core
     * L1 cache
     * Serial console (UART)

   Next steps:
     * Interrupt controller
     * EHCI USB driver attachment
     * Ethernet controller
     * Queue Manager/Traffic Manager
     * L2 cache support
     __________________________________________________________________

FreeBSD/powerpc64 on IBM pSeries machines

   URL: svn://svn.FreeBSD.org/base/projects/pseries/

   Contact: Nathan Whitehorn <nwhitehorn at FreeBSD.org>
   Contact: Andreas Tobler <andreast at FreeBSD.org>

   The goal of this project is to make FreeBSD running on PAPR compliant
   machines like the IBM pSeries family.

   Currently we can boot a POWER7 emulation under a recent qemu snapshot.

   The boot process stops when trying to find a PIC.

   The same applies for an IntelliStation-285. (POWER5+).

Open tasks:

    1. Implement interrupt controller.
    2. PCI bus scanning.
    3. Drivers, drivers, drivers.
    4. Improve memory management.
     __________________________________________________________________

FreeBSD/sparc64

   Contact: Marius Strobl <marius at FreeBSD.org>
     * The iommu(4) driver has been changed to take advantage of the
       streaming buffers of the host-PCI and host-SBus bridges if present,
       which in at least some configurations results in a modest
       performance improvement due to the caching of DMA transactions. As
       a prerequisite, the bus_dma(9) usage of all drivers compiled as
       part of the sparc64 GENERIC kernel has been reviewed and fixed and
       in case of sound(4) and sym(4) at least worked around as necessary
       in order to be able to use the streaming buffers.
       Support for this will be merged back to 8-STABLE prior to
       8.3-RELEASE.
     * Following the update of the in-tree binutils to 2.17.50, which now
       for the first time include support for GNUTLS on sparc64 in the
       base, support for TLS relocations on sparc64 was added to rtld(1)
       and enabled in the base GCC and malloc(3).
     * Support and a workaround necessary for Sun Fire V890 equipped with
       UltraSPARC-IV was added.
       Support for these will be merged back to 8-STABLE prior to
       8.3-RELEASE.
     * The schizo(4) driver has been updated to also support the XMITS
       Fireplane/Safari to PCI-X bridges and a workaround for
       Casinni/Skyhawk combinations has been added. Chances are that the
       latter solves the crashes seen when using the the on-board Casinni
       NICs of Sun Fire V480 equipped with centerplanes other than
       501-6780 or 501-6790.
       These changes have been merged back to 8-STABLE and will be part of
       8.3-RELEASE.
     * As part of the largeSMP project which had the goal of supporting
       more than 32 CPU cores in FreeBSD several parts of the sparc64
       specific code had to be adapted mainly in the assembler bits but as
       a result now also supports more than 32 CPU cores.
     * On machines where we do not need to lock the kernel TSB into the
       dTLB and thus may basically use the entire 64-bit kernel address
       space, i.e. on machines equipped with UltraSPARC-III+ and greater
       CPUs, the kernel virtual memory was increased to not be limited by
       VM_KMEM_SIZE_MAX and VM_KMEM_SIZE_SCALE decreased to 1 allowing
       kernel to use more memory as for example useful for ZFS.
       These changes will be merged back to 8-STABLE prior to 8.3-RELEASE.
     * The shortcut taken in the code responsible for flushing user
       mappings from the TLBs of UltraSPARC-III and greater CPUs turned
       out to not scale well on MP-systems with more than 8 CPU cores and
       thus was re-written. As a result it now scales up to at least
       16-way machines.
       These changes will be merged back to 8-STABLE prior to 8.3-RELEASE.
     __________________________________________________________________

Google Summer of Code

   URL: http://wiki.FreeBSD.org/SummerOfCode2011

   Contact: Brooks Davis <brooks at FreeBSD.org>
   Contact: Robert Watson <rwatson at FreeBSD.org>

   We are happy to be participating in our 7th Google Summer of Code.
   After the mid-term evaluation we have 15 projects working towards the
   final evaluation. You can see the latest status on student's individual
   wiki pages or by subscribing to the soc-status mailing list.
     __________________________________________________________________

Intel GPU Driver

   URL: http://wiki.FreeBSD.org/Intel_GPU

   Contact: Konstantin Belousov <kib at FreeBSD.org>

   The FreeBSD Foundation sponsored project to port the Linux kernel-mode
   driver for Intel GPU progressed to the point where some machines can
   use Xorg with ddx driver from the git head and latest Mesa. On my test
   machine I was able to run uhexen2 and ioquake3.

   Nonetheless, the driver is still in the early stages of debugging. Read
   the wiki page for more details, guidelines on installation and initial
   bug analysis.

   Main efforts right now are directed on getting the required VM changes
   into the base system, ideally before 9.0 is released.
     __________________________________________________________________

IPv6 RA Handling Improvements

   Contact: Hiroki Sato <hrs at FreeBSD.org>

   ICMPv6 Router Advertisement (RA) message is a part of IPv6 Neighbor
   Discovery Protocol in RFC 4861 and takes an important role in IPv6
   basic functionality. FreeBSD supports it in the kernel, and the
   rtadvd(8) and rtsold(8) programs derived from KAME project handle it in
   userland.

   This small project aims to improve the current RA handling by removing
   limitations and adding new functionality found in the latest RFCs.
   Changes committed are as follows:
     * FreeBSD now supports RA receiving even if
       net.inet6.ip6.forwarding=1 and enabling/disabling the receiving in
       a per-interface basis. The traditional "host" and "router" node
       model in IPv6 RFCs is translated into a concept of "RA-receiving
       interfaces" and "RA-sending interfaces" in FreeBSD 9.0 or later,
       not depending only on system-wide IP forwarding capability. This is
       useful for a system with multiple IPv6-capable interfaces (such as
       a customer-edge router) which require SLAAC (Stateless Address
       Autoconfiguration) feature described in RFC 4862.
     * The rtadvd(8) and rtsold(8) programs now support IPv6 Router
       Advertisement Options for DNS Configuration in RFC 6106. This
       enables updating /etc/resolv.conf by using RAs.
     * The rtadvd(8) daemon now supports dynamically-added/removed
       interfaces. Although it was needed that all of RA-sending
       interfaces exist before the daemon was invoked, the new version no
       longer requires it. When a new interface arrived, it will be
       configured on the fly.
     * The rtadvctl(8) utility has been added. This displays RA-sending
       status on each interface and provides a way to control the daemon.
       This utility makes system administration much easier.

   All of the changes described above have already been committed to
   9-CURRENT and a part of them will be merged to 8-STABLE.
     __________________________________________________________________

KDE-FreeBSD

   URL: FreeBSD.kde.org
   URL:
   http://dot.kde.org/2011/06/29/platform-frameworks-kde-hackers-meet-swit
   zerland
   URL:
   http://blogs.FreeBSDish.org/avilla/2011/06/14/call-for-tests-kde-pim-4-
   6-0
   URL: http://FreeBSD.kde.org/area51.php

   Contact: KDE FreeBSD <kde-freebsd at kde.org>

   Alberto Villa and Raphael Kubo da Costa went to Randa, Switzerland, to
   attend, respectively, the KDE Multimedia/Kdenlive sprint and the
   Platform 11 sprint. The sprints afforded them the opportunity to form
   closer bonds with the upstream KDE community, to learn about the future
   of Qt and KDE and make sure FreeBSD's needs are taken into account. For
   more information see the article "From Platform to Frameworks -- KDE
   hackers meet in Switzerland" at dot.kde.org.

   The KDE on FreeBSD team have continued to improve the experience of KDE
   and Qt under FreeBSD. The latest round of improvements include:
     * Qt supports Clang as a compiler

   The team has also made many releases and upstreamed many fixes and
   patches. The latest round of releases include:
     * Qt: 4.7.3
     * KDE: 4.6.3; 4.6.4; 4.6.5
     * Amarok: 2.4.1
     * Digikam (and KIPI-plugins): 1.9.0

   Further testing is requested for KDE PIM 4.6.0 and Calligra 2.3.72
   before the ports are committed. To test the ports please visit Alberto
   Villa's call for test and area51.

   The team is always looking for more testers and porters so please visit
   us at kde-freebsd at kde.org and our homepage.

Open tasks:

    1. Testing KDE PIM 4.6.0.
     __________________________________________________________________

libarchive, bsdtar, bsdcpio

   URL: http://code.google.com/p/libarchive

   Contact: Tim Kientzle <tim at FreeBSD.org>
   Contact: Michihiro Nakajima <ggcueroad at gmail.com>

   Libarchive, bsdtar and bsdcpio in 9-CURRENT have been updated to
   version 2.8.4 (thanks to mm at FreeBSD.org) and bsdtar now supports
   extracting XAR and RPM archive formats.

   There is ongoing development in trunk with many improvements including
   support for new formats both on the read (e.g. cab, lha, rar) and write
   parts (e.g. iso9660, xar).
     __________________________________________________________________

libvirt networking port

   URL: http://www.libvirt.org/

   Contact: Jason Helfman <jhelfman at experts-exchange.com>
   Contact: Daniel P. Berrange <berrange at redhat.com>

   Libvirt, a Toolkit to interact with virtualization capabilities, has
   been ported to FreeBSD, however the networking capabilities have been
   disabled as they are incompatible with FreeBSD. Libvirt currently
   supports connecting to many types of hypervisors, however it can be a
   far more useful tool if the networking capabilities were ported to
   FreeBSD.

   In contacting Daniel P. Berrange, he was kind enough to advise on what
   is required to port networking of libvirt to FreeBSD. His response is
   paraphrased below:

   There are two aspects to networking in libvirt:
     * The virtual network driver (in src/network/bridge_driver.c) uses
       the Linux kernel's native 'bridge' functionality to provide an
       isolated, or routed, or NATed network connection to guests. There
       is a bridge device on the host created, and guest TAP devices are
       added to it. There is no physical ethernet device added to the
       bridge, and iptables is used to control whether the host OS routes
       traffic to/from the bridge & physical LAN.
       Porting bridge and bridge control functionality to FreeBSD would
       need to be done, and how to nat/routed/isolated guest configs and
       write a compatible version of bridge_driver.c for FreeBSD.
     * The host interface driver (in src/inteface/netcf_driver.c) uses the
       netcf library to manage configuration of host network interfaces to
       do things like bonding, vlans, bridging and controlling the
       interfaces availability. The core job is to port netcf to work with
       FreeBSD. A netcf backend that understands FreeBSD's networking
       configuration files and calls appropriate tools to bring interfaces
       online/offline would need to be created.

   Both these jobs are pretty much independent, so can easily be done in
   parallel.

Open tasks:

    1. Port bridge network driver for libvirt.
    2. Port netcf driver for libvirt.
     __________________________________________________________________

netmap

   URL: http://info.iet.unipi.it/~luigi/netmap/

   Contact: Luigi Rizzo <rizzo at iet.unipi.it>

   netmap is a novel framework to achieve wire-speed packet processing in
   FreeBSD, while retaining the safety and richness of features provided
   by the user space environment, and using only standard system calls.
   With netmap, it takes as little as 70 clock cycles to move one packet
   between the user program and the wire. As an example, a single core
   running at 900MHz can generate the 14.8Mpps that saturate a 10GigE
   interface. This is a 5-10x improvement over the use of a standard
   device driver. netmap is implemented with a relatively small kernel
   device driver (less than 2000 lines of code), plus individual network
   card patches (300-500 lines each; currently supported are Intel 1 and
   10 Gbit cards, and RealTek 1 Gbit cards). No special user libraries are
   needed, although we have a small libpcap-over-netmap which enables the
   use of existing applications on top of the new API with no source or
   binary modifications. The netmap home page contains a more detailed
   description of the project, source code, papers and slides.
     __________________________________________________________________

New ipfw features

   URL: http://svnweb.FreeBSD.org/base?view=revision&revision=223666

   Contact: Vadim Goncharov <vadim_nuclight at mail.ru>

   The ipfw(4) packet filter now supports call and return rule actions.
   When a packet matches a rule with the call action, the rule number is
   saved in the internal stack and rules processing continues from the
   first rule with specified number (similar to skipto action, but
   backward jumps are allowed). If later a rule with return action is
   encountered, the processing returns to the first rule with number
   greater than the number saved in the internal stack. This makes it
   possible to organize "subroutines" with rules, e.g. to call one
   subroutine several times from different places in the ruleset. For more
   details, see ipfw(8).
     __________________________________________________________________

nvi-iconv

   URL:
   http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1
   URL: https://github.com/lichray/nvi2

   Contact: Zhihao Yuan <lichray at gmail.com>

   This project creates a multibyte aware nvi fork. While most of the
   userland tools in the FreeBSD base system support multibyte encodings,
   there is no pure-licensed nvi fork comes with sufficient multibyte
   encoding (both Unicode and non-Unicode) support prior to this.

   Currently, functionally, the new nvi is ready for testing. The
   description is at https://github.com/lichray/nvi2/wiki (the patch is
   deprecated). I will commit a new one latter.

   The features dropped from nvi-1.79 are:
     * Perl and Tcl interpreter supports;
     * The whole Perl/Tcl/Tk scripting framework;
     * A third-party gtags support.

   and the features adopted from nvi-1.81.6 includes:
     * Multibyte encoding supports (wchar_t + libiconv + libncursesw);
     * fileencoding and inputencoding options;
     * Undocumented :vsplit command, which vertically splits the screen.

   Many known bugs, incomplete code from nvi-devel are fixed. However, I
   find a serious memory leaking (via valgrind) in the nvi-devel iconv
   framework. This requires a careful review.

Open tasks:

    1. Reviews the iconv part and fixes the memory leak.
    2. Ex scripts for testing. But it seems that I have no experience on
       that...
    3. File encoding detection. My plan it to detect UTF-16 BOM first,
       then UTF-8. If all fails, uses locale. UTF-8 BOM is not supported
       by iconv, and we need to discuss whether we should support it in
       the editor.
     __________________________________________________________________

OpenAFS port

   URL: http://openafs.org
   URL: http://wiki.FreeBSD.org/afs

   Contact: Benjamin Kaduk <kaduk at mit.edu>
   Contact: Derrick Brashear <shadow at gmail.com>

   AFS is a distributed network filesystem that originated from the Andrew
   Project at Carnegie-Mellon University. Since our last report, upstream
   OpenAFS has updated to a 1.6.0pre6 release candidate, which is
   available in the FreeBSD Ports Collection. We still expect the upcoming
   1.6.0 release to be usable for regular client workloads (though not
   heavy load). We have also made progress on integration with the
   bsd.kmod.mk kernel-module-building infrastructure, with a working
   prototype implementation. Further cleanup and testing is needed before
   it is ready to be committed.

   There are several known outstanding issues that are being worked on,
   but detailed bug reports are welcome at port-freebsd at openafs.org.

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. Integrate with the bsd.kmod.mk kernel-module build infrastructure.
    4. Eliminate a moderate memory leak from the kernel module.
    5. PAG (Process Authentication Group) support is not functional.
     __________________________________________________________________

Overhaul of the mii(4)-subsystem

   Contact: Marius Strobl <marius at FreeBSD.org>

   The mii(4)-subsystem has been overhauled and fixes and enhancements
   from NetBSD/OpenBSD since mii(4) originally has been ported over have
   been merged. As a result a lot of code duplication and hacks have been
   removed from the PHY drivers and we are now able again to share the
   miidevs file with NetBSD. Due to KPI breakages the majority of this
   work will not be merged back into 8-STABLE and earlier.

   Additionally shorthand aliases for common media+option combinations as
   announced by mii(4) have been added to the ifmedia code so that now one
   can actually supply the media strings found in the dmesg output to
   ifconfig(8). Support for this will be merged back to 8-STABLE prior to
   8.3-RELEASE.
     __________________________________________________________________

Portbuilder

   URL: https://github.com/DragonSA/portbuilder
   URL: https://github.com/DragonSA/portbuilder/blob/0.1.3/README
   URL: https://github.com/DragonSA/portbuilder/blob/0.1.3/TODO

   Contact: David Naylor <naylor.b.david at gmail.com>

   I would like to introduce a project that has been in the works for the
   last 3 years. From the projects README:

   A concurrent ports building tool. Although FreeBSD ports supports
   building a single port using multiple jobs (via MAKE_JOBS), it cannot
   build multiple ports concurrently. This tool accomplishes just that.

   Some of its key features:
     * Concurrent port building
     * Load control
     * Top like UI
     * Persistent builds (by default)

   Portbuilder originally used threads to control each port at each stage
   of the build however the required locks resulting in deadlocks, and
   some ports would not build correctly. To resolve those issues a rewrite
   was done to use only a single thread, making all locking code
   redundant. Thanks to the use of kqueue(2) the overhead of managing
   concurrent port builds is minimal. Further work to reduce that overhead
   is underway.

   Portbuilder is installable from ports under ports-mgmt/portbuilder, see
   the README for usage details. Please note that this is considered BETA
   quality, that the feature set and API are expected to change, and that
   portbuilder may crash or fail to behave properly.

Open tasks:

    1. Wiki page.
    2. Testing.
    3. See TODO.
     __________________________________________________________________

Ports Collection

   URL: http://www.FreeBSD.org/ports/
   URL:
   http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing-ports/
   URL: http://portsmon.FreeBSD.org/index.html
   URL: http://www.FreeBSD.org/portmgr/index.html
   URL: http://blogs.FreeBSDish.org/portmgr/
   URL: http://www.twitter.com/freebsd_portmgr/
   URL: http://www.facebook.com/group.php?gid=135441496471197
   URL:
   http://FreeBSDFoundation.blogspot.com/2011/06/bsdcan-trip-report-baptis
   te-daroussin.html
   URL:
   http://FreeBSDFoundation.blogspot.com/2011/06/bsdcan-trip-report-julien
   -laffaye.html
   URL:
   http://FreeBSDFoundation.blogspot.com/2011/06/bsdcan-trip-report-thomas
   -abthorpe.html
   URL: http://blogs.FreeBSDish.org/portmgr/2011/05/26/thankyoufoundation/

   Contact: Thomas Abthorpe <portmgr-secretary at FreeBSD.org>
   Contact: Port Management Team <portmgr at FreeBSD.org>

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

   In Q2 we added 3 new committers, took in 2 commit bits for safe
   keeping, and added a new member to portmgr.

   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:
     * ports/154044, -exp run to update x11-toolkits/open-motif
     * ports/155269, -exp run to fix problem with base/ports ncurses
     * ports/155215, -exp run to update gmake, completed by linimon
     * ports/156575, -exp run to generate a subset of ports in INDEX
     * ports/155983, -exp run to reroot md5 in /sbin
     * ports/139116, -exp run to call target "install-rc-script" before
       "post-install"
     * ports/155510, -exp run to remove support for pre 7.X
     * ports/156533, -exp run to patch bsd.apache.mk
     * ports/152498, -exp run to improve USERS/GROUPS handling
     * flz has been performing clang -exp runs
     * erwin performed -exp run for perl 5.12.4 update
     * pav performed multiple -exp runs for gtk3

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.
     __________________________________________________________________

Replacing the Regular Expression Code

   URL: http://wiki.FreeBSD.org/G%C3%A1borSoC2011

   Contact: Gábor Kövesdán <gabor at FreeBSD.org>

   The current regular expression code in libc is quite outdated and does
   not support wide characters. There are various open source regular
   expression libraries but replacing the code is not a simple task
   because there are quite many considerations and requirements. The best
   candidate is TRE, which is a BSD-licensed, supports wide and multibyte
   characters, conforms to POSIX and it performs well compared to another
   available alternatives, so the work has been started with TRE. Apart
   from the replacement, the plan is to implement heuristical matching,
   which will speed up the pattern matching significantly. Besides, grep
   and diff in the base system have been using the GNU regex code, which
   has a more permissive syntax. It is desired to have a single regex
   engine in the base system, so the GNU syntax has to be implemented (as
   an optional feature), as well.

   So far, a fast string matching algorithm has been added, which is a
   variant of the Turbo Boyer-Moore algorithm. It has been slightly tuned
   to support not only literal patterns but patterns containing $^.
   symbols. This algorithm is used automatically when the pattern makes it
   possible.

   Besides, heuristic matching has also been implemented. If the fast
   matcher cannot be applied directly, it parses the pattern and separates
   the fixed-length prefix and suffix of the pattern. Then it can be used
   to locate the possibly matching regions of the text, using a more
   efficient algorithm than the full regex NFA and the latter only has to
   be applied to the narrow context that has been located.

Open tasks:

    1. Implement GNU regex syntax.
    2. Add test suite GNU-specific behavior and also add some tests for
       locale-specific behavior.
    3. Test and review the code. Contact the author and check if these
       improvements can be added to the upstream code so that more people
       can benefit from this.
     __________________________________________________________________

Status Report for NFS

   Contact: Rick Macklem <rmacklem at FreeBSD.org>

   The new NFS client and server are no longer considered experimental and
   will most likely be the default for FreeBSD 9.0. Included is support
   for NFSv4.0 as well as NFSv3 and NFSv2. The NFSv4.0 support was tested
   at a recent NFSv4 Interoperability Bakeathon held at CITI of the
   University of Michigan. Also tested at the Bakeathon was a basic client
   implementation of NFSv4.1 which will soon be available as a test patch
   against the FreeBSD 9.0 kernel sources. If you are interested in
   testing NFSv4.1, stay tuned to the freebsd-fs at FreeBSD.org mailing list.
   zkirsch at FreeBSD.org and friends will be taking on a majority of the
   NFSv4 server work while I concentrate on the client, with hopes that
   the NFSv4.1 support will mature over the next year or so.

   I will also be making a patch for an experimental aggressive client
   side on-disk caching mechanism for NFSv4 I call Packrats available. An
   announcement about this will be made on freebsd-fs at FreeBSD.org as well.
     __________________________________________________________________

TCP User Timeout Option (UTO)

   URL: http://wiki.FreeBSD.org/CatalinNicutar/TCPUTO
   URL:
   http://p4web.FreeBSD.org/@md=d&cd=//depot/projects/soc2011/&dw=u&c=kml@
   //depot/projects/soc2011/cnicutar_tcputo_8/?ac=83

   Contact: Catalin Nicutar <cnicutar at FreeBSD.org>
   Contact: Bjoern Zeeb <bz at FreeBSD.org>

   The goal of the User Timeout option is to allow an application to tweak
   the time TCP waits for acknowledgements. Using UTO, an application can
   choose the exact time it is willing to wait for data to be
   acknowledged. Also, an application can suggest to its peer the time it
   should wait before dropping the connection (the peer may or may not
   allow this).

   As an example, a SSH client can request a large timeout (4 hours) for a
   connection. After some time the client is disconnected, reconnecting 2
   hours later (with the same IP). Due to UTO, the connection should still
   be alive and any lost data should be retransmitted.

   Current testing is done on TCP over IPv4. Timeouts can be limited by
   global sysctls and an application can choose how to send or accept
   timeout values via socket options. In addition to regression tests,
   support has been added to telnet, ssh and netcat.

Open tasks:

    1. Regression tests for TCP over IPv6.
    2. Add support to more userland applications.
    3. Implement strategies and regression tests to handle and simulate
       DoS scenarios.
     __________________________________________________________________

The FreeBSD Dutch Documentation Project

   URL: http://wiki.FreeBSD.org/DutchDocumentationProject
   URL:
   http://p4db.FreeBSD.org/depotTreeBrowser.cgi?FSPC=//depot/projects/docp
   roj_nl

   Contact: Remko Lodder <remko at FreeBSD.org>
   Contact: René Ladan <rene at FreeBSD.org>

   During the last period most work went into keeping the Handbook up to
   date; it is currently up-to-date except for a section on network
   servers. Other areas being worked on are the FAQ and the web site. The
   latter two are still a work-in-progress.

Open tasks:

    1. Volunteers! The best part is that you do not need to be an expert
       on FreeBSD nor the Dutch language to join, just some enthusiasm and
       spare time.
     __________________________________________________________________

The FreeBSD Foundation

   URL: www.FreeBSDFoundation.org

   Contact: Deb Goodkin <deb at FreeBSDFoundation.org>

   We were a proud sponsor of BSDCan. We also sponsored 6 developers to
   attend the conference. And, we brought in over $1,000 in donations! The
   Foundation was also represented at FlourishConf in Chicago, IL and
   SouthEast LinuxFest in Spartanburg, SC.

   We acquired a non-exclusive copyright license to the libcxxrt C++
   runtime software from PathScale.

   Sponsored a project to create an IPv6-only version of FreeBSD and
   PC-BSD.

   We're pleased announce the addition of Ed Maste to our Board of
   Directors. Ed has been involved with FreeBSD since 2003. And, has been
   a committer since 2005. Ed leads the OS team at Sandvine and is
   responsible for a number of developers who bring enhancements from
   FreeBSD into Sandvine's OS and contribute their own changes back to
   FreeBSD.

   We continued our work on infrastructure projects to beef up hardware
   for package-building, network-testing, etc. This includes purchasing
   equipment as well as managing equipment donations. In fact we just
   placed an order for a 80-core server for SMP performance work.

   Stop by and visit with us at Ohio LinuxFest, Columbus, OH, on September
   10.

   The work above, as well as many other tasks we do for the project,
   couldn't 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 http://www.FreeBSDFoundation.org/donate/.

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

The FreeBSD Japanese Documentation Project

   URL: http://www.FreeBSD.org/ja/
   URL: http://www.jp.FreeBSD.org/doc-jp/

   Contact: Hiroki Sato <hrs at FreeBSD.org>
   Contact: Ryusuke Suzuki <ryusuke at FreeBSD.org>

   The www/ja and doc/ja_JP.eucJP/books/handbook subtrees have constantly
   been updated. During this period, many part of out-dated contents in
   the www/ja subtree were updated to the latest versions in the English
   counterpart. Thus most of the files in the subtree are already
   synchronized with www/en at this moment, and this updating work will be
   finished within this year.

   For FreeBSD Handbook, translation work for the kernelconfig section was
   just started. In addition, we are planning to translate the upcoming
   release announcement because it is also important for Japanese people.

Open tasks:

    1. Further translation work for outdated and/or non-translated
       documents in both doc/ja_JP.eucJP and www/ja.
     __________________________________________________________________

ZFS pool version 28

   Contact: Pawel Jakub Dawidek <pjd at FreeBSD.org>
   Contact: Martin Matuska <mm at FreeBSD.org>

   ZFS pool version 28 has been merged into 8-STABLE as of June 6, 2011.
   In addition, several bugfixes and improvements from the Illumos project
   have been imported.

Open tasks:

    1. Investigation of ZFS problem reports.
     __________________________________________________________________

The FreeBSD Project. All rights reserved.


More information about the freebsd-current mailing list