diff --git a/en/donations/wantlist.sgml b/en/donations/wantlist.sgml index dea1234572..f57194e7f2 100644 --- a/en/donations/wantlist.sgml +++ b/en/donations/wantlist.sgml @@ -1,558 +1,558 @@ - + ]> &header;

This page lists various developer hardware needs. If you are interested in supporting the FreeBSD Project, you might consider donating some piece of hardware on this list to the Project.

We provide the FreeBSD username of the developer who needs a resource, the country they are in (for shipping purposes), the equipment they desire, and the use to which that equipment will be put.

For information on tax deductions and process, please see the information on the main FreeBSD Donation Liaison office page.

If you would like to donate something on this list, please contact donations@FreeBSD.org.

On a general note, we need a variety of Sparc64 machines for testing and improving our Sparc port. Even small, old (or new!) Sparc64 machines are perfectly usable. No matter which country you're in, we almost certainly have someone local who could use it. We could specifically use 1U rack-mounted Sparcs (such as E220R, E420R, Fire V100, Fire V120, or Netra T1 AC200) for our development and package-building clusters in the USA.

Developer ID Developer Country Equipment Desired Equipment Use
ade Oregon, USA dual Opteron or EM64T capable Xeon, 2 or 4GB, working gigE, 4*73GB (preferably SCSI but SATA is ok) fast box to run some heavy-duty ports infrastructure grunt work on i386 and amd64 including, but not limited to, an SQL-backended replacement for the current package building system testmachines. I'm willing to offer up a couple of mini-ITX systems (one Athlon-XP 2700+, 1G, 160GB SATA, gigE, the other an Athlon64-2800+, 1G, 160GB SATA, gigE, in return).
arved Austria hard drive mounting kit for Soekris net4801 Improve my Firewall
arved Austria small VLAN-capable switch, e.g. Cisco 2940-8TT Reduce wiring in my flat. More Switchports for more testmachines.
ceri UK A small, quiet machine (perhaps a laptop), preferably of the i386, amd64 or powerpc variety, with wireless capability. Work on sysinstall.
ceri UK One Soekris net4521-30 board with case (part no. 10452131) Reduce spinning parts in the study, which has to double as a nursery pretty soon.
ceri UK 19"+ Flatscreen monitor with DVI and VGA inputs (eg a Dell E207WFP) My current CRT monitor will be eleven years old on Christmas Day, 2007.
cognet France A Zaurus, with hard disk preferably. FreeBSD/arm development.
davidxu China A machine with at least 4 or more physical CPUs. Preferably Intel Conroe. Scheduler development and optimized SMP performance. A system with at least 4 physical CPUs is needed in order to develop and maintain a true SMP friendly scheduler.
des Norway Mac Mini with 1 GB RAM, no peripherals Tinderbox.
des Norway Opteron CPU Populate a CPU-less motherboard.
des Norway Any USB device based on the Cypress CY7C637xx / CY7C640/1xx USB to RS232 bridge chip. Improve the ucycom driver.
des Norway Any kind of authentication hardware (USB tokens, smart card readers, smart cards, fingerprint scanners, etc.) + documentation Develop and maintain support for hardware authentication.
dfr UK Firewire bus analyzer, 1394b is preferable but 1394a is acceptable. Debug and improve the performance of firewire, especially IP over firewire.
grehan California, USA Apple G4 XServe Rackmount PowerPC machine for developer cluster.
hmp United Kingdom Wireless Router (802.11b/g), and ideally two Wireless USB adapters. Experiment with wireless technology and to help my recent move to a new house.
hmp United Kingdom Books: Extreme Programming Explained (2nd Edition) and Planning Extreme Programming. Expand knowledge of extreme programming.
imp USA EISA-based pccard hardware Make EISA pccard driver work.
imp USA 3Com Xjack wireless card Make driver work.
jake Canada 2 450MHz UltraSPARC II CPUs Faster sparc64 test machine.
jake Canada Sun server or workstation with UltraSPARCIII CPUs, Blade 1000, Blade 2000, V280R, V480 or V880, preferably with 2 CPUs Sparc64 UltraSPARCIII support.
jesper United Kingdom Well supported Gigabit Ethernet cards, preferably with 1000baseSX interface, but 1000baseT works too Network stack performance measurements / tuning.
jcamou AZ, USA. Gigabit switch Development/build cluster. Any kind of switch could work.
jkoshy Bangalore, India An IA64/PowerPC machine Port hwpmc(4) & maintain applications on these architectures.
jkoshy Bangalore, India An Intel Pentium-MMX / Pentium Pro or P-II or P-III / Core Duo based PC. Port/maintain hwpmc(4) for these CPUs.
jkoshy Bangalore, India The Unicode Standard (v5.0). Reference documentation for working on FreeBSD's unicode support.
jmg California, USA Fast multiprocessor AMD64 capable machine (dual core CPU ok). General build box to support FreeBSD work including ARM and multi-arch testing of patches.
joel Sweden Pentium 4 or Celeron CPU (Socket 478, Prescott/Northwood) + CPU Cooler. I've nearly completed building a new test/build machine, only the CPU and CPU cooler are missing.
johan Sweden 17++ inch TFT monitor with both D-Sub and DVI-D connections. My current monitor is starting to give up.
jwd USA, North Carolina Cyclades TS800/1000 (or equivalent) Serial consoles for all hardware in the rtp.FreeBSD.org cluster.
lioux Brazil Network switch 10/100 Mbits. Network card Intel EtherExpress PCI 10/100 Mbits Get a K6 based machine back online and add it as an extra terminal to FreeBSD home LAN.
lioux Brazil Books on any of the following subjects: network protocol scheduling (bandwidth/transmission efficiency), process scheduling, scheduling theory in general, digesting (checksums, particularly fine grained checksumming for detection partial file corruption; e.g., tiger trees, sha1 trees), corruption detection and recovery (files, network protocol, etc), distributed processing (localization transparency, migration, redundancy, repartition, scheduling, message passing, shared memory, etc), peer to peer technology, device driver writing and operational system theory Improve my knowledge regarding operational systems and modern computer science challenges/technologies. For example, I want to write an improved downloading mechanism for FreeBSD distribution (ports and base) that supports graceful corruption detection/recovery, FTP/HTTP/other/it's own protocol, multi-part download, multi-server support, load distribution. Not all at once but in the long term. Most of this knowledge will be reverted to FreeBSD if I can.
lioux Brazil BrookTree chipset TV Capture Card: either BT848 or BT878 (preferred) that already works with FreeBSD. Adding BrookTree support to graphics/ffmpeg and several other video processing programs.
marcel CA, USA Supermicro SuperServer 6113M-i. The machine is a 2-way Itanium 2 (Madison) machine in a 1U rackmount casing. Replacement machine for the BigSur I have now. The machine is based on the Intel E8870 chipset, which is very common but which we don't have among the active developers.
marcel CA, USA IBM xSeries 450. The machine is a 4-way Itanium 2 (Madison) based on the IBM XA-64 chipset. Package build machine in the FreeBSD cluster (aka bento). This machine in particular because of the unique chipset and the fact that it has 4 processors. This makes it an ideal machine for parallel package builds during normal operation and a validation box for release engineering.
marcus RTP, North Carolina, USA On behalf of the FreeBSD GNOME Project, I would like 1 or 2 amd64 machines and 1 UltraSparc II machine. All three machines should work under FreeBSD -CURRENT. Better GNOME support under FreeBSD on these architectures.
markm Cambridge, UK Flexelint v8. (www.gimpel.com) (Semi-)automated code cleaning and cross-platform compiler needs cleaning.
marks The Netherlands ACPI laptops (also for lend) (1) ACPI laptops that work, to test new code on.
(2) ACPI laptops that don't work, (to try) to fix.
markus Germany IBM ThinkPad Dock II (1) Enhance the acpi_ibm(4) driver.
(2) Enhance docking support.
matusita Japan 2-3 build machines:Pentium4 2GHz+,20GB+ ATA66+ HDD,256MB+RAM, 100base-TX NIC,serial, etc. Rebuild dying snapshots.jp.FreeBSD.org.
matusita Japan FTP server:Pentium3/Celeron 1GHz+,10GB+ ATA66+ HDD,100GB+ storage (RAID0+1 desirable),256MB+RAM, 100base-TX NIC,serial, etc. Rebuild dying snapshots.jp.FreeBSD.org.
mbr Switzerland Network cards for RealTek 8129/8139 and clones, DEC/Intel 21143 and workalikes, SiS 900/7016 and clones, NatSemi DP83815/DP83820 and workalikes. I can give feedback if I still need the card. Fixed cards will go to the busdma project. Add support for unsupported and broken drivers.
mikeh VA, USA Cordless PS/2 keyboards/mice (especially Gyration and Microsoft wireless desktop products), or any other PS/2 keyboard mice, and KVM products that are not supported by FreeBSD. Improve PS/2 mouse/keyboard support in FreeBSD.
mux France Network cards listed on busdma project page. Busdma conversion of network cards.
mux France Relatively recent laptop with serial port Live kernel debugging.
obrien Silicon Valley, USA AlphaServer DS15. continued FreeBSD/alpha development and testing.
obrien Silicon Valley, USA 1U or 2U rack-mount cases, with power supplies. Build into AMD64 reference machines for the FreeBSD.org cluster.
peter California, USA Rack mount AMD64 Opteron system. To make available on the developer cluster.
phantom Germany/Ukraine Reasonably fast SMP machine Improve scalability of JDK.
phk Denmark IEEE-488 controller cards different than PCIIA, preferably PCI bus. I have started on rudimentary IEEE-488/GP-IB/HP-IB support but I only have access to an ISAN PCIIA controller.
ru Russia One of the following AMD SMP motherboards (in order of preference): Tyan Thunder K8W (S2885), Tyan Thunder K8SD Pro (S2882-D), Tyan Thunder K8SR (S2881), or Tyan Thunder K8S Pro (S2882). Faster development/test build machine.
sam USA crypto devices (pci, pcmcia, cardbus cards, CPUs with builtin crypto support) For improving hardware crypto support.
shaun United Kingdom UltraSPARC/PPC based laptop(s) (not too antiquated), complete or partial amd64 (or ia64?) system (something reasonably beefy), a Soekris 1401 or 1461 crypto accelerator, Cisco WIC-1ADSL card. Replace various dying or old bits of hardware; make my time a little more productive; expand development work on non-i386 architectures.
simon Denmark Dual Opteron server motherboard which supports Opteron 875 CPU's, 2GB ECC RAM, 2xSATA disks (RAID1) Replacement hardware for trillian.nitro.dk / tb3.droso.net (it is currently running on my workstation) which is a system I host where all FreeBSD committers can get an account. It is mainly used by ports developers for testing, but is also used by multiple SoC + href="http://wiki.freebsd.org/SummerOfCode2006">SoC 2006 students.
sos Denmark Serial ATA hardware: disks, controllers (including docs), cables, Serial ATA-ATA converters. Keep ATA support up to date.
tanimura Japan Any Japanese laptop (Preferably IBM Thinkpad A30 or A31). Replace a recently stolen IBM.
thierry France, but to be sent to Colombia A 128 MB RAM Module (Kingston KSY-F250/128 or equiv.), a replacement IDE HDD (4GB or more) for a laptop and a working battery (or 2) for a SONY VAIO PCG-F250 would be really nice. Pedro F. Giffuni's main dev. machine has been stolen; this hardware would permit to refurbish his laptop and let him maintain and develop ports (mainly cad / math / science).
thomas France UDMA controller, ATAPI floppy drive, ATAPI tape drive Ensure these ATAPI devices work with ATAPI/CAM with the same level of functionality currently available with the afd/ast drivers.
&footer; diff --git a/en/internal/developer.sgml b/en/internal/developer.sgml index 9a8274ec22..bf140c0c9a 100644 --- a/en/internal/developer.sgml +++ b/en/internal/developer.sgml @@ -1,75 +1,75 @@ - + ]> &header;

Committers Guide

This document is an overall guide for all new committers, including both technical details and policy details. For the former, see the chapters on CVS Operations, the GNATS bug tracking system, and the SSH Quick-Start Guide.

It contains almost everything a new committer to the FreeBSD Project needs to know. See the Documentation Project Primer and the Ports Guide, below, for more info.

FreeBSD Documentation Project Primer for New Contributors

This primer covers everything you will need to know in order to start contributing to the FreeBSD Documentation Project, from the tools and software you will be using (both mandatory and recommended) to the philosophy behind the Documentation Project.

FreeBSD Porter's Handbook

A guide for FreeBSD ports committers. This includes the canonical Table of __FreeBSD_version Values.

How to build the FreeBSD Web Pages.

&webbuild;

FreeBSD Projects

Other Resources

FreeBSD Internal Home

&footer; diff --git a/en/news/status/report-2004-07-2004-12.xml b/en/news/status/report-2004-07-2004-12.xml index 4e362229aa..95ecc402f0 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 + 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 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-03-2005-06.xml b/en/news/status/report-2005-03-2005-06.xml index 2b066ab98a..23b8f9d715 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://wikitest.freebsd.org/moin.cgi/SummerOfCode2005 + + 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 + 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 + href="http://wiki.freebsd.org/moin.cgi/CleanupOfNetworkIterfaceApis" />

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

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 + 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 + 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 + href="http://wiki.freebsd.org/moin.cgi/SummerOfCode2005" />

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 + 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 + href="http://wiki.freebsd.org/moin.cgi/NsswitchAndCachingTechnicalDetails" /> - +

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 + 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 + 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-07-2005-10.xml b/en/news/status/report-2005-07-2005-10.xml index 0dc29841d0..010c6ac6e2 100644 --- a/en/news/status/report-2005-07-2005-10.xml +++ b/en/news/status/report-2005-07-2005-10.xml @@ -1,2037 +1,2037 @@ July-October 2005
Introduction

After a long, exhausting, yet very productive third quarter of 2005 FreeBSD 6.0 has been released. Many activities were put into the background in order to make this release the success it has become.

Nontheless, we received a tremendous amount of reports covering various projects that either found their way into FreeBSD 6.0 already or have started to develop in, what is now known as 7-CURRENT. The EuroBSDCon and the Developer Summit in Basel next week will be a good opportunity to help some of the ideas herein to take off.

Last round we had the pleasure to introduce our accepted Google Summer of Code projects. Now, that the summer is over, we are even more pleased to include reports about the outcome of these projects. Some already found their way into the tree or the general public otherwise - most ocularly the new webdesign.

Unfortunately, this publication has been delayed for various reasons - the before mentioned release of 6.0 being one of them. Thus, some of the reports might no longer be as up to date as they were when we received them and we encourage you - even more this time - to also visit the weblinks to get more recent information.

Thanks again to everyone who submitted reports, and our sincere apologies for running late this time.

soc Google summer of code proj Projects doc Documentation kern Kernel net Network infrastructure arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous Cronyx/Asterisk Roman Kurakin rik@FreeBSD.org Cronyx WAN Adapters rik's Home Page

A new netgraph-to-zaptel module that allows to use E1(ISDN PRI) WAN adapters as an interface card for open source PBX - Asterisk. All you need is an adapter that able to work in raw phone mode (like Cronyx Tau-PCI/2E1), eq. without HDLC-like framing and that has support of Netgraph.

BSDCan Dan Langille dan@langille.org BSDCan

We are in the process of recruiting new members for the program committee. If you would like to volunteer before you are recruited, please contact me.

The dates for 2006 have been announced: May 12-13, 2006. The venue will be the same as previous events: University of Ottawa. The prices will not increase from 2005.

Please start thinking about your papers. The call for papers will go out soon.

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

A great deal of work has gone into the Ports Collection since the last report in April, much of it behind-the-scenes.

As this report was being written, the 6.0 release was ongoing. Due to the amount of time that it has taken to get 6.0 through the beta process and into RC, we have been in ports freeze or slush for more than two months. Unfortunately this has held back needed work on the ports infrastructure.

The last major update to bsd.port.mk, in early May, was coordinated by Kirill Ponomarew added a number of new features and closed 15 PRs. Another similar set of changes has been tested and is ready for commit after release.

portmgr welcomed two new members to its team: Erwin Lansing (who had previously served as secretary, a role in which he is continuing) and Clement Laforet. Clement is interested in speeding up the adoption of new changes into the infrastructure, an item I'm sure that that everyone can support. He promises to bring some fresh ideas to bear on this, including the revitalization of devel/portmk as a testing ground for new changes to bsd.port.mk in which the larger community can help test changes.

The unfetchable distfile survey, which had been non-functional for quite some time, was revitalized by Bill Fenner, with many new pages of analysis added to it. Work is still ongoing. As a result of this analysis, Bill and Mark Linimon eliminated nearly 100 lines of bogus or outdated sites from bsd.sites.mk alone. They are continuing to work through many other sites and ports as successive iterations of the survey reveal more dimensions to the problem. We still need more help from the larger community (see below).

Edwin Groothius has instituted a similar but slightly different survey. His program attempts to visit each listed mastersite for each distfile and determine whether or not a newer version might be available. The results are stored in a database. This is helping to automate a function that had been left up to individual maintainers to look through numerous websites to try to find these updates. The survey has been hugely (if not universally) popular. Already, dozens of port updates have been committed as a direct result of this service.

In addition, portsmon, which had been down due to a machine change, was moved to portsmon.FreeBSD.org and updated during this time. Many thanks to Erwin Lansing for providing the loan of this machine, and Will Andrews for having provided the loan of the previous incarnation.

Both of the above surveys are now generating periodic email to ports maintainers advising them of problems. This is in addition to recurring email from portsmon. The surveys allow individual maintainers to ask to receive no further email. portsmon does not currently have this but it needs to be added. Although we have no doubt the mail can in some cases be annoying (especially given the fact that there will inevitably be some false positives), the fact is that these emails have had a direct impact on the quality on the ports. We ask for patience from the community while each of us continues to fine-tune the algorithms controlling what email is generated. (Because of the number of emails these systems generate, it is impossible to go over every one individually for a sanity check).

As a result of bounces from the above email, we have also been resetting maintainers who have become unreachable.

Pav Lucistnik has done a great deal of work on the Porter's Handbook, including some much needed reshuffling and cleanup. Expanded sections include Apache and PHP; Configure Scripts; Dealing With Shared Libraries; Dealing With User Configuration Files; Handling Empty Directories; Python; and Ruby. In addition, Edwin Groothius has contributed a section on OPTIONS, and numerous other sections have been improved by good suggestions from various other contributors.

A new article, "Maintaining and contributing to the FreeBSD Ports Collection", has been prepared by Sam Lawrance and has been reviewed and is ready for commit. This document attempts to codify the rights and responsibilities of ports maintainers, which until now had merely been "community lore" as discussed on various mailing lists.

We continue to add new committers regularly, 8 since the last report.

The ports collection now contains over 13,500 ports. This is an increase of over 750 since the last report in April.

portmgr would like to ask maintainers and committers alike to go through the status of their ports on the two distfile surveys, both the one that shows unfetchable current distfiles and the one that shows possibly updated distfiles. This is an effective way to quickly help improve our user's perception of the state of the ports. A great deal of 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 ). These ports are now a small minority thanks to the dedicated efforts of a large number of individuals. We still have a large number of PRs that have been assigned to committers for some time (in fact, they constitute the majority). portmgr members are now going through this list and asking each committer to either commit them or release them to the general pool so that someone else may work on them. In addition, the existing policies for inactive maintainers (two weeks for maintainer- timeout on PRs; three months for maintainer reset if no activity) are going to be much more actively pursued than in the past, where the policies were more honored in the breach than in the observance. The goal is to try to bring the Ports Collection as up-to-date as possible. (While there has been progress on many fronts, there are still areas where ports are suffering from bit-rot.)
Improve Libalias Paolo Pisati p.pisati@oltrelinux.com - + Wiki/Official project site - +

The project met all the scheduled goals, and following are the new features implemented in libalias:


Fell free to suggest other improvements.

Test and feedback are welcome
FreshPorts Dan Langille dan@langille.org FreshPorts

I'm in the process of adding personalized newsfeeds to the website. For each of your Watch Lists, you will also have a news feed just for that watch list. Any commit to any port in your watch list will turn up on your newsfeed. This fantastic new feature is available now for your RSS pleasure at the BETA site . I've also been doing some work in the area of supporting multiple platforms and architectures. This will allow FreshPorts to correctly report that a port is broken, for example, on i386, but not the other platforms. This feature will take note of BROKEN, FORBIDDEN, and IGNORE for the following architectures:

And the following OSVERSIONS (subject to upgrade as new releases come along): Upcoming changes, in addition to the above, include:
  1. NOT_FOR_ARCHS
  2. ONLY_FOR_ARCHS
  3. IS_INTERACTIVE
I've been getting useful help from those on IRC. Thanks.

Complete the above.
Fuse for FreeBSD Csaba Henk soc-chenk@freebsd.org New home page - + FreeBSD wiki page Download location

Fuse for FreeBSD is the outcome of my "ssh based networking filesystem for FreeBSD" SoC project.

The kernel interface for the comprehensive userspace filesystem API provided by the ( Fuse project ) has been implemented for FreeBSD (6.x and 7.x), under the BSD license. This has the benefit of opening up the possibility of porting the rich collection of Fuse based filesystems to FreeBSD.

Now it's ready for consumption by a broader audience. The sysutils/fusefs-kmod , sysutils/fusefs-libs , sysutils/fusefs-sshfs ports can be expected to be integrated into the FreeBSD ports tree in the next few days (the ports were created and are maintained by Anish Mistry, and Simon Barner's careful review also helps a lot).

Implement missing features like extended attributes and attribute/name caching (with timeout). Resolve problems with autotools and integrate userspace modifications into the Fuse codebase. Port Fuse based filesystems and language bindings to FreeBSD. Create sysfs (Fuse based filesystem interface to sysctl). Test, test, test among a broad variety of circumstances.
gvinum 'move', 'rename' support Chris Jones soc-cjones@freebsd.org - + gvinum 'move', 'rename' wiki

Support for moving and renaming objects in gvinum was completed at the end of August 2005. All gvinum objects (drives, subdisks, plexes, and volumes) can be renamed, and subdisks can be moved from drive to drive. Also, a man page for gvinum was created.

Update FreeBSD Handbook chapter on vinum to reflect gvinum. Slowly in progress, but hopefully done by the end of the year, workload permitting.
Integrated SNMP monitoring Philip Paeps philip@FreeBSD.org Shteryana Shopova soc-shteryana@FreeBSD.org + href="http://wiki.freebsd.org/moin.cgi/ShteryanaShopova" /> + href="http://wiki.freebsd.org/moin.cgi/SnmpMonitoringModulesStatus" />

This summer, we've had the pleasure of having two Google Summer of Code students hacking on our SNMP monitoring machinery. Victor worked on implementing the Host Resources, TCP and UDP MIBs in bsnmpd while Shteryana started on client-side SNMP tools.

With these modules and tools, a FreeBSD installation can be monitored without having to install any (heavy!) third-party tools.

While the modules and the tools currently in Perforce are generally functional, they still need some tidying up (style(9)) and testing before they can be committed to CVS.

At the time of this writing, the Hostres MIB is pretty much commit-ready in Perforce (//depot/user/philip/bsnmp/...), the other modules and tools live in //depot/projects/soc2005/bsnmp/... They'll be branched for tidying up and committing "Real Soon Now"[tm]

Testers are very welcome. :-) Please let us know about any bugs!
Interface Cleanup Anders Persson soc-anders@freebsd.org + href="http://wiki.freebsd.org/moin.cgi/CleanupOfNetworkInterfaceApisProposal"> SoC Proposal

The dependencies to kernel-only datastructures in netstat (ifnet, etc.) have been removed almost completely (AppleTalk and IPX still needs work). In order to remove the dependencies, the debugging features of netstat had to be removed. However, a project to create a generic, modular 'data structure' examination tool is ongoing, and the debugging features factor out of netstat have been migrated to this tool.

Refactoring of the netstat code, create a modular version in the spirit of ifconfig. Data structure examination tool needs to be completed, current state is more that of a prototype.
UFS Journaling Brian Wilson polytopes@gmail.com Scott Long scottl@FreeBSD.org

Scott has been working on inserting journalling hooks into the ufs and ffs filesystem code. Brian has been balancing school and redesigning various things that were deemed necessary to update during the end of the actual SoC project.

Finish the redesign of the internal block management code. Integration and test of the ffs/ufs hooks and the journaling code. Updating userland tools to be aware of and use the journal. Journal buffer management wiring to VM subsystem a la XFS.
pfSense Scott Ullrich sullrich@gmail.com

pfSense is a m0n0wall derived operating system platform with radically different goals such as using Packet Filter, FreeBSD 6, ALTQ for excellent packet queueing and finally an integrated package management system for extending the environment with new features.

Work continues to stabilize pfSense in preparation for the FreeBSD 6 release. Once FreeBSD 6 is released pfSense will enter the final beta and release candidate phases in preparation for the 1.0 release.

Stabilize installer (cannot load kernel errors after install) Finish outgoing load balancing monitoring Fix last minute bugs that turn up
launchd(8) for FreeBSD R. Tyler Ballance tyler@tamu.edu - Project + Project Wiki

In short, launchd can run perfectly fine on FreeBSD, and combined with launchctl, it can be used to manage daemons through the launchctl(1) interface. Jobs can be added and managed two ways as of yet from launchctl(1). Using zarzycki@'s experimental "submit" command within launchctl(1) or by using my lame/rudimentary/etc "launcher" format (launchd/launchers/*.launch) which uses property(3) to parse out three simple, and important details. The program label, path, and any program flags. Using the "load" command, one can load the data into launchctl(1) and then start the processes with the..."start" command. Jobs can be removed/stopped with the "remove" command. The "limit" command still throws launchctl(1) into an infinite loop, and yes, I plan on fixing this.

There are some things that need to be fixed, first off, some sort of boot time integration, whether as an init-replacement (i.e. PID 1, a la Mac OS X) or as the first thing started from init, that kicks all rcng things off. Along with, more importantly, a plist parser, so we can have full compatibility with Mac OS X's launchd via Core Foundation.

I'm also trying to get launchd(8) relicensed with the BSD license, as opposed to the APSL, anybody with tips, or methods for achieving this goal, contact me at tyler@tamu.edu

Writing a light-weight plist (non-XML) parser with lex and yacc.
Porting FreeBSD to the Xbox Rink Springer rink@rink.nu Ed Schouten ed@fxq.nl

As of 26th July 2005, it is possible to run FreeBSD on your Xbox with minor patching effort. The framebuffer has initial support; The USB ports, IDE- and audio controllers are fully supported; the only part severely lacking now is the lack of support for the NForce Ethernet controller.

Currently, efforts are focussing on eliminating the XBOX kernel option and make the port self-detecting; this means the x86 and xbox kernels will be identical. The goal is to provide native xbox support in 7-CURRENT.

Futhermore, a porting effort is planned from Linux' GPL-ed forcedeth.c; not only the Xbox port will benefit from this but also all NForce motherboard owners. The resulting driver could be kldload-ed to keep the kernel GPL-free.

The xbox framebuffer driver should be merged in the VESA framework, so it can use syscons(4). Assistance on this would be very welcome!
ggtrace Ivan Voras ivoras@yahoo.com

Ggtrace is "GEOM gate tracer", utility to track I/O requests on a storage device on FreeBSD. It uses the ggate facility of FreeBSD to attach to a file or device and produces a device that can be used for any I/O, including hosting filesystems.

I/O requests are presented in the form of a moving histogram that can be used to discern which parts of the storage device are used most often. One use of ggtrace is to analyze how filesystems arrange and access data on storage devices.

The project is working and usable only on the RELENG_6 branch.

gjournal Ivan Voras ivoras@yahoo.com - gjournal + gjournal wiki page

Gjournal provides GEOM-level journaling and COW capabilities to storage devices. Unfortunately, it cannot be used as a substitute for filesystem journaling (fsck is still needed when gjournal device is used to host filesystems). Development has slowed down, and the existing code needs much more testing. If there is continued interest in it, I'll probably split the functionalities into two projects, one handling COW and one handling the journaling, in order to make the code cleaner.

More testing is needed.
TCP & IP Routing Optimization Fundraise Andre Oppermann andre@freebsd.org

The fundraise 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.

Due to the extended (and unexpected long) code freeze for the release process of FreeBSD 6.0 (which is very high quality btw.) I've decided to push back on working full time until the freeze is lifted. So far I've done some work in the mbuf handling area and some other netinet cleanups in my local repository.

Once FreeBSD 6.0 is released I resume my work on this project and many changes and optimizations, as described in the first and second link, will go into into FreeBSD-current.

TODO list for volunteers Alexander Leidinger netchild@FreeBSD.org

The TODO list for volunteers (see the last report for more) is now under review by some doc@ people.

bridge.c retired Max Laier mlaier@freebsd.org Andrew Thompson thompsa@freebsd.org

As of September 27, the old bridge(4) implementation has been removed from HEAD and will not be part of FreeBSD 7 and later. FreeBSD 6 will serve as transition period. The full functional replacement if_bridge(4) is now available in FreeBSD 5 (not yet part of 5.4 however), FreeBSD 6 and -CURRENT. Any problems should be reported to Andrew Thompson, who is maintaining if_bridge in FreeBSD.

Document the change in the handbook and other reference material.
Problem Report Database Mark Linimon bugmeister_at_freebsd_dot_org GNATS

Due to some good recent commit and cleanup work by both Alexander Leidinger and Craig Rodrigues, the number of base-system PRs has stabilized somewhat. The number of incoming ports PRs continues to accelerate but except during freezes the ports committers have been battling to commit them as quickly as they come in. (The graphs very clearly show where the freezes are.) The net result is that we are holding our own but it takes a great deal of (mostly unheralded) effort to do so. Thanks are due to a large number of individuals who are doing this ongoing work.

There is ongoing work to ask committers who have had PRs assigned to them for a significant period of time, whether they are still interested in pursuing them or whether they should instead be reassigned to the pool. This is being done to try to get as many PRs 'unstuck' as possible to try to help improve our users' perceptions of the project.

As an experiment, Mark Linimon has been adding 'tags' to many of the kern and bin PRs, including such things as '[nfs]', '[if_em]', and so forth. The idea is to try allow searching and browsing based on these terms so that committers will find it easier to work with our current PR database. At the moment this is in the experimental stage, although it is possible for committers to work with them from the command line on systems with a database installed via query-pr(1).

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 continue to be fixed. jhb's locking work has identified and corrected many issues. rwatson has also committed cleanups to the multicast code which fixed some issues in this area.

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. A few bugs are being tracked, but most of them are edge cases.

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

EuroBSDCon 2005 - Basel Information info@eurobsdcon.org

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 FreeBSD developers will hold a DevSummit on Nov 24 and 25, so several developers will be at the conference.

The program is available for Saturday and Sunday providing very interesting FreeBSD talks and topics.

Today more than 160 people from 25 countries have registered for the conference.

FreeBSD GNOME Project Joe Marcus Clarke marcus@FreeBSD.org FreeBSD GNOME Team gnome@FreeBSD.org FreeBSD GNOME Project Homepage

Since our last status report, we have added a new member to the team: Jean-Yves Lefort (jylefort). We have even spiced up our contact page with pictures of ourselves and in some cases, a cute hippo. And our very own Adam Weinberger (adamw) has been made a GNOME Project committer heading up the Canadian English translation project.

We have finished the port GNOME 2.12 to FreeBSD. However, due to the ports slush in preparation for 6.0-RELEASE, the update has not been merged into the official ports tree. If people are eager to try out GNOME 2.12 while waiting for the ports tree to fully thaw, we have instructions on our website. GNOME 2.12 will be the first FreeBSD GNOME release not to include support for FreeBSD 4.X. While 4.X is still a very viable release for servers, it lacks many of the features needed for a Desktop Environment such as GNOME. We do plan to continue support of the GNOME development platform on 4.X, however. This includes Glib, GTK+, libgnome, etc. A new porting component will be introduced with GNOME 2.12 called, ``ltverhack''. This will help with future upgrades by keeping shared library versions from needlessly changing.

The FreeBSD GNOME Project is also committed to providing our users with a solid package experience. To that end, we have extended our Tinderbox to build amd64 packages for all supported versions of FreeBSD for both the production and development releases of the GNOME Desktop. The development packages are even built with debugging symbols to better help with reporting problems.

FreeBSD needs a HAL port. HAL will be vital for both GNOME and KDE in providing FreeBSD users with a smooth, elegant desktop experience. Once GNOME 2.12 has been merged into the ports tree, work will begin on making HAL on FreeBSD a reality. Contact gnome@FreeBSD.org if you are interested in helping. We need help with project documentation. In particular, we need help auditing the FAQ to make sure the content is still relevant, and we are not missing any key items. If you're interested, please contact gnome@FreeBSD.org .
PowerPC Port Peter Grehan grehan@freebsd.org FreeBSD/PPC Platform page.

The project has been following the 6.0 release schedule by producing BETA-* builds and is now up to the RC1 build.

Dario Freni successfully built a FreeSBIE/ppc iso for his Summer-of-code project.

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

This iSCSI kernel module and its companion control program, are still under development, but the main parts seem to be working. A second round of public tests has started.

login chap authentication digest network disconnect recovery
The Kernel Stress Test Suite Peter Holm pho@freebsd.org

The current version of the test suite took form in the beginning of the year after discussions with Jeff Roberson, during a long period of testing Jeff's VFS SMP work.

At that time, Daniel Seuffert donated a Thunder 7500 motherboard complete with CPUs, RAM and coolers. This allowed me to do some serious SMP testing.

Mid July Murray Stokely suggested adding a link from the 6.0 todo web page to the Stress Test Status Page. At that time there were a few reoccurring panics that made it hard to test the kernel for other problems. Numerous people put a lot of hard work in fixing the panics and livelocks found during the next months. At the same time others stepped in and ran the test suite on their own hardware, thus increasing the focus on kernel stability.

As of 6.0, the kernel stress test suite cannot panic the kernel.

Nsswitch / Caching daemon Michael Bushkov + href="http://wiki.freebsd.org/moin.cgi/NsswitchAndCachingFinalReport" /> - +

The nsswitch / caching daemon project was developed within the Google's Summer Of Code program. Almost all goals of the project were achieved. Thanks to Brooks Davis and Jacques Vidrine, who were my mentors and greatly helped me.

Nsswitch subsystem was extended to support new sources (services, protocols, rpc, openssh and GT4). The testing of the Globus Grid Toolkit 4 patch (which adds support for nsswitch to GT4) is still to be done. For nsswitch to support caching, the caching daemon was implemented on top of the caching library, which was also developed during the SoC. The current version of the daemon uses simple nscd-like configuration file and seems to be stable. To complete the SoC project, the experimental version of libc with in-process caching enabled was made. It's benchmarking will be done in the nearest future.

There were some requests for caching daemon to be able to act like NSCD (to perform the actual nsswitch lookups by itself), so it was modified to support this feature. But current implementation has some restrictions and requires a lot of testing. Right now the final polishing is being made to the project's sources, so that they could be added to the CURRENT

Extend caching daemon to support NSCD functionality Test Globus Grid Toolkit 4 patch Add support for MAC and audit related configuration files to the nsswitch
FreeBSD Web Site Redesign Emily Boyd soc-emily@FreeBSD.org Murray Stokely murray@FreeBSD.org Web Team freebsd-www@FreeBSD.org Archived copy of old site.

The new website has gone live! Thanks to Emily Boyd for all her hard work. We still have a lot of work to do to integrate suggestions that have been made by users since we went live. The new CSS design makes it much easier to rapidly change the look and feel of the site, so it is easy to experiment. We're still looking for more HTML/CSS designers to help us improve the site.

NEWCARD Warner Losh imp@freebsd.org

Due to an email snafu, the June report was not submitted, so this report covers since the last 6 months.

Summary: The 16-bit part of NEWCARD has been greatly enhanced. In addition, power control has become interrupt driven. Some drivers make use of the new functionality.

The pccard layer now exports the CIS for each device that is present, even if there's no driver for the card or parts of the card.

The power up and reset sequence is now interrupt driven. This has eliminated many of the long pauses that the system used to experience after a card insertion. We can not play glitch-free audio while inserting or removing a card.

A number of additional cards are recognized by PC Card. In addition, drivers now can read the CIS for more information about the card. Drivers have been enhanced to read the CIS for MAC addresses and the like where appropriate.

The ed driver now attaches the mii bus of the AX88190 and AX88790 fast ethernet PC Card chips. This allows better status reporting and increased functionality for PHY chips that need some help. The ed driver also supports the Tamarack TC5299J chipset (including attaching its MII bus) now, the only open source OS that does so (TC5299J cards will work with other open source OS, but they won't report their status or attach a mii bus).

A number of bugs have been fixed in the pccard or cardbus drivers. Most of these changes have been merged into the forthcoming 6.0. Others will be merged after the release.

ExpressCard laptops have arrived with ExpressCard/54 and ExpressCard/34 slots. It is unknown the extent of the work necessary to support them. The ISA attachment of cbb needs work to make it fully functional. A CIS parser in userland needs to be written. The pccardc based CIS parser is OK, but it doesn't handle MFC cards too well. Ideally the parser would produce output that is compatible with the linux tool. A mechanism for CIS override is needed. We need a tool that will take an ascii representation of the CIS and produce a binary. We need a tool that will install the binary into the kernel and kernel modifications to switch from the CIS that's in the card to the faked up CIS. We need a mechanism for creating pseudo multi-function cards. Initially, it seems that all we really need is the ability for an arbitrary driver to add a sio companion, since that covers all the cases I'm aware of. Resources would need to be 'donated' from the creating driver to the sio card. It would be nice if we could move to a more common CIS parsing and dispatch. The CardBus side is wide open at the moment since none of the pci drivers use the CIS information outside of a few that get their MAC address via a standard interface. The ep driver needs work to make the newer ep cards that have mii bus on them actually probe and attach it. It needs to gain media support for the non-mii based cards. The 3C1 still needs work. The sn driver needs work to support many of the SMC91Cxxx PC Card devices. These are typically combination cards that need special, non-standard initialization. Power savings for 16-bit cards can be realized if we power them up at 3.3V rather than at 5.0V. Not all cards can support this, but many can and indicate this support in the CIS. Windows tries the 3.3V configuration entries before the 5.0V ones. We should do the same. Most of the changes that have been made to the pccard and cardbus layers can be merged back into RELENG_5.
OpenBSD packet filter - pf Max Laier mlaier@freebsd.org

Futher improvements have been made to pfsync to make it behave well in SMP scenarios. All bug fixes have been MFCed to RELENG_5 where applicable. A couple of bugfixes and feature improvements have been imported via OpenBSD (originally suggested by FreeBSD users).

As described in the last report, FreeBSD 6.0 and future RELENG_6 releases will be based on OpenBSD 3.7. Newer code will be imported as soon as 6.0 has settled down a bit.

BSD Installer Andrew Turner soc-andrew@FreeBSD.org - +

By the end of August I managed to modify the release building process to build a live CD that loads the front and backends. It could install all the distfiles, install the ports tree and had minimal support to install and uninstall packages.

Since the end of the Summer of Code I have worked to integrate the new Lua backend. This has been successful, with it now past the point of the BSDINSTALLER-BETA-1 release. It can install the distfiles but not the ports tree or packages yet.

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.

The last three months have been spent in bug fixing and in tweaking the code. A few more minor features and loose ends remain to be taken care of. Once these are done, I hope to get started on a graphical performance analyser.

Realtime POSIX signal David Xu davidxu@FreeBSD.org

The FreeBSD kernel is powerful, but it still lacks some realtime POSIX facilities, for example, sigqueue. Most of the code is ready, and I am testing it.

POSIX timer, timer_xxx syscalls
SNMP Monitoring Harti Brandt harti@freebsd.org Philip Paeps philip@freebsd.org Victor Cruceru soc-victor@freebsd.org - + FreeBSD wiki

New MIBs are implmented for the BSNMP agent:

  1. HOST-RESOURCES-MIB ( http://www.ietf.org/rfc/rfc2790.txt ). Philip is going to submit the code into the CVS repository.
  2. TCP-MIB with combined IPv4 & IPv6 support ( http://www.ietf.org/rfc/rfc4022.txt ). This new TCP-MIB is 100% backward compatible with the old one (v4 only). It adds a clear distinction between active and passive tcp endpoints and for each endpoint info about the process it belongs to.
  3. UDP-MIB with combined IPv4 & IPv6 support ( http://www.ietf.org/rfc/rfc4113.txt ). This new UDP-MIB is 100% backward compatible with the old one (v4 only) and it adds multiple instances support for the UDP endpoints and for each endpoint info about the processes using it.
For HOST-RESOURCES-MIB we are going to add support for more detailed memory stats based of libmemstat(3) The rest of the IPv6 MIBs. FreeBSD enterprise MIBs for supporting SNMP configuration (via SNMP SETs) for FreeBSD.
csup: cvs mode support Christoph Mathys cmathys@bluewin.ch - + The wikipage with details about my SoC-project csup project page

During the "Summer of Code" I worked on csup (a rewrite of CVSup in C). It already supported checkout-mode, so my task was to implement support for cvs-mode. The biggest part of the project was to implement support for rcs-files. As "byproducts" I also wrote the necessary code to create nodes/hardlinks and to update files using the rsync-algorithm. For what I know, the code works fine, but errorhandling is practically inexistent.

Errors should be properly handled Support to get fixups The hard part to support rcs file updates is done, but there is no checksum, some options are not honored and the performance could be improved
Sound subsystem improvements Multimedia Mailinglist multimedia@FreeBSD.org Ariff Abdullah skywizard@MyBSD.org.my Alexander Leidinger netchild@FreeBSD.org

Recently a lot of fixes, specially in handling format / rate conversion and general stability was committed to -current. This include fixes for most LOR's and new features (software volume handling for soundcards without volume handling in hardware and the possibility to switch to spdif).

A lot of effort was expended by Ariff (and other people) to come up with those improvements. For this reason Ariff was "punished" with a commit bit, so he is able to commit further improvements on his own.

This work is not integrated into 6.0-RELEASE because of some lose ends (see 'sndctl' below).

You can help by looking at sound related PR's in GNATS and making follow-up's which tell us if a problem still persists or if a PR can be closed because the bug is fixed. Also feel free to submit patches for anything on the TODO list below.

Update manual pages to reflect new features. Fix driver specific issues (via, t4dwave, maestro). Make all drivers MPSAFE. 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, changes are under review)? Closer compatibility with OSS, especially for the upcoming OSS v4. Close a lot of PR's. Document the sound system in the FreeBSD Architecture Handbook .
Ports Tinderbox Joe Marcus Clarke marcus@FreeBSD.org Tinderbox List tinderbox-list@marcuscom.com Tinderbox Homepage

The Ports Tinderbox is a packaged system for building FreeBSD ports in a clean environment. It can be used to test new ports, updates to existing ports, or simply as a package building engine. Tinderbox uses the same underlying code that the official FreeBSD package build cluster, pointyhat, uses. So if a port builds under Tinderbox, it is guaranteed to build on pointyhat.

More and more FreeBSD committers and ports maintainers are starting to use Tinderbox. We just released version 2.1.0 which added much-requested PostgreSQL support as well as fixed many bugs. We expect a 2.1.1 release soon with some additional bug fixes.

With the 2.1.0 release of Tinderbox, we have branched the code base so that we can focus on larger features in our HEAD branch while still producing stable releases on a more frequent basis. The biggest new feature planned for Tinderbox 3.0 is clustering support which is being spearheaded by Ade Lovett (ade).

At this point, we really need help with documentation. Work has begun on creating man pages for the various Tinderbox commands, but we need help to churn them out at as faster rate. If you have strong mdoc fu, and interested in helping us out, please contact marcus@marcuscom.com .
diff --git a/en/news/status/report-2006-01-2006-03.xml b/en/news/status/report-2006-01-2006-03.xml index eaeaec8e12..d3456e359e 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

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 a91ab24623..6bd524a7cc 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 + href="http://wiki.freebsd.org/G%C3%A1borK%C3%B6vesd%C3%A1n"> Wiki page about the project - Explaining + 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 + href="http://wiki.freebsd.org/LdapCachedDetailedDescription"> 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.

Gabor Kovesdan 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

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 9b76b05d39..27bfac5023 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 + 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 + 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 + 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 + 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 + 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 + SoC Student Wiki - + Original Project Proposal + href="http://wiki.freebsd.org/LdapCachedDetailedDescription"> 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 + 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

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 + 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 + 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 + href="http://wiki.freebsd.org/G%C3%A1borK%C3%B6vesd%C3%A1n"> 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 + 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-2005-12.xml b/en/news/status/report-2006-10-2005-12.xml index b86a45cf67..0d4b6f06be 100644 --- a/en/news/status/report-2006-10-2005-12.xml +++ b/en/news/status/report-2006-10-2005-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 + 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 + 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

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-2006-10-2006-12.xml b/en/news/status/report-2006-10-2006-12.xml index b86a45cf67..0d4b6f06be 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 + 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 + 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

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-apr-2006-jun-2006.xml b/en/news/status/report-apr-2006-jun-2006.xml index a91ab24623..6bd524a7cc 100644 --- a/en/news/status/report-apr-2006-jun-2006.xml +++ b/en/news/status/report-apr-2006-jun-2006.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 + href="http://wiki.freebsd.org/G%C3%A1borK%C3%B6vesd%C3%A1n"> Wiki page about the project - Explaining + 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 + href="http://wiki.freebsd.org/LdapCachedDetailedDescription"> 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.

Gabor Kovesdan 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

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-jan-2006-mar-2006.xml b/en/news/status/report-jan-2006-mar-2006.xml index eaeaec8e12..d3456e359e 100644 --- a/en/news/status/report-jan-2006-mar-2006.xml +++ b/en/news/status/report-jan-2006-mar-2006.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

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-july-2004-dec-2004.xml b/en/news/status/report-july-2004-dec-2004.xml index 4e362229aa..95ecc402f0 100644 --- a/en/news/status/report-july-2004-dec-2004.xml +++ b/en/news/status/report-july-2004-dec-2004.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 + 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 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-july-2005-oct-2005.xml b/en/news/status/report-july-2005-oct-2005.xml index 0dc29841d0..010c6ac6e2 100644 --- a/en/news/status/report-july-2005-oct-2005.xml +++ b/en/news/status/report-july-2005-oct-2005.xml @@ -1,2037 +1,2037 @@ July-October 2005
Introduction

After a long, exhausting, yet very productive third quarter of 2005 FreeBSD 6.0 has been released. Many activities were put into the background in order to make this release the success it has become.

Nontheless, we received a tremendous amount of reports covering various projects that either found their way into FreeBSD 6.0 already or have started to develop in, what is now known as 7-CURRENT. The EuroBSDCon and the Developer Summit in Basel next week will be a good opportunity to help some of the ideas herein to take off.

Last round we had the pleasure to introduce our accepted Google Summer of Code projects. Now, that the summer is over, we are even more pleased to include reports about the outcome of these projects. Some already found their way into the tree or the general public otherwise - most ocularly the new webdesign.

Unfortunately, this publication has been delayed for various reasons - the before mentioned release of 6.0 being one of them. Thus, some of the reports might no longer be as up to date as they were when we received them and we encourage you - even more this time - to also visit the weblinks to get more recent information.

Thanks again to everyone who submitted reports, and our sincere apologies for running late this time.

soc Google summer of code proj Projects doc Documentation kern Kernel net Network infrastructure arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous Cronyx/Asterisk Roman Kurakin rik@FreeBSD.org Cronyx WAN Adapters rik's Home Page

A new netgraph-to-zaptel module that allows to use E1(ISDN PRI) WAN adapters as an interface card for open source PBX - Asterisk. All you need is an adapter that able to work in raw phone mode (like Cronyx Tau-PCI/2E1), eq. without HDLC-like framing and that has support of Netgraph.

BSDCan Dan Langille dan@langille.org BSDCan

We are in the process of recruiting new members for the program committee. If you would like to volunteer before you are recruited, please contact me.

The dates for 2006 have been announced: May 12-13, 2006. The venue will be the same as previous events: University of Ottawa. The prices will not increase from 2005.

Please start thinking about your papers. The call for papers will go out soon.

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

A great deal of work has gone into the Ports Collection since the last report in April, much of it behind-the-scenes.

As this report was being written, the 6.0 release was ongoing. Due to the amount of time that it has taken to get 6.0 through the beta process and into RC, we have been in ports freeze or slush for more than two months. Unfortunately this has held back needed work on the ports infrastructure.

The last major update to bsd.port.mk, in early May, was coordinated by Kirill Ponomarew added a number of new features and closed 15 PRs. Another similar set of changes has been tested and is ready for commit after release.

portmgr welcomed two new members to its team: Erwin Lansing (who had previously served as secretary, a role in which he is continuing) and Clement Laforet. Clement is interested in speeding up the adoption of new changes into the infrastructure, an item I'm sure that that everyone can support. He promises to bring some fresh ideas to bear on this, including the revitalization of devel/portmk as a testing ground for new changes to bsd.port.mk in which the larger community can help test changes.

The unfetchable distfile survey, which had been non-functional for quite some time, was revitalized by Bill Fenner, with many new pages of analysis added to it. Work is still ongoing. As a result of this analysis, Bill and Mark Linimon eliminated nearly 100 lines of bogus or outdated sites from bsd.sites.mk alone. They are continuing to work through many other sites and ports as successive iterations of the survey reveal more dimensions to the problem. We still need more help from the larger community (see below).

Edwin Groothius has instituted a similar but slightly different survey. His program attempts to visit each listed mastersite for each distfile and determine whether or not a newer version might be available. The results are stored in a database. This is helping to automate a function that had been left up to individual maintainers to look through numerous websites to try to find these updates. The survey has been hugely (if not universally) popular. Already, dozens of port updates have been committed as a direct result of this service.

In addition, portsmon, which had been down due to a machine change, was moved to portsmon.FreeBSD.org and updated during this time. Many thanks to Erwin Lansing for providing the loan of this machine, and Will Andrews for having provided the loan of the previous incarnation.

Both of the above surveys are now generating periodic email to ports maintainers advising them of problems. This is in addition to recurring email from portsmon. The surveys allow individual maintainers to ask to receive no further email. portsmon does not currently have this but it needs to be added. Although we have no doubt the mail can in some cases be annoying (especially given the fact that there will inevitably be some false positives), the fact is that these emails have had a direct impact on the quality on the ports. We ask for patience from the community while each of us continues to fine-tune the algorithms controlling what email is generated. (Because of the number of emails these systems generate, it is impossible to go over every one individually for a sanity check).

As a result of bounces from the above email, we have also been resetting maintainers who have become unreachable.

Pav Lucistnik has done a great deal of work on the Porter's Handbook, including some much needed reshuffling and cleanup. Expanded sections include Apache and PHP; Configure Scripts; Dealing With Shared Libraries; Dealing With User Configuration Files; Handling Empty Directories; Python; and Ruby. In addition, Edwin Groothius has contributed a section on OPTIONS, and numerous other sections have been improved by good suggestions from various other contributors.

A new article, "Maintaining and contributing to the FreeBSD Ports Collection", has been prepared by Sam Lawrance and has been reviewed and is ready for commit. This document attempts to codify the rights and responsibilities of ports maintainers, which until now had merely been "community lore" as discussed on various mailing lists.

We continue to add new committers regularly, 8 since the last report.

The ports collection now contains over 13,500 ports. This is an increase of over 750 since the last report in April.

portmgr would like to ask maintainers and committers alike to go through the status of their ports on the two distfile surveys, both the one that shows unfetchable current distfiles and the one that shows possibly updated distfiles. This is an effective way to quickly help improve our user's perception of the state of the ports. A great deal of 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 ). These ports are now a small minority thanks to the dedicated efforts of a large number of individuals. We still have a large number of PRs that have been assigned to committers for some time (in fact, they constitute the majority). portmgr members are now going through this list and asking each committer to either commit them or release them to the general pool so that someone else may work on them. In addition, the existing policies for inactive maintainers (two weeks for maintainer- timeout on PRs; three months for maintainer reset if no activity) are going to be much more actively pursued than in the past, where the policies were more honored in the breach than in the observance. The goal is to try to bring the Ports Collection as up-to-date as possible. (While there has been progress on many fronts, there are still areas where ports are suffering from bit-rot.)
Improve Libalias Paolo Pisati p.pisati@oltrelinux.com - + Wiki/Official project site - +

The project met all the scheduled goals, and following are the new features implemented in libalias:


Fell free to suggest other improvements.

Test and feedback are welcome
FreshPorts Dan Langille dan@langille.org FreshPorts

I'm in the process of adding personalized newsfeeds to the website. For each of your Watch Lists, you will also have a news feed just for that watch list. Any commit to any port in your watch list will turn up on your newsfeed. This fantastic new feature is available now for your RSS pleasure at the BETA site . I've also been doing some work in the area of supporting multiple platforms and architectures. This will allow FreshPorts to correctly report that a port is broken, for example, on i386, but not the other platforms. This feature will take note of BROKEN, FORBIDDEN, and IGNORE for the following architectures:

And the following OSVERSIONS (subject to upgrade as new releases come along): Upcoming changes, in addition to the above, include:
  1. NOT_FOR_ARCHS
  2. ONLY_FOR_ARCHS
  3. IS_INTERACTIVE
I've been getting useful help from those on IRC. Thanks.

Complete the above.
Fuse for FreeBSD Csaba Henk soc-chenk@freebsd.org New home page - + FreeBSD wiki page Download location

Fuse for FreeBSD is the outcome of my "ssh based networking filesystem for FreeBSD" SoC project.

The kernel interface for the comprehensive userspace filesystem API provided by the ( Fuse project ) has been implemented for FreeBSD (6.x and 7.x), under the BSD license. This has the benefit of opening up the possibility of porting the rich collection of Fuse based filesystems to FreeBSD.

Now it's ready for consumption by a broader audience. The sysutils/fusefs-kmod , sysutils/fusefs-libs , sysutils/fusefs-sshfs ports can be expected to be integrated into the FreeBSD ports tree in the next few days (the ports were created and are maintained by Anish Mistry, and Simon Barner's careful review also helps a lot).

Implement missing features like extended attributes and attribute/name caching (with timeout). Resolve problems with autotools and integrate userspace modifications into the Fuse codebase. Port Fuse based filesystems and language bindings to FreeBSD. Create sysfs (Fuse based filesystem interface to sysctl). Test, test, test among a broad variety of circumstances.
gvinum 'move', 'rename' support Chris Jones soc-cjones@freebsd.org - + gvinum 'move', 'rename' wiki

Support for moving and renaming objects in gvinum was completed at the end of August 2005. All gvinum objects (drives, subdisks, plexes, and volumes) can be renamed, and subdisks can be moved from drive to drive. Also, a man page for gvinum was created.

Update FreeBSD Handbook chapter on vinum to reflect gvinum. Slowly in progress, but hopefully done by the end of the year, workload permitting.
Integrated SNMP monitoring Philip Paeps philip@FreeBSD.org Shteryana Shopova soc-shteryana@FreeBSD.org + href="http://wiki.freebsd.org/moin.cgi/ShteryanaShopova" /> + href="http://wiki.freebsd.org/moin.cgi/SnmpMonitoringModulesStatus" />

This summer, we've had the pleasure of having two Google Summer of Code students hacking on our SNMP monitoring machinery. Victor worked on implementing the Host Resources, TCP and UDP MIBs in bsnmpd while Shteryana started on client-side SNMP tools.

With these modules and tools, a FreeBSD installation can be monitored without having to install any (heavy!) third-party tools.

While the modules and the tools currently in Perforce are generally functional, they still need some tidying up (style(9)) and testing before they can be committed to CVS.

At the time of this writing, the Hostres MIB is pretty much commit-ready in Perforce (//depot/user/philip/bsnmp/...), the other modules and tools live in //depot/projects/soc2005/bsnmp/... They'll be branched for tidying up and committing "Real Soon Now"[tm]

Testers are very welcome. :-) Please let us know about any bugs!
Interface Cleanup Anders Persson soc-anders@freebsd.org + href="http://wiki.freebsd.org/moin.cgi/CleanupOfNetworkInterfaceApisProposal"> SoC Proposal

The dependencies to kernel-only datastructures in netstat (ifnet, etc.) have been removed almost completely (AppleTalk and IPX still needs work). In order to remove the dependencies, the debugging features of netstat had to be removed. However, a project to create a generic, modular 'data structure' examination tool is ongoing, and the debugging features factor out of netstat have been migrated to this tool.

Refactoring of the netstat code, create a modular version in the spirit of ifconfig. Data structure examination tool needs to be completed, current state is more that of a prototype.
UFS Journaling Brian Wilson polytopes@gmail.com Scott Long scottl@FreeBSD.org

Scott has been working on inserting journalling hooks into the ufs and ffs filesystem code. Brian has been balancing school and redesigning various things that were deemed necessary to update during the end of the actual SoC project.

Finish the redesign of the internal block management code. Integration and test of the ffs/ufs hooks and the journaling code. Updating userland tools to be aware of and use the journal. Journal buffer management wiring to VM subsystem a la XFS.
pfSense Scott Ullrich sullrich@gmail.com

pfSense is a m0n0wall derived operating system platform with radically different goals such as using Packet Filter, FreeBSD 6, ALTQ for excellent packet queueing and finally an integrated package management system for extending the environment with new features.

Work continues to stabilize pfSense in preparation for the FreeBSD 6 release. Once FreeBSD 6 is released pfSense will enter the final beta and release candidate phases in preparation for the 1.0 release.

Stabilize installer (cannot load kernel errors after install) Finish outgoing load balancing monitoring Fix last minute bugs that turn up
launchd(8) for FreeBSD R. Tyler Ballance tyler@tamu.edu - Project + Project Wiki

In short, launchd can run perfectly fine on FreeBSD, and combined with launchctl, it can be used to manage daemons through the launchctl(1) interface. Jobs can be added and managed two ways as of yet from launchctl(1). Using zarzycki@'s experimental "submit" command within launchctl(1) or by using my lame/rudimentary/etc "launcher" format (launchd/launchers/*.launch) which uses property(3) to parse out three simple, and important details. The program label, path, and any program flags. Using the "load" command, one can load the data into launchctl(1) and then start the processes with the..."start" command. Jobs can be removed/stopped with the "remove" command. The "limit" command still throws launchctl(1) into an infinite loop, and yes, I plan on fixing this.

There are some things that need to be fixed, first off, some sort of boot time integration, whether as an init-replacement (i.e. PID 1, a la Mac OS X) or as the first thing started from init, that kicks all rcng things off. Along with, more importantly, a plist parser, so we can have full compatibility with Mac OS X's launchd via Core Foundation.

I'm also trying to get launchd(8) relicensed with the BSD license, as opposed to the APSL, anybody with tips, or methods for achieving this goal, contact me at tyler@tamu.edu

Writing a light-weight plist (non-XML) parser with lex and yacc.
Porting FreeBSD to the Xbox Rink Springer rink@rink.nu Ed Schouten ed@fxq.nl

As of 26th July 2005, it is possible to run FreeBSD on your Xbox with minor patching effort. The framebuffer has initial support; The USB ports, IDE- and audio controllers are fully supported; the only part severely lacking now is the lack of support for the NForce Ethernet controller.

Currently, efforts are focussing on eliminating the XBOX kernel option and make the port self-detecting; this means the x86 and xbox kernels will be identical. The goal is to provide native xbox support in 7-CURRENT.

Futhermore, a porting effort is planned from Linux' GPL-ed forcedeth.c; not only the Xbox port will benefit from this but also all NForce motherboard owners. The resulting driver could be kldload-ed to keep the kernel GPL-free.

The xbox framebuffer driver should be merged in the VESA framework, so it can use syscons(4). Assistance on this would be very welcome!
ggtrace Ivan Voras ivoras@yahoo.com

Ggtrace is "GEOM gate tracer", utility to track I/O requests on a storage device on FreeBSD. It uses the ggate facility of FreeBSD to attach to a file or device and produces a device that can be used for any I/O, including hosting filesystems.

I/O requests are presented in the form of a moving histogram that can be used to discern which parts of the storage device are used most often. One use of ggtrace is to analyze how filesystems arrange and access data on storage devices.

The project is working and usable only on the RELENG_6 branch.

gjournal Ivan Voras ivoras@yahoo.com - gjournal + gjournal wiki page

Gjournal provides GEOM-level journaling and COW capabilities to storage devices. Unfortunately, it cannot be used as a substitute for filesystem journaling (fsck is still needed when gjournal device is used to host filesystems). Development has slowed down, and the existing code needs much more testing. If there is continued interest in it, I'll probably split the functionalities into two projects, one handling COW and one handling the journaling, in order to make the code cleaner.

More testing is needed.
TCP & IP Routing Optimization Fundraise Andre Oppermann andre@freebsd.org

The fundraise 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.

Due to the extended (and unexpected long) code freeze for the release process of FreeBSD 6.0 (which is very high quality btw.) I've decided to push back on working full time until the freeze is lifted. So far I've done some work in the mbuf handling area and some other netinet cleanups in my local repository.

Once FreeBSD 6.0 is released I resume my work on this project and many changes and optimizations, as described in the first and second link, will go into into FreeBSD-current.

TODO list for volunteers Alexander Leidinger netchild@FreeBSD.org

The TODO list for volunteers (see the last report for more) is now under review by some doc@ people.

bridge.c retired Max Laier mlaier@freebsd.org Andrew Thompson thompsa@freebsd.org

As of September 27, the old bridge(4) implementation has been removed from HEAD and will not be part of FreeBSD 7 and later. FreeBSD 6 will serve as transition period. The full functional replacement if_bridge(4) is now available in FreeBSD 5 (not yet part of 5.4 however), FreeBSD 6 and -CURRENT. Any problems should be reported to Andrew Thompson, who is maintaining if_bridge in FreeBSD.

Document the change in the handbook and other reference material.
Problem Report Database Mark Linimon bugmeister_at_freebsd_dot_org GNATS

Due to some good recent commit and cleanup work by both Alexander Leidinger and Craig Rodrigues, the number of base-system PRs has stabilized somewhat. The number of incoming ports PRs continues to accelerate but except during freezes the ports committers have been battling to commit them as quickly as they come in. (The graphs very clearly show where the freezes are.) The net result is that we are holding our own but it takes a great deal of (mostly unheralded) effort to do so. Thanks are due to a large number of individuals who are doing this ongoing work.

There is ongoing work to ask committers who have had PRs assigned to them for a significant period of time, whether they are still interested in pursuing them or whether they should instead be reassigned to the pool. This is being done to try to get as many PRs 'unstuck' as possible to try to help improve our users' perceptions of the project.

As an experiment, Mark Linimon has been adding 'tags' to many of the kern and bin PRs, including such things as '[nfs]', '[if_em]', and so forth. The idea is to try allow searching and browsing based on these terms so that committers will find it easier to work with our current PR database. At the moment this is in the experimental stage, although it is possible for committers to work with them from the command line on systems with a database installed via query-pr(1).

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 continue to be fixed. jhb's locking work has identified and corrected many issues. rwatson has also committed cleanups to the multicast code which fixed some issues in this area.

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. A few bugs are being tracked, but most of them are edge cases.

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

EuroBSDCon 2005 - Basel Information info@eurobsdcon.org

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 FreeBSD developers will hold a DevSummit on Nov 24 and 25, so several developers will be at the conference.

The program is available for Saturday and Sunday providing very interesting FreeBSD talks and topics.

Today more than 160 people from 25 countries have registered for the conference.

FreeBSD GNOME Project Joe Marcus Clarke marcus@FreeBSD.org FreeBSD GNOME Team gnome@FreeBSD.org FreeBSD GNOME Project Homepage

Since our last status report, we have added a new member to the team: Jean-Yves Lefort (jylefort). We have even spiced up our contact page with pictures of ourselves and in some cases, a cute hippo. And our very own Adam Weinberger (adamw) has been made a GNOME Project committer heading up the Canadian English translation project.

We have finished the port GNOME 2.12 to FreeBSD. However, due to the ports slush in preparation for 6.0-RELEASE, the update has not been merged into the official ports tree. If people are eager to try out GNOME 2.12 while waiting for the ports tree to fully thaw, we have instructions on our website. GNOME 2.12 will be the first FreeBSD GNOME release not to include support for FreeBSD 4.X. While 4.X is still a very viable release for servers, it lacks many of the features needed for a Desktop Environment such as GNOME. We do plan to continue support of the GNOME development platform on 4.X, however. This includes Glib, GTK+, libgnome, etc. A new porting component will be introduced with GNOME 2.12 called, ``ltverhack''. This will help with future upgrades by keeping shared library versions from needlessly changing.

The FreeBSD GNOME Project is also committed to providing our users with a solid package experience. To that end, we have extended our Tinderbox to build amd64 packages for all supported versions of FreeBSD for both the production and development releases of the GNOME Desktop. The development packages are even built with debugging symbols to better help with reporting problems.

FreeBSD needs a HAL port. HAL will be vital for both GNOME and KDE in providing FreeBSD users with a smooth, elegant desktop experience. Once GNOME 2.12 has been merged into the ports tree, work will begin on making HAL on FreeBSD a reality. Contact gnome@FreeBSD.org if you are interested in helping. We need help with project documentation. In particular, we need help auditing the FAQ to make sure the content is still relevant, and we are not missing any key items. If you're interested, please contact gnome@FreeBSD.org .
PowerPC Port Peter Grehan grehan@freebsd.org FreeBSD/PPC Platform page.

The project has been following the 6.0 release schedule by producing BETA-* builds and is now up to the RC1 build.

Dario Freni successfully built a FreeSBIE/ppc iso for his Summer-of-code project.

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

This iSCSI kernel module and its companion control program, are still under development, but the main parts seem to be working. A second round of public tests has started.

login chap authentication digest network disconnect recovery
The Kernel Stress Test Suite Peter Holm pho@freebsd.org

The current version of the test suite took form in the beginning of the year after discussions with Jeff Roberson, during a long period of testing Jeff's VFS SMP work.

At that time, Daniel Seuffert donated a Thunder 7500 motherboard complete with CPUs, RAM and coolers. This allowed me to do some serious SMP testing.

Mid July Murray Stokely suggested adding a link from the 6.0 todo web page to the Stress Test Status Page. At that time there were a few reoccurring panics that made it hard to test the kernel for other problems. Numerous people put a lot of hard work in fixing the panics and livelocks found during the next months. At the same time others stepped in and ran the test suite on their own hardware, thus increasing the focus on kernel stability.

As of 6.0, the kernel stress test suite cannot panic the kernel.

Nsswitch / Caching daemon Michael Bushkov + href="http://wiki.freebsd.org/moin.cgi/NsswitchAndCachingFinalReport" /> - +

The nsswitch / caching daemon project was developed within the Google's Summer Of Code program. Almost all goals of the project were achieved. Thanks to Brooks Davis and Jacques Vidrine, who were my mentors and greatly helped me.

Nsswitch subsystem was extended to support new sources (services, protocols, rpc, openssh and GT4). The testing of the Globus Grid Toolkit 4 patch (which adds support for nsswitch to GT4) is still to be done. For nsswitch to support caching, the caching daemon was implemented on top of the caching library, which was also developed during the SoC. The current version of the daemon uses simple nscd-like configuration file and seems to be stable. To complete the SoC project, the experimental version of libc with in-process caching enabled was made. It's benchmarking will be done in the nearest future.

There were some requests for caching daemon to be able to act like NSCD (to perform the actual nsswitch lookups by itself), so it was modified to support this feature. But current implementation has some restrictions and requires a lot of testing. Right now the final polishing is being made to the project's sources, so that they could be added to the CURRENT

Extend caching daemon to support NSCD functionality Test Globus Grid Toolkit 4 patch Add support for MAC and audit related configuration files to the nsswitch
FreeBSD Web Site Redesign Emily Boyd soc-emily@FreeBSD.org Murray Stokely murray@FreeBSD.org Web Team freebsd-www@FreeBSD.org Archived copy of old site.

The new website has gone live! Thanks to Emily Boyd for all her hard work. We still have a lot of work to do to integrate suggestions that have been made by users since we went live. The new CSS design makes it much easier to rapidly change the look and feel of the site, so it is easy to experiment. We're still looking for more HTML/CSS designers to help us improve the site.

NEWCARD Warner Losh imp@freebsd.org

Due to an email snafu, the June report was not submitted, so this report covers since the last 6 months.

Summary: The 16-bit part of NEWCARD has been greatly enhanced. In addition, power control has become interrupt driven. Some drivers make use of the new functionality.

The pccard layer now exports the CIS for each device that is present, even if there's no driver for the card or parts of the card.

The power up and reset sequence is now interrupt driven. This has eliminated many of the long pauses that the system used to experience after a card insertion. We can not play glitch-free audio while inserting or removing a card.

A number of additional cards are recognized by PC Card. In addition, drivers now can read the CIS for more information about the card. Drivers have been enhanced to read the CIS for MAC addresses and the like where appropriate.

The ed driver now attaches the mii bus of the AX88190 and AX88790 fast ethernet PC Card chips. This allows better status reporting and increased functionality for PHY chips that need some help. The ed driver also supports the Tamarack TC5299J chipset (including attaching its MII bus) now, the only open source OS that does so (TC5299J cards will work with other open source OS, but they won't report their status or attach a mii bus).

A number of bugs have been fixed in the pccard or cardbus drivers. Most of these changes have been merged into the forthcoming 6.0. Others will be merged after the release.

ExpressCard laptops have arrived with ExpressCard/54 and ExpressCard/34 slots. It is unknown the extent of the work necessary to support them. The ISA attachment of cbb needs work to make it fully functional. A CIS parser in userland needs to be written. The pccardc based CIS parser is OK, but it doesn't handle MFC cards too well. Ideally the parser would produce output that is compatible with the linux tool. A mechanism for CIS override is needed. We need a tool that will take an ascii representation of the CIS and produce a binary. We need a tool that will install the binary into the kernel and kernel modifications to switch from the CIS that's in the card to the faked up CIS. We need a mechanism for creating pseudo multi-function cards. Initially, it seems that all we really need is the ability for an arbitrary driver to add a sio companion, since that covers all the cases I'm aware of. Resources would need to be 'donated' from the creating driver to the sio card. It would be nice if we could move to a more common CIS parsing and dispatch. The CardBus side is wide open at the moment since none of the pci drivers use the CIS information outside of a few that get their MAC address via a standard interface. The ep driver needs work to make the newer ep cards that have mii bus on them actually probe and attach it. It needs to gain media support for the non-mii based cards. The 3C1 still needs work. The sn driver needs work to support many of the SMC91Cxxx PC Card devices. These are typically combination cards that need special, non-standard initialization. Power savings for 16-bit cards can be realized if we power them up at 3.3V rather than at 5.0V. Not all cards can support this, but many can and indicate this support in the CIS. Windows tries the 3.3V configuration entries before the 5.0V ones. We should do the same. Most of the changes that have been made to the pccard and cardbus layers can be merged back into RELENG_5.
OpenBSD packet filter - pf Max Laier mlaier@freebsd.org

Futher improvements have been made to pfsync to make it behave well in SMP scenarios. All bug fixes have been MFCed to RELENG_5 where applicable. A couple of bugfixes and feature improvements have been imported via OpenBSD (originally suggested by FreeBSD users).

As described in the last report, FreeBSD 6.0 and future RELENG_6 releases will be based on OpenBSD 3.7. Newer code will be imported as soon as 6.0 has settled down a bit.

BSD Installer Andrew Turner soc-andrew@FreeBSD.org - +

By the end of August I managed to modify the release building process to build a live CD that loads the front and backends. It could install all the distfiles, install the ports tree and had minimal support to install and uninstall packages.

Since the end of the Summer of Code I have worked to integrate the new Lua backend. This has been successful, with it now past the point of the BSDINSTALLER-BETA-1 release. It can install the distfiles but not the ports tree or packages yet.

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.

The last three months have been spent in bug fixing and in tweaking the code. A few more minor features and loose ends remain to be taken care of. Once these are done, I hope to get started on a graphical performance analyser.

Realtime POSIX signal David Xu davidxu@FreeBSD.org

The FreeBSD kernel is powerful, but it still lacks some realtime POSIX facilities, for example, sigqueue. Most of the code is ready, and I am testing it.

POSIX timer, timer_xxx syscalls
SNMP Monitoring Harti Brandt harti@freebsd.org Philip Paeps philip@freebsd.org Victor Cruceru soc-victor@freebsd.org - + FreeBSD wiki

New MIBs are implmented for the BSNMP agent:

  1. HOST-RESOURCES-MIB ( http://www.ietf.org/rfc/rfc2790.txt ). Philip is going to submit the code into the CVS repository.
  2. TCP-MIB with combined IPv4 & IPv6 support ( http://www.ietf.org/rfc/rfc4022.txt ). This new TCP-MIB is 100% backward compatible with the old one (v4 only). It adds a clear distinction between active and passive tcp endpoints and for each endpoint info about the process it belongs to.
  3. UDP-MIB with combined IPv4 & IPv6 support ( http://www.ietf.org/rfc/rfc4113.txt ). This new UDP-MIB is 100% backward compatible with the old one (v4 only) and it adds multiple instances support for the UDP endpoints and for each endpoint info about the processes using it.
For HOST-RESOURCES-MIB we are going to add support for more detailed memory stats based of libmemstat(3) The rest of the IPv6 MIBs. FreeBSD enterprise MIBs for supporting SNMP configuration (via SNMP SETs) for FreeBSD.
csup: cvs mode support Christoph Mathys cmathys@bluewin.ch - + The wikipage with details about my SoC-project csup project page

During the "Summer of Code" I worked on csup (a rewrite of CVSup in C). It already supported checkout-mode, so my task was to implement support for cvs-mode. The biggest part of the project was to implement support for rcs-files. As "byproducts" I also wrote the necessary code to create nodes/hardlinks and to update files using the rsync-algorithm. For what I know, the code works fine, but errorhandling is practically inexistent.

Errors should be properly handled Support to get fixups The hard part to support rcs file updates is done, but there is no checksum, some options are not honored and the performance could be improved
Sound subsystem improvements Multimedia Mailinglist multimedia@FreeBSD.org Ariff Abdullah skywizard@MyBSD.org.my Alexander Leidinger netchild@FreeBSD.org

Recently a lot of fixes, specially in handling format / rate conversion and general stability was committed to -current. This include fixes for most LOR's and new features (software volume handling for soundcards without volume handling in hardware and the possibility to switch to spdif).

A lot of effort was expended by Ariff (and other people) to come up with those improvements. For this reason Ariff was "punished" with a commit bit, so he is able to commit further improvements on his own.

This work is not integrated into 6.0-RELEASE because of some lose ends (see 'sndctl' below).

You can help by looking at sound related PR's in GNATS and making follow-up's which tell us if a problem still persists or if a PR can be closed because the bug is fixed. Also feel free to submit patches for anything on the TODO list below.

Update manual pages to reflect new features. Fix driver specific issues (via, t4dwave, maestro). Make all drivers MPSAFE. 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, changes are under review)? Closer compatibility with OSS, especially for the upcoming OSS v4. Close a lot of PR's. Document the sound system in the FreeBSD Architecture Handbook .
Ports Tinderbox Joe Marcus Clarke marcus@FreeBSD.org Tinderbox List tinderbox-list@marcuscom.com Tinderbox Homepage

The Ports Tinderbox is a packaged system for building FreeBSD ports in a clean environment. It can be used to test new ports, updates to existing ports, or simply as a package building engine. Tinderbox uses the same underlying code that the official FreeBSD package build cluster, pointyhat, uses. So if a port builds under Tinderbox, it is guaranteed to build on pointyhat.

More and more FreeBSD committers and ports maintainers are starting to use Tinderbox. We just released version 2.1.0 which added much-requested PostgreSQL support as well as fixed many bugs. We expect a 2.1.1 release soon with some additional bug fixes.

With the 2.1.0 release of Tinderbox, we have branched the code base so that we can focus on larger features in our HEAD branch while still producing stable releases on a more frequent basis. The biggest new feature planned for Tinderbox 3.0 is clustering support which is being spearheaded by Ade Lovett (ade).

At this point, we really need help with documentation. Work has begun on creating man pages for the various Tinderbox commands, but we need help to churn them out at as faster rate. If you have strong mdoc fu, and interested in helping us out, please contact marcus@marcuscom.com .
diff --git a/en/news/status/report-june-2006-oct-2006.xml b/en/news/status/report-june-2006-oct-2006.xml index 9b76b05d39..27bfac5023 100644 --- a/en/news/status/report-june-2006-oct-2006.xml +++ b/en/news/status/report-june-2006-oct-2006.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 + 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 + 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 + 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 + 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 + 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 + SoC Student Wiki - + Original Project Proposal + href="http://wiki.freebsd.org/LdapCachedDetailedDescription"> 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 + 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

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 + 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 + 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 + href="http://wiki.freebsd.org/G%C3%A1borK%C3%B6vesd%C3%A1n"> 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 + 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-mar-2005-june-2005.xml b/en/news/status/report-mar-2005-june-2005.xml index 2b066ab98a..23b8f9d715 100644 --- a/en/news/status/report-mar-2005-june-2005.xml +++ b/en/news/status/report-mar-2005-june-2005.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://wikitest.freebsd.org/moin.cgi/SummerOfCode2005 + + 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 + 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 + href="http://wiki.freebsd.org/moin.cgi/CleanupOfNetworkIterfaceApis" />

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

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 + 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 + 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 + href="http://wiki.freebsd.org/moin.cgi/SummerOfCode2005" />

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 + 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 + href="http://wiki.freebsd.org/moin.cgi/NsswitchAndCachingTechnicalDetails" /> - +

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 + 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 + 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-oct-2006-dec-2006.xml b/en/news/status/report-oct-2006-dec-2006.xml index b86a45cf67..0d4b6f06be 100644 --- a/en/news/status/report-oct-2006-dec-2006.xml +++ b/en/news/status/report-oct-2006-dec-2006.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 + 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 + 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

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/platforms/ppc.sgml b/en/platforms/ppc.sgml index 6ab65bbf90..3cc45c9aad 100644 --- a/en/platforms/ppc.sgml +++ b/en/platforms/ppc.sgml @@ -1,250 +1,250 @@ - + ]> &header;

General Information

Introduction

The FreeBSD/ppc project pages contain information about the FreeBSD port to the PowerPC® architecture. As with the port itself, these pages are still a work in progress.

The FreeBSD/ppc port is still a Tier-2 platform. That means it is not being fully supported by our security officer, release engineers and toolchain maintainers.


Latest News


Frequently Asked Questions

  1. How can I install FreeBSD/ppc
  2. Where can I find packages for FreeBSD/ppc?
  3. How to use ports on FreeBSD/ppc?
  4. Who should I contact?

How can I install FreeBSD/ppc?

There are ISO images available for download here. Latest 7.0-CURRENT ISO image can be downloaded here. Please follow instructions given here.

Where can I find packages for FreeBSD/ppc?

Courtesy of Peter Grehan and Tilman Linneweh, you can find some packages here and here. Please note that these packages are now quite outdated. If possible, you should use ports instead.

How to use ports on FreeBSD/ppc?

The easy way to use ports on FreeBSD since 6.0-RELEASE is to use portsnap. Refer to the Handbook if you need assistance to use the Ports Collection.

Who should I contact?

Peter Grehan is the project leader. Contact him if you can contribute code. If you just want to know about the status of this project, check this page regularly or join the FreeBSD/ppc mailing list.


Supported Hardware

The FreeBSD/ppc port should run on any New-World machine. People reported FreeBSD runs on following machines:

Manufacturer Model Submitter (optional links) Notes
Apple iMac G3 350 MHz Martin Minkus Rage 128VR
Apple iMac G3 DV Special Edition David S. Besade (dmesg) None
Apple iMac G3 Revision B Peter Grehan Rage 3D Pro 215GP, accel disabled
Apple eMac 700 MHz Peter Grehan Nvidia GeForce2 MX
Apple Mac Mini G4 1.4 GHz Tilman Linneweh (dmesg) None
Apple Powerbook G4 1.33 GHz Peter Grehan Nvidia GeForce G5200
Apple Aluminium Powerbook G4 1.5 GHz Andreas Tobler None

FreeBSD/ppc mailing list

To subscribe to this list, send mail to freebsd-ppc-subscribe@FreeBSD.org or visit mailman interface.


Known Issues


Documentation, White Papers, Utilities

Other Links of Interest

&footer; diff --git a/en/projects/ideas/index.sgml b/en/projects/ideas/index.sgml index 4b1259602e..8f00e0952c 100644 --- a/en/projects/ideas/index.sgml +++ b/en/projects/ideas/index.sgml @@ -1,1593 +1,1593 @@ - + %developers; vi(1)"> wi(4)"> tar(1)"> ]> &header;

Introduction

The FreeBSD project has hundreds of active developers spread all over the world, and many of them have their own parts of the source-tree that they work on. However, there are always a lot of new interesting projects and ideas that needs to be investigated and evaluated, and this is where the FreeBSD project relies on heroic efforts from volunteers. The following list of possible projects is in no way complete, but it should serve as a nice starting point for volunteers who would like to become committers in the future.

Please note that we cannot guarantee that your work will be included in the FreeBSD source tree. This is because people tend to disagree about specifics in the implementation of new features or functionality. However, if you can find a developer who is interested in your work, and you can get him or her to review it, then you are pretty far on your way to get your code into the FreeBSD source tree.

If you have any non-technical questions about this list, please contact &a.netchild; and &a.joel;. Technical questions should be directed to the Technical contact for each project, or to the hackers mailinglist.


File System

Kernel

Networking

Ports

Security

Userland / Installation Tools

Additional Information


AutoFS

Technical contact: &a.alfred;

Create the autofs file system from a specification. Kernel transport and interaction with the "amd" automounter needs to be completed.

Adam Martin did work on AutoFS for FreeBSD as part of Google Summer of Code 2006. It is not yet ready for prime time, but he is working on getting it commit ready.

Requirements:


Magic Symlinks

Technical contact: &a.jwd;

Patches: http://people.FreeBSD.org/~jwd/magiclinks.tgz

Experimental patches exist against 4-STABLE, though the DragonFly implementation using the setvar utility should be examined (interesting files in the DragonFly CVS: sys/kern/init_sysent.c, sys/kern/kern_varsym.c, sys/kern/syscalls.c, sys/kern/syscalls.master, sys/kern/vfs_lookup.c, sys/sys/syscall-hide.h, sys/sys/syscall.h, sys/sys/syscall.mk, sys/sys/sysproto.h, sys/sys/sysunion.h, bin/varsym/varsym.1, bin/varsym/varsym.c).

Andrey V. Elsukov has begun porting this to FreeBSD, and some initial patches for CURRENT can be found here and here.

Requirements:


MDFS lockups

Fix MDFS lockups when using async operation modes. Revision 1.115 of md.c has a discussion of the problem.

Requirements:


Tarfs

Technical contact: &a.rwatson;

Implement a simple read-only &man.tar.1; file system that could be used as a root file system for network booting, etc. Right now, we mount UFS from an mdimage, but using &man.tar.1; images avoids having to build UFS images with memory disks etc.

Eric Anderson has a working version. He is finishing up some bug testing/fixing and a few features.

Requirements:


TMPFS

Technical contact: &a.netchild;

At the moment FreeBSD includes a memory-based file system called mfs. mfs is just an implementation of the regular ffs - designed for persistent storage - on top of the (volatile) virtual memory system. This means that it uses the same data structures as the on-disk implementation, rendering less than optimal performance and memory usage. With tmpfs, FreeBSD would gain a memory file system which uses less memory and is faster.

Goals:

Rohit Jalan has begun porting the NetBSD tmpfs to FreeBSD. The source and some benchmarks can be found here. Before it can enter the tree locking has to be added. There are also some bugs to take care of. Rohit has no time to work on it in the next months, any volunteer is welcome to continue his work.

Requirements:


Extend UFS2 dump/restore support for UFS2

The UFS2 file system in FreeBSD supports extended attributes. Extended attributes are meta-data associated with vnodes representing files and directories. Unfortunately dump and restore do not backup or restore such attributes. People interested in this should contact &a.mckusick;.

Requirements:


ZFS

Technical contact: &a.pjd;

References: What is ZFS?, Porting ZFS

OpenSolaris™ gained support for a new file system called ZFS (Zettabyte File System) as of build 27a. ZFS is a new approach to file system design and data management, and includes several interesting features such as transactional semantics, snapshots and good scalability. Porting ZFS to FreeBSD is highly encouraged, but should be considered a difficult task since the current implementation of ZFS is very Solaris-specific. &a.pjd; has started porting ZFS to FreeBSD.

Requirements:


CAM layer locking

Technical contact: &a.scottl;

&a.scottl; has been working on this for a while, and he has patches in Perforce.

Requirements:


CPU usage display in top

The current kernel statistics do not know how to calculate the CPU usage of threaded processes. A volunteer has to understand the current statistics model, design a new statistics model and implement it.

Requirements:


Document all sysctls

Technical contacts: &a.mat;, &a.brd;

The sysctl(8) utility retrieves kernel states and allows processes with appropriate privilege to change kernel states. On request it is able to display description lines which document the kernel state. Unfortunately not every sysctl is documented. This task is possible to share with other volunteers. &a.mat has done some development in Perforce, in the mat_sysctl_cleanup branch.

Requirements:


Document the sound subsystem

Technical contacts: &a.netchild;, &a.ariff;

Requirements:


DTrace

Technical contact: John Birrell

URL: Perforce repository, DTrace for FreeBSD

DTrace is a dynamic tracing facility designed by Sun Microsystems and released in Solaris 10. They have since released the major part of Solaris under the banner of OpenSolaris and the Common Development and Distribution License (CDDL) 1.0.

Requirements:


DWARF2 call frame information

A debug kernel is not able to show stack traces with cross exceptions anymore. This is because we do not emit any dwarf2 call frame information for any assembler code, since gdb switched to the dwarf2 format. A volunteer should annotate every assembler file [*.[sS]] with dwarf2 call frame information.

Requirements:


Dynamic module references

Technical contact: &a.sam;

Kernel modules may have dynamic references created during operation. For example net80211 key entries reference functions in the crypto module that implements the key's cipher. Presently there is no standard mechanism for expressing this dependency so that module unloading is disallowed; instead modules must track references and implement their own semantics. This task is to define and implement a general mechanism for tracking these references and use them in handling module unload requests.

Requirements:


Extend ktrace/kdump output

Technical contact: &a.netchild;

The ktrace(1) facility allows to monitor what running processes do. It allows to determine if a process is stuck or if it still does useful work. The goal of this item is to look at the kernel interfaces, add missing "pieces" (e.g. syscall's) to the ktrace output and to extend the output with "decoded" (translating hex/dec values into human readable information, e.g. O_RDONLY in the case of open(2)) information. Some work has been completed and committed, but a few parts still remains. More information is available here.

Also, a related project would be to modify ktrace to write to pipes. Currently the ktrace infrastructure requires the dump output go to a file. It would be useful to be able to instead have it write to pipe, or in fact any type of file descriptor.

Requirements:


Fast syscall support for FreeBSD/i386

Technical contact: Attilio Rao

The instruction pair sysenter and sysexit can contribute to certain performance improvements when a syscall is made on IA32. There is however no implementation of this available for FreeBSD, so a volunteer would have to add sysenter/sysexit support to the kernel. This needs to be properly evaluated and benchmarked though, so a complete implementation should therefore also contain informative benchmarks which shows a clear improvement in performance. It is also important to stress the fact that this project is of research quality and measures should be taken to ensure that no regressions are introduced. Another interesting extension to this project would be to investigate and evaluate the possibility to use mmx/xmm registers to gather syscalls arguments. &a.davidxu; has some work in progress in his sysenter branch in the perforce repository.

Requirements:


FPU subsystem overhaul

Port DragonFly's MMX/XMM optimized memcpy/bcopy/bzero/copyin/copyout code (this includes an FPU subsystem overhaul). Interesting files in the DragonFly CVS are sys/i386/gnu/fpemul/fpu_system.h, sys/i386/i386/bcopy.s, sys/i386/i386/genassym.c, sys/i386/i386/globals.s, sys/i386/i386/machdep.c, sys/i386/i386/math_emu.h, sys/i386/i386/mp_machdep.c, sys/i386/i386/pmap.c, sys/i386/i386/support.s, sys/i386/i386/swtch.s, sys/i386/i386/trap.c, sys/i386/i386/vm86bios.s, sys/i386/i386/vm_machdep.c, sys/i386/include/asmacros.h, sys/i386/include/globaldata.h, sys/i386/include/md_var.h, sys/i386/include/npx.h, sys/i386/include/pcb.h, sys/i386/include/thread.h sys/i386/isa/npx.c, sys/i386/i386/bcopy.s and sys/i386/i386/bzero.s. A more detailed writeup can be found in this compressed file. This includes a mail from Matthew Dillon with suggestions on how to do this in FreeBSD (including a small benchmark which shows 35%-55% speed improvement for at least those benchmarks).

Attilio Rao has almost completed this work, but he would like to receive more feedback.

Requirements:


Generic input device layer

Technical contact: &a.philip;

The kernel is lacking a generic input device layer analogous to the Linux 'input core' layer. Having such a layer would make it easy to write e.g. touchscreen support (&a.philip; has some work-in-progress regarding pointer devices and touchscreen support, but not enough time to also cover keyboard support or other generic features).

Requirements:


Implement and profile algorithms for powerd

Technical contacts: &a.njl;, &a.bruno;

Implement a range of predictive algorithms (and perhaps design your own) and profile them for power usage and performance loss. The best algorithm will save the most power while losing the least performance. This has been discussed on the ACPI mailing list and &a.bruno; has some early patches.

Requirements:


iSCSI

Technical contact: Danny Braniss

Danny Braniss has been working on an iSCSI stack for FreeBSD for some time now. His work is in Perforce, and he has posted several patch sets and had numerous discussions on the mailing lists.

Requirements:


Linuxulator with native amd64 support

FreeBSD provides Linux binary compatibility through a Linux system call table that is invoked when Linux ELF binaries are executed. The implementation on amd64 machines only provides support for 32bit (x86) executables. This needs to be coordinated with the emulation mailinglist regarding the userland part of the linuxulator.

Requirements:


New bus_alloc_resources() API

Technical contact: &a.imp;

Recently, bus_alloc_resources has been added to the kernel. This, coupled with the bus_space_{read,write} family of functions can significantly reduce the setup needed for driver resource allocation. Unfortunately, most of the drivers in the tree have not yet been converted, thus ensuring that the old, bad way continues. What is needed is for someone to go through the drivers in the tree and convert them. After conversion, they need to ensure that they still work on at least some hardware and work with someone to get them committed. &a.imp; is available for review and coordination of committing.

Requirements:


PCI-Hotplug support

Technical contact: &a.bms;

Requirements:


Pluggable Disk Scheduler

Technical contact: Emiliano Mennucci

References: The Pluggable Disk + href="http://wiki.freebsd.org/moin.cgi/Hybrid">The Pluggable Disk Schedulers SoC project, Patches

Our "Pluggable Disk Schedulers" SoC 2005 project resulted in code which solved the problem where large sequential I/O requests, or certain access patterns from one or a few processes, might almost completely starve other processes. It is available as a patch for RELENG_4 and RELENG_5. Unfortunately the code in FreeBSD-current (and RELENG_6) changed too much, so that the patches can not be committed. The goal of this project is to port the pluggable disk schedulers to the GEOM framework.

Requirements:


Process checkpointing

Technical contact: &a.bruno;

Process checkpointing allows to migrate some processes to other machines or to let some processes "survive" a reboot (subject to some constraints). Interesting files in the DragonFly CVS repository are sys/sys/ckpt.h, sys/checkpt/* and sys/kern/imgact_elf.c.

Requirements:


Remove procfs dependencies

Technical contact: &a.mux;

Someone needs to finish the support for PT_SYSCALL in the ptrace() subsystem, and add support for another ptrace() command that will replace the PIOCWAIT and PIOCSTATUS ioctls of procfs (should probably be named PT_WAIT), in order for truss(1) to be able to work without procfs(5). Removing the procfs(5) dependency from ps -e is also desirable.

Requirements:


Rewrite the in-kernel file system syncer

References: mail #1, mail #2

Goals:

Requirements:


Suspend to disk

Technical contacts: &a.njl;, &a.bruno;

Implement a suspend/resume from disk mechanism. Possibly use the dump functions to dump pages to disk, then use ACPI to put the system in S4 or power-off. Resume would require changes to the loader to load the memory image directly and then begin executing again.

Requirements:


Sync FreeBSD i386 boot code with DragonFly

Technical contact: &a.jhb;

DragonFly invested a lot of time to clean up and document it. Additionally they fixed some bugs. Interesting files in the DragonFly CVS are sys/boot/i386/bootasm.h, sys/boot/i386/bootasmdef.c, sys/boot/boot0/*, sys/boot/boot2/*, sys/boot/i386/btx/*, sys/boot/i386/cdboot/*, sys/boot/i386/libi386/amd64_tramp.S, sys/boot/i386/libi386/biosdisk.c and sys/boot/i386/loader/main.c. An interested volunteer has to compare and evaluate both implementations and port interesting/good parts.

Requirements:


Syscons modularization

Separate the syscons code into distinct parts for input, output, console handling (switching, screen savers etc.) and terminal emulation. Also implement vt100 and vt220 emulation to supplement the existing SCO emulation. Add a gettytab(5) capability for specifying the terminal emulation, and add entries to /etc/gettytab for the alternative emulations.

Optionally implement xterm emulation. The top line of the screen should serve as a title bar, displaying the title set with the \e]0; escape sequence as well as the vty number.

Requirements:


Update the Linuxulator

Technical contact: Emulation mailing list, &a.netchild;, Roman Divacky

FreeBSD provides Linux binary compatibility through a Linux system call table that is invoked when Linux ELF binaries are executed. This implementation should be compared with an up-to-date Linux kernel so that important missing syscalls can be added to ensure that all mainstream applications continue to work on FreeBSD. More information about the current status can be obtained from the wiki page.

Requirements:


csup improvements

Technical contact: &a.mux;

URL's: csup homepage, CVSweb

&a.mux; is working on a rewrite of CVSup in C, called csup, and he has imported csup into the FreeBSD base system. It should be ready for use in a stable environment, but there are however still several missing features. The following list should be a good starting point:

Requirements:


Flight mode for the loader

Not every airline allows to use radio transmitters like WLAN-NIC's in airplanes (yet). The goal of this entry is to provide an entry in the loader which prohibits drivers for devices which transmit radio signals to attach to the device. One way of providing this functionality would be to add a menu entry to the loader which sets a "flight mode" loader tunable which would have to be queried by every driver which is able to transmit radio signals to decide if the normal operation is allowed or if the device has to be disabled. The loader-menu should be able to detect this tunable in loader.conf and indicate which way of booting is the current default (in case the user adds it there to be on the safe side in the airplane).

Patches are available for testing here.

Requirements:


HTTP support for pxeboot

Technical contact: &a.rwatson;

Implementing HTTP support for pxeboot would allow us to boot a machine using PXE and pull down a kernel from a web server rather than NFS. This will allow us to install from DHCPD + Apache or even just DHCPD + a remote web server.

Requirements:


IAPP preauthentication in hostapd

Technical contact: &a.sam;

IAPP is the Inter-Access Point Protocol, a protocol by which cooperating access points communicate about associated wireless stations. FreeBSD lacks support for this aspect of the protocol in the hostapd program used to construct a WPA-enabled access point. This task would port the Linux code that exists to support IAPP in hostapd. This mostly involves rewriting some user-mode multicast code and testing the result.

Requirements:


NFS Lockd (improve semantics)

Technical contact: &a.alfred;

Requirements:


NFS Lockd (kernel implementation)

Technical contact: &a.alfred;

Moving the lockd implementation into the kernel provides several key performance and semantic improvements.

Requirements:


Super tunnel daemon

Technical contact: &a.phk;

IP can be tunneled over IP, UDP, TCP, SSH, DNS, HTTP and many other protocols, and this means that it is often possible to get a connection out through a firewall, but each of these encapsulations require prior setup of a specific program for each encapsulation, and the user must experiment to decide which one to use at any one time. The super tunnel daemon should implement pluggable encapsulations and make it automatically select the most efficient encapsulation that works at any one time. The user should not notice transitions from one encapsulation to another, apart from maybe a small delay.

Wanted features (not sorted or prioritized):

Requirements:


TCP/IP regression test suite

Technical contact: &a.rwatson;

Design and implement a wire level regression test suite to exercise various states in the TCP/IP protocol suite. Ideally with IPv4 and IPv6 support.

Requirements:


Update wi

Many new and useful features (e.g. crypto protocols like WPA) of the WLAN infrastructure in the kernel are not used in &man.wi.4;. While &man.wi.4; cards are old and can not compete with recent wireless cards, they are still in use in a lot of places. The goal of this item is to examine the WLAN infrastructure and other WLAN drivers in the tree for nice features and port/use them in the &man.wi.4; driver.

Requirements:


WPA2 preauthentication in hostapd

Technical contact: &a.sam;

WPA2 is the authentication protocol defined as part of the IEEE 802.11i specification. This protocol is now commonly used to authenticate wireless stations to access points. Part of this protocol is the ability to pre-authenticate a station with one or more access points so that roaming can happen quickly. FreeBSD lacks support for this aspect of the protocol in the hostapd program used to construct a WPA-enabled access point. This task would port the Linux code that exists to support pre-authentication in hostapd. This mostly involves rewriting some user-mode multicast code and testing the result.

Requirements:


Zeroconf

Technical contact: Fredrik Lindberg

URL: Zeroconf on FreeBSD NetBSD zeroconf SoC project

Add Zeroconf (Rendezvous/Bonjour) support to FreeBSD.

Requirements:


Automatic registering of UID and GID

Some sort of mechanism for adding/removing users/groups automatically, rather than using home-brew pkg-install scripts. It would need to be a bit more sophisticated than only registering the UID/GID, to deal with setting the other passwd(5) fields; a port might need more than one user; some ports might want a specific ID, others just the next available one, etc, etc.

Perhaps ports that have UIDs registered in the handbook could also be registered in a file inside /usr/ports, which the framework would use in UID creation requests.

Requirements:


Cleanup of USE and WITH variables

Technical contact: &a.erwin;

Make these more consistent. WITH_* should be user-settable variables while USE_* only is for internal use in the ports.

Requirement:


COMPAT_43TTY

Technical contact: Gardner Bell

Some ports may break when removing COMPAT_43TTY from the kernel configuration since they assume old ioctl's when they identify FreeBSD. The goal of this entry is to:

Requirements:


Improvements of OPTIONS

The current OPTIONS infrastructure can be improved in several ways.

Requirements:


Package tools improvements

The pkg_* tools, which deal with the installation of pre-build binary package of ports, could do with a code cleanup or maybe even a rewrite from scratch. Some features of the ports tree are not supported by the pkg_* tools, e.g. versioned dependencies.

Requirements:


Distributed audit daemon

Technical contact: &a.rwatson;

Create a tool that manages per-machine audit records and submits them to a central site for processing and long-term archiving/management. Ideally with support for SSL (or the like) so they do not travel on the wire in the clear.

Requirements:


BSD-licensed ELF Tools

Technical contact: &a.jkoshy;

Create BSD-licensed versions of ELF processing tools (e.g., nm and strip) using the ELF(3) and GELF(3) API set in FreeBSD -CURRENT.

Requirements:


Build options improvements

Technical contact: &a.netchild;, Gardner Bell

The new "delete-old" and "delete-old-libs" target in /usr/src for 6.1 and -CURRENT should be extended to support the WITHOUT_* knobs, e.g. WITHOUT_RESCUE or WITHOUT_CRYPT, and delete files which are covered by those knobs. Some switches have already been covered. You can view a list of all switches and what effect they have here.

Requirements:


Import NSS LDAP

Since LDAP is very popular today, it would be beneficial to have NSS-LDAP support available by default. The license of the NSS LDAP module should however be investigated first.

Benefits:

Michael Bushkov is working on + href="http://wiki.freebsd.org/LdapCachedOriginalProposal">working on importing NSS LDAP as part of Google Summer of Code 2006.

Requirements:


Libprocstat and libnetstat

Technical contact: &a.rwatson;

Create, similar to libmemstat, wrapper libraries to support monitoring and management applications to avoid direct use of kvm. Three parts to the project: for each of the above, add kernel support to export data in a less ABI-sensitive way using sysctl, write a library to present the information in an extensible way to applications, and update applications to use the library instead of reaching directly into kernel memory / consuming sysctls. The goal is to allow the kernel implementation to change without breaking applications and requiring them to be recompiled, and to allow monitoring functions to be extended without breaking applications. This should also facilitate writing new classes of monitoring and profiling tools.

Requirements:


Move HESIOD to a NSS module

Currently HESIOD is build statically into libc. Since LDAP is more popular today, it is not necessary to provide this name service to every consumer of libc by default.

Benefits:

Michael Bushkov is working on + href="http://wiki.freebsd.org/LdapCachedOriginalProposal">working on moving HESIOD out of libc as part of Google Summer of Code 2006.

Requirements:


Move NIS/YP to a NSS module

Currently NIS/YP is build statically into libc. Since LDAP is more popular today, it is not necessary to provide this name service to every consumer of libc by default.

Benefits:

Michael Bushkov is working on + href="http://wiki.freebsd.org/LdapCachedOriginalProposal">working on moving NIS/YP out of libc as part of Google Summer of Code 2006.

Requirements:


Multibyte collation support

Currently FreeBSD supports only single byte collation. Multibyte collation support would be nice.

Benefits:

Requirements:


NDMP data server

URL: The NDMP Initiative

The NDMP initiative was launched to create an open standard protocol for network-based backup for network-attached storage. Major commercial storage systems come with a compliant service. This allows major commercial backup systems to backup such NAS devices. Including a NDMP disk server into FreeBSD would allow to play nice out of the box (modulo some configuring) regarding backups in a corporate environment.

Requirements:


Performance tracking

Technical contact: &a.brooks;

The "performance tracking" entry is meant to monitor the performance of FreeBSD itself over the development time, e.g. someone makes a change to the kernel and the tracking system is able to show the performance impact to various subsystems (microbenchmarks) or to real world applications like apache or mysql (macrobenchmarks). The tracking system should be able to do this with multiple machines and multiple configurations (while the goal is not to compare configurations or machines (but different FreeBSD versions) we would not mind if it is also able to do this. This does not need to be implemented from scratch, it is allowed/encouraged to reuse existing free software.

Requirements:


Port libumem to FreeBSD

Solaris 9 and later versions include libumem, a user space slab allocator that includes debugging features we may want to have on FreeBSD too.

Online references for libumem are (in suggested reading order):

Requirements:


PXE Installer

It would be great to have a bundled PXE installer. This would allow one to boot an install server from a FreeSBIE live CD-ROM on one box, set the BIOS on subsequent boxes to PXE boot, and then have the rest happen by magic. This would be very helpful for installing cluster nodes, etc.

Markus Boelter is working on a bundled + href="http://wiki.freebsd.org/MarkusBoelter">working on a bundled PXE installer as part of his BSDInstaller project withhin the Google Summer of Code 2006. The PXE Installer is working but some non-PXE related issues have to be solved before it can enter the tree.

Requirements:


Regression testing system

Technical contact: &a.netchild, &a.nik;

&a.nik; has written a regression test infrastructure using Perl. More of the regression tests should be made to work with libtap.

Porting LTP might also be a good idea.

Requirements:


RFC3442 support

Technical contact: &a.emaste;

URL's: RFC3442

Add support for RFC3442, the Classless Static Route option, to the DHCP client. The original DHCP specification includes a route option but it supports only class-based routes, which are not very useful today. RFC3442 adds support for specifying the netmask width for each static route. Note that the ISC dhcp server does not natively support RFC3442, but custom options of arbitrary byte strings can be encoded in its configuration file.

Andrey V. Elsukov has implemented RFC3442 support for the FreeBSD dhclient and has filed a problem report containing a patch.

Requirements:


Sysinstall

Requirements:


Tar output mode for installworld

Technical contact: &a.rwatson;

Instead of installing using install, mkdir, mtree, etc, directly construct a tarball. This would allow creating install distributions without root access, as setuid etc would never hit the local disk. This would require some retrofitting of our installation mechanisms.

Requirements:


Unicode support in vi

Many base system utilities grew multibyte support in 2004. It would be nice to continue this trend by teaching &man.vi.1; to display and edit documents in UTF-8 encoding.

Requirements:


Projects at FreeBSD.org

Additional projects may be found by browsing the FreeBSD Development Projects page. The most prominent projects are:

Do not forget to have a look at the other projects too or by viewing some of the recent Developer Status Reports.


Technical contacts

If you are interested in working on a project not explicitly mentioned above, you may want to contact one of the potential technical contacts below:

Additionally, there are a lot of interesting mailing lists that can be used when searching information about specific subjects.


&footer; diff --git a/en/projects/netperf/cluster.sgml b/en/projects/netperf/cluster.sgml index 6b498c262a..2f5164c2a4 100644 --- a/en/projects/netperf/cluster.sgml +++ b/en/projects/netperf/cluster.sgml @@ -1,211 +1,211 @@ - + %developers; ]> &header;

Contents

Introduction

The netperf cluster provides a multi-node, SMP-capable, network functionality and performance test capability for the FreeBSD Project, supporting a variety of on-going sub-projects including the netperf project, Dingo project, and on-going work on high performance threading. The cluster is available on a check out basis for developers, who must request accounts be created by contacting one of the netperf cluster admins.

Donors

The netperf cluster was made possible through the generous donation of a number of organizations, including:

Donations to support the netperf cluster have an immediate and substantial impact on the success of a number of on-going performance projects, providing access to high-end hardware to a large number of developers. If you or your company are interested in helping to support continued development of the netperf cluster as a resource for FreeBSD development, please contact the netperf cluster admins.

Netperf Cluster Admins

The FreeBSD netperf cluster is managed by a small team of developer/administrators to support SMP development and performance testing on high-end hardware. If you have any questions, including questions about access to the cluster as a developer, or about possible future donations of testing hardware, please feel free to contact the following:

Netperf Cluster Resources

The Netperf cluster consists of several systems interconnected using a management network, as well as individual back-to-back gigabit ethernet links for a test network. The following systems are available as testing resources on a check-out basis:

The current serial port and network configuration of test systems, as well as password information, can be found in /etc/motd on zoo. We are currently interested in adding amd64 and em64t hardware to the cluster.

Netperf Cluster Procedures

As the netperf cluster is a centrally managed and shared resource, understanding and consistent following of its procedures is important. In particular, following of the procedures makes it easier for developers to have reasonable expectations about the configuration of systems in the cluster, as well as to avoid treading on each others toes.

Pointers and documentation on Netperf Cluster procedures can be found - on the + on the Netperf Cluster Pointers page on the FreeBSD wiki.

Current Configuration Notes and News

A few hopefully up-to-date configuration notes that may be relevant to users of the netperf cluster:

&footer; diff --git a/en/projects/summerofcode-2005.sgml b/en/projects/summerofcode-2005.sgml index 4e898a31a8..c63dca21d1 100644 --- a/en/projects/summerofcode-2005.sgml +++ b/en/projects/summerofcode-2005.sgml @@ -1,131 +1,131 @@ - + %developers; ]> &header;

The FreeBSD Project is proud to have taken part in the Google Summer of Code 2005. By all accounts, the FreeBSD participation in this program was an unqualified success. We received over 350 applications for student projects, amongst which 19 were selected for funding. These student projects included improved installation tools, filesystem enhancements, new utilities, and more. Many of the students have continued working on their FreeBSD projects even after the official close of the program. We are happy to see continued development in our source code repository by these talented young programmers and we look forward to working with more students in the future.

2005 Student Projects

Student:Anders Persson
Summary: FreeBSD userland/kernel interface cleanups
Mentor: &a.brooks; <brooks@FreeBSD.org>
 
Student: Andrew Turner
Summary: BSD Installer integration
Mentor: &a.re;, &a.ru; <ru@FreeBSD.org>, &a.jhb; <jhb@FreeBSD.org>
 
Student: Brian Wilson
Summary: UFS Journalling
Mentor: &a.scottl; <scottl@FreeBSD.org>
 
Student: Chris Jones
Summary: Gvinum 'move', 'rename', etc..
Mentor: &a.le; <le@FreeBSD.org>, &a.phk; <phk@FreeBSD.org>
 
Student: Christoph Mathys
Summary: Rewriting CVSup in C, the Csup project
Mentor: &a.mux; <mux@FreeBSD.org>
 
Student: Csaba Henk
Summary: SSH based networking filesystem
Mentor: &a.scottl; <scottl@FreeBSD.org>
 
Student: Dario Freni
Summary: FreeSBIE integration
Mentor: &a.murray; <murray@FreeBSD.org> / &a.re;
 
Student: Emiliano Mennucci
Summary: pluggable disk scheduler
Mentor: &a.luigi; <luigi@FreeBSD.org>
 
Student: Ivan Voras
Summary: GEOM Journaling Layer (gjournal),
Mentor: &a.phk; <phk@FreeBSD.org>, &a.pjd; <pjd@FreeBSD.org>
 
Student: Michael Bushkov
Summary: nsswitch / caching daemon
Mentor: &a.brooks; <brooks@FreeBSD.org>, &a.nectar; <nectar@FreeBSD.org>
 
Student: Paolo Pisati
Summary: libalias improvements
Mentor: &a.luigi; <luigi@FreeBSD.org>
 
Student: R. Tyler Ballance
Summary: Implement MacOS launchd(8) for FreeBSD
Mentor: &a.murray; <murray@FreeBSD.org>
 
Student: RuGang Xu
Summary: K kernel meta-language project
Mentor: &a.gnn; <gnn@FreeBSD.org>, &a.phk; <phk@FreeBSD.org>
 
Student: Samy Al Bahra
Summary: Mandatory Access Control (MAC)
Mentor: &a.rwatson; <rwatson@FreeBSD.org>
 
Student: Victor Cruceru
Summary: SNMP monitoring
Mentor: &a.harti; <harti@FreeBSD.org>
 
Student: Yanjun Wu
Summary: SEBSD
Mentor: &a.rwatson; <rwatson@FreeBSD.org>
 
Student: Emily Boyd
Summary: Website improvements
Mentor: &a.murray; <murray@FreeBSD.org>
 
Student: Shteryana Shopova
Summary: bsnmp
Mentor: &a.philip; <philip@FreeBSD.org>

FreeBSD Summer of Code 2005 in the Press

&footer; diff --git a/en/projects/summerofcode-2006.sgml b/en/projects/summerofcode-2006.sgml index 7d588a6489..f86d61e8b5 100644 --- a/en/projects/summerofcode-2006.sgml +++ b/en/projects/summerofcode-2006.sgml @@ -1,386 +1,386 @@ - + %developers; ]> &header;

The FreeBSD Project is proud to have taken part in the Google Summer of Code again in 2006. By all accounts, the FreeBSD participation in this program was an unqualified success. We received over 150 applications for student projects, amongst which 14 were selected for funding. 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.

We are happy to report than all 14 of our students this year successfully completed the program. There were many other strong applications which we unfortunately couldn't fund and many of these students also spent the summer working on FreeBSD. We are happy to see continued development in our source code repository by these talented young programmers and we look forward to working with more students in the future.

Information about the student projects is available from our Summer of Code wiki and all of the code is checked into Perforce. The summaries below were submitted by the individual students and their mentors.

2006 Student Projects

Student:Clement Lecigne
Summary:IPv6 stack vulnerabilities
Mentor: &a.gnn; <gnn@FreeBSD.org>
Summary:

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 on line 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 now also has a new engineer to help work on the code.

 
Student:Chris Jones
Summary:Jail Resource Limits
Mentor: &a.kmacy; <kmacy@FreeBSD.org>
Summary:

Chris added support for limiting CPU and memory use by jails. This allows fairer sharing of 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.

+href="http://wiki.freebsd.org/JailResourceLimits">JailResourceLimits.

 
Student:Ivan Voras
Summary:GEOM storage virtualization (gvirstor)
Mentor: &a.pjd; <pjd@FreeBSD.org>
Summary:

The goal of this project was to create a virtual storage class for the GEOM framework in FreeBSD that would allow creating "overcommitted" storage devices, with a size larger than that of available physical storage (e.g. hard drives). The project was completed successfully, and the result is available on the project's home page. It's expected the project will be included in FreeBSD CVS after it gets more testing or after FreeBSD 6.2 is released, whichever comes first.

Working on the project was very pleasant, there was enough documentation and the mentor was very helpful and responsive. Google's team was apt and provided ample support to the participants of the project. The project will help both OEMs of embedded devices (such as NAS devices) and big users to make use of FreeBSD for large storage projects.

 
Student:Paolo Pisati
Summary:Study analyze and improve the interrupt handling infrastructure
Mentor: &a.jhb; <jhb@FreeBSD.org>
Summary:

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:

  • feedback from filters (the system finally knows if any handler has serviced an interrupt or not, and can react consequently).
  • lower latency/overhead for shared interrupt line.
  • previous experiments with interrupt filtering showed an increase in performance against the plain ithread model

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

 
Student:Yuan Jue
Summary:Porting Xen to FreeBSD.
Mentor: &a.kmacy; <kmacy@FreeBSD.org>
Summary:

Successfully got a domU kernel usable for installation. dom0 support still in progress. Kip and Yuan Jue are continuing to work together on this project after the official end of SoC. Yuan Jue has published a more comprehensive FreeBSD/Xen howto here.

 
Student:Adam David Alan Martin
Summary:AutoFS - An Automounting Filesystem implementation for FreeBSD
Mentor: &a.benno; <benno@FreeBSD.org>
Summary:

Adam used PseudoFS as a starting point for an in-memory representation of an Automounter Filesystem. This involved making a few tweaks to PseudoFS to allow AutoFS to detect lookups. At this time, the filesystem works and sends signals up to a userland program. Adam plans to continue working on this, with Benno and Erez, to get AutoFS working with Erez Zadok's AMD. The goal is to merge this work into -CURRENT.

 
Student:Ryan Beasley
Summary:OSSV4 Sound support
Mentor: &a.ariff; <ariff@FreeBSD.org>, &a.netchild; <netchild@FreeBSD.org>
Summary:

This summer was spent adding support for 4Front's OSSV4 API to FreeBSD. A large number of audio ioctls were added, with a few +href="http://wiki.freebsd.org/RyanBeasley/ioctlref">ioctls were added, with a few pending, and there is still work left to do with mixers/mixer extensions (4Front's specs are still in flux) and MIDI (low priority because, IIRC, MIDI still needs maintainership). Ryan plans to continue work related to the mixer extensions as best he can while attending university full-time. All of the code is committed to FreeBSD-current.

 
Student:Markus Boelter
Summary:Bundled PXE Installer
Mentor: &a.ps; <ps@FreeBSD.org>
Summary:

For me, 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 to some challenges within the project forced me to look behind the scenery of FreeBSD. The result was a better understanding of the overall system. Getting in touch with a lot of developers directly also gave a very special spirit to the Summer of Code.

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

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

 
Student:Shteryana Sotirova Shopova
Summary:Integrated SNMP monitoring
Mentor: &a.bz; <bz@FreeBSD.org>
Summary:

After working on bsnmptools last year, Shteryana concentrated on the server side this year. An implementation for if_vlan(4) monitoring was dropped from the original proposal in favor of extended support for the new if_bridge(4) network bridge device monitoring module. In addition to RFC 4188 single bridge support and extending the kernel to get access to all the information a private MIB was designed. This was needed to be able to monitor multiple bridges supported by FreeBSD and adding an extended bridge management interface and definitely was the greatest technical challenge of the project.

The project was successfully completed - including code review - and the kernel part has already been committed to CURRENT. User space part will follow soon. For STABLE a patch is available too (see wiki). Shteryana is going to continue her work on bsnmpd and is already planning support for if_vlan(4) and jails monitoring modules. We are happy that she will stay with the FreeBSD project and continue to work on bsnmp and FreeBSD after SoC.

See also ShteryanaShopova +href="http://wiki.freebsd.org/ShteryanaShopova">ShteryanaShopova and SnmpBridgeModule.

+href="http://wiki.freebsd.org/SnmpBridgeModule">SnmpBridgeModule.

 
Student:Michael Bushkov
Summary:Nss-LDAP importing and nsswitch subsystem improvement
Mentor: &a.ume; <ume@FreeBSD.org>
Summary:

The project consisted of 5 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 (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. I think that task can be considered successfully completed (the patch is available).
  3. nss_ldap rewriting. Though, this task was not clearly mentioned in the original proposal, during the SoC we found reasonable 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 nss_ldap nsswitch module, though, behaves mostly similar to the PADL's one, has different (I believe - more flexible) architecture. Though it's basically finished, several useful features from the PADL's nss_ldap still need to be implemented. But, despite the lack of some features, I believe, that this task can be considered to be successfully completed. (Missing features will be implemented ASAP - hopefully during the September).
  4. nss_ldap importing into the base. 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 to import 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 precaching was introduced as the optimization. This task was completed (the patch is available). However there is an area for improvements - more precise and extensive performance analysis should be made and more optimizations need to be introduces. This will be done in the nearest future.

Though none of the code was committed yet into the main, 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.

More detailed information about the project can be found at LdapCachedDetailedDescription.

 
Student:Roman Divacky
Summary:Linux emulation layer update
Mentor: &a.netchild; <netchild@FreeBSD.org>
Summary:

The goal was to implement the basics of 2.6.16 support. This has been implemented, and several programs from Fedora Core 4 work now with osrelease=2.6.16. More complex applications do expose some bugs, however. All of Roman's SoC work is in FreeBSD-current (the default compatibility is still 2.4.2) and his current focus is to fix the remaining bugs as time permits while attending university full-time. A more detailed status of what is supported and what is not can be found in the linux kernel project wiki.

 
Student:Spencer Whitman
Summary:K Kernel Meta-Language
Mentor: &a.phk; <phk@FreeBSD.org>
Summary:

Spencer investigated implementing CPP macros in the first stage of the prototype 'K' compiler. Spencer has expressed interest to continue working with us on the 'K' project.

 
Student:Dongmei Liu
Summary:Porting the seref policy and setools to SEBSD
Mentor: &a.csjp; <csjp@FreeBSD.org>
Summary: 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.
 
Student:Gábor Kövesdán
Summary:Improving FreeBSD Ports Collection Infrastructure
Mentor: &a.erwin; <erwin@FreeBSD.org>
Summary:

This project consists of the following tasks:

  1. New handling for i386 binary ports
  2. Cleanup: use ECHO_CMD and ECHO_MSG in bsd.port.mk properly
  3. Add a 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 are completed and the next two items are being worked on. The DESTDIR support was more complicated than presumed, so it took more time and the student didn't have time to finish the other items. Gábor will continue working on these and other ports related tasks and FreeBSD is happy to have interested him to keep working on ports and ports infrastructure.

-

More details can be found at +

More details can be found at Gábor's Wiki page.

 
&footer; diff --git a/en/projects/summerofcode.sgml b/en/projects/summerofcode.sgml index f8846194ab..de8231b00f 100644 --- a/en/projects/summerofcode.sgml +++ b/en/projects/summerofcode.sgml @@ -1,137 +1,137 @@ - + %developers; ]> &header;

The FreeBSD Project was a successful mentoring organization in the Google Summer of Code. This program funds students to contribute to an open source project over the summer break. We had dozens of successful students working on FreeBSD as part of this program in 2005 and 2006.

Past Student Projects

For a complete list of student projects from previous years, visit:

See also our FreeBSD +href="http://wiki.freebsd.org/moin.cgi/SummerOfCode2006">FreeBSD SoC2006 Wiki and the Google FreeBSD SoC 2006 pages.

Example Proposal Ideas

Please see the general FreeBSD Project Ideas page. The recent Developer Status Reports are also a good source of information about upcoming projects. A Summer of Code-specific addendum may be posted here in Spring 2007.

Mentors

A list of potential mentors will be posted here when the 2007 program is announced.

Proposal Guidelines

Students are responsible for writing a proposal and submitting it to Google before the application deadline. The following outline was adapted from the Perl Foundation open source proposal HOWTO. A strong proposal will include:

Infrastructure Provided to Students

In 2005 and 2006, the FreeBSD Project provided access to the FreeBSD Perforce revision control infrastructure in order to facilitate student collaboration, provide public access and archiving for the on-going student projects, and to help mentors and the community monitor on-going work. It is expected that students participating in future programs will be offered the same facilities. Students will also be asked to maintain wiki pages on their on-going projects. In the past, e-mail, IRC, and instant messaging have proven popular among students and mentors, and students participating in the FreeBSD summer program are encouraged to use these and other electronic communication mechanisms to become active in the community.

Frequently Asked Questions

&footer; diff --git a/share/sgml/news.xml b/share/sgml/news.xml index b5471e7804..7b89a28816 100644 --- a/share/sgml/news.xml +++ b/share/sgml/news.xml @@ -1,2750 +1,2750 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.45 2007/01/18 17:18:34 db Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.46 2007/01/31 14:52:10 rafan Exp $ 2007 1 31

Enhanced commit privileges: Rong-En Fan (src, ports)

18

New committer: Diane Bruce (ports)

16 October-December, 2006 Status Report

The October-December, 2006 Status Report is now available with 41 entries.

15 FreeBSD 6.2-RELEASE is Now Available

FreeBSD 6.2-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 6.2. The Release Information page has more information about FreeBSD releases.

9 Hungarian FreeBSD Documentation Project Launches

Under the supervision of FreeBSD developer Gábor Kövesdán, the Hungarian translation goes live. This official translation, completed by the Hungarian FreeBSD Documentation Project, adds support for documentation in another language. For more information about the ongoing work of the HFDP team, please refer to the Translations page of the FreeBSD Documentation Project.

2006 12 27

New committer: Jordan Sissel (src)

FreeBSD 6.2-RC2 Available

The second release candidate of FreeBSD 6.2 has been announced. ISO images and distributions for Tier-1 architectures are now available on most of the FreeBSD mirror sites.

26

New committer: Dryice Liu (ports)

22

New committer: Juergen Lock (ports)

10 Podcast Interview with FreeBSD Developer Joseph Koshy

In his latest bsdtalk podcast, Will Backman interviews FreeBSD Developer Joseph Koshy about his recent work on libElf. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk087.mp3.

7 Podcast Interview with FreeBSD Developer Kip Macy

In his latest bsdtalk podcast, Will Backman interviews FreeBSD Developer Kip Macy about the FreeBSD/sun4v port. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk086.mp3.

5

New committer: Nicola Vitale (ports)

New committer: Gábor Kövesdán (ports)

1 Podcast Interview with FreeBSD Developer Tom McLaughlin

In his latest bsdtalk podcast, Will Backman interviews FreeBSD Developer Tom McLaughlin about the BSD# project and Mono on FreeBSD. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk085.mp3.

11 29

New committer: David Thiel (ports)

Podcast Interview with FreeBSD Release Engineer Bruce Mah

In his latest bsdtalk podcast, Will Backman interviews FreeBSD Release Engineer Bruce Mah about the upcoming 6.2 release of FreeBSD. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk084.mp3.

17 FreeBSD 6.2-RC1 Available

The first release candidate of FreeBSD 6.2 is now available. ISO images for Tier-1 architectures are now available on most of the FreeBSD mirror sites.

16 FreeBSD Foundation Fall Fundraising Campaign

The FreeBSD Foundation is kicking off its Fall Fundraising Campaign. The success of this effort will have a large impact on the Foundations budget for the next year.

14 FreeBSD.org systems move postponed

The move of the FreeBSD.org systems which was scheduled for Monday November 13th has been postponed. Currently it is expected to happen on Friday November 17th (still US Pacific Standard Time).

12 FreeBSD/sun4v Install / Live CD Available

The port of FreeBSD to Sun's UltraSparc-T1 architecture has produced an install ISO containing a live file system. More information is available at the FreeBSD/sun4v Project page.

New committer: Jeremy Chadwick (ports)

7

New committer: Babak Farrokhi (ports)

New committer: Frank J. Laszlo (ports)

5 FreeBSD.org systems moving

The FreeBSD.org servers handling mail, web, CVS etc. for the FreeBSD Project will be moving to a new data-center soon. The move is currently scheduled to take place on Monday November 13th (US Pacific Standard Time).

Due to preparations for the move there may be short outages when FreeBSD.org services are not working in the time up to the actual move. On the day of the move only the static parts (IE. plain HTML pages, no CGI) of http://www.FreeBSD.org/ will work.

10 31 FreeBSD 6.2-BETA3 Available

The third beta release of FreeBSD 6.2 is now available. ISO images for Tier-1 architectures are now available on most of the FreeBSD mirror sites.

25 Summer of Code Projects Completed

We are happy to report that all 14 students successfully completed their FreeBSD Summer of Code projects. Congratulations to both mentors and students, and thanks to Google for running this program and providing funding.

19 June-October, 2006 Status Report

The June-October, 2006 Status Report is now available with 49 entries.

14 GNOME 2.16.1 Released for FreeBSD

GNOME 2.16.1 has been released, and merged into the FreeBSD ports tree. Check out the FreeBSD GNOME homepage for the official announcement as well as important upgrade instructions.

8

New committer: Shteryana Shopova (src)

5 FreeBSD 6.2-BETA2 Available

The second beta release of FreeBSD 6.2 is now available. ISO images for Tier-1 architectures are now available on most of the FreeBSD mirror sites.

9 28

New committer: Soeren Straarup (ports)

21

New committer: Jack F. Vogel (src)

FreeBSD 6.2-BETA1 Available

The first beta version of FreeBSD 6.2 is now available. The BETA1 ISO images are available on most of the FreeBSD Mirror sites.

20

New committer: Chin-San Huang (doc)

18

New committer: Stanislav Sedov (ports)

12

New committer: Alexander Botero-Lowry (ports)

1

New committer: Randall R. Stewart (src)

8 20

New committer: Daniel Geržo (doc)

7 26 New FreeBSD Core Team elected

FreeBSD Core Team elections have been finished. The announcement is available here.

19 Podcast Interview with FreeBSD Developer Greg Lehey

In his latest bsdtalk podcast, Will Backman interviews FreeBSD developer Greg Lehey about his work on FreeBSD and MySQL. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk055.mp3.

18

New committer: Jose Alonso Cardenas Marquez (ports)

13 Podcast Interview with FreeBSD Developer Pawel Jakub Dawidek

In his latest bsdtalk podcast, Will Backman interviews FreeBSD developer Pawel Jakub Dawidek about his work on FreeBSD, most notably the GEOM Journal project. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk052.mp3.

12 April-June 2006 Status Report

The April-June, 2006 status report is now available with 39 entries.

5 The FreeBSD Foundation Releases Java Binaries for FreeBSD 5.5, 6.1, and the AMD64 Platform

The FreeBSD Foundation now provides native Java JDK and JRE 1.5 binaries based on the latest UPDATE7 from Sun Microsystems. For further details, please see the FreeBSD Foundation press release.

6 24

New committer: Rong-En Fan (ports)

21

New committer: Boris Samorodov (ports)

19

New committer: Shaun Amott (ports)

5

New committer: Konstantin Belousov (src)

New committer: Martin Wilke (ports)

5 30 Funded Student Projects Announced

The FreeBSD Project received over 120 applications for Google's Summer of Code program, amongst which 14 were selected for funding. Unfortunately, there were far more first rate applications than available spots for students. However, we encourage students to work together with us all year round. The FreeBSD Project is always willing to help mentor students learn more about operating system development through our normal community mailing lists and development forums. Contributing to an open source software project is a valuable component of a computer science education and great preparation for a career in software development.

A complete list of the winning students and projects is available here. A Summer of Code wiki is also available with additional information.

+href="http://wiki.freebsd.org/moin.cgi/SummerOfCode2006">Summer of Code wiki is also available with additional information.

New committer: <a href="mailto:piso@FreeBSD.org">Paolo Pisati</a> (src). An SoC2005 alumnus.

Paolo Pisati, a successful student from last year's Summer of Code program, has continued working with the FreeBSD Project and is now a full src/ committer.

26 Podcast Interview with FreeBSD Developer Poul-Henning Kamp

In his latest bsdtalk podcast, Will Backman interviews FreeBSD developer Poul-Henning Kamp about his work on FreeBSD. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk048.mp3.

25 FreeBSD 5.5-RELEASE Now Available

FreeBSD 5.5-RELEASE is now available. Please check the errata before installation for any late-breaking news and/or issues with this release. The Release Information page has more information about FreeBSD releases.

21 FreeBSD Self-Hosting on the Sun T1 Processor

FreeBSD is now able to complete a full run of the "make buildworld" command on machines running the Sun T1 processor with CoolThreads technology, and is thus self-hosting. The code currently resides in the FreeBSD Perforce revision control system and will be merged to the official CVS repository when support for logical domaining is complete. A log file of the boot process can be found here.

17

New committer: Thomas Wintergerst (src)

16 FreeBSD 5.5-RC1 Available

The first and most likely last release candidate of FreeBSD 5.5 is now available. The RC1 ISO images are available on most of the FreeBSD Mirror sites.

8 FreeBSD 6.1-RELEASE is Now Available

FreeBSD 6.1-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 6.1. The Release Information page has more information about FreeBSD releases.

Summer of Code Deadline Extended 1 day

The application period for Google's Summer of Code 2006 program has been extended until Tuesday 11:00AM PDT. More information about FreeBSD specific projects and potential mentors is available here.

7

New committer: Ion-Mihai Tetcu (ports)

6

New committer: Stefan Walter (ports)

New committer: Andrew Pantyukhin (ports)

2 FreeBSD 6.1-RC2 Available

The second and most likely last release candidate of FreeBSD 6.1 is now available. The RC2 ISO images are available on most of the FreeBSD Mirror sites.

1 Accepting Applications for Summer of Code

The FreeBSD Project is now accepting applications for the previously announced Google Summer of Code 2006 program. This program will provide funding for students to spend the summer contributing to open source software projects. A list of FreeBSD specific projects and potential mentors is available here.

Once a suitable project and mentor have been identified, interested students should complete a proposal and submit it to Google. Proposals are now being accepted and the final deadline is May 8, 2006 at 17:00 Pacific Daylight Time (midnight May 9, 2006 0:00 UTC). Winning candidates will be announced in late May. Please see the Student FAQ for more information.

New Driver for HighPoint RocketRAID 232x SATA RAID Controllers

A driver for HighPoint's RocketRAID 232x series of SATA RAID controllers, rr232x(4), has been added to FreeBSD-CURRENT as well as the RELENG_6 and RELENG_6_1 branches. It will be included in the upcoming FreeBSD 6.1-RELEASE.

Enhanced commit privileges: Xin LI (src, doc, ports)

4 30

New committer: Lars Balker Rasmussen (ports)

15 Podcast Interview with FreeBSD Developer Joe Marcus Clarke

In his latest bsdtalk podcast, Will Backman interviews FreeBSD developer Joe Marcus Clarke about the GNOME desktop environment on FreeBSD. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk032.mp3.

14 January-March 2006 Status Report

The January-March, 2006 status report is now available with 29 entries.

Summer of Code

The FreeBSD Project is happy to participate in Google's Summer of Code 2006 program. This program will provide funding for students to spend the summer contributing to open source software projects. A list of FreeBSD specific projects and potential mentors is available here.

13 FreeBSD 6.1-RC1 Available

The first release candidate of FreeBSD 6.1 is now available. The RC1 ISO images are available on most of the FreeBSD Mirror sites.

11 New Driver for Broadcom NetXtreme II Gigabit Ethernet Chips

A driver for the Broadcom NetXtreme II family of Gigabit Ethernet chips, bce(4), has been added to FreeBSD-CURRENT. It will be merged to the FreeBSD 6-STABLE branch in the near future.

6 The FreeBSD Foundation Announces Java JDK and JRE 1.5 Binaries for FreeBSD

The FreeBSD Foundation now provides native Java JDK and JRE 1.5 binaries for FreeBSD. For further details, please see the FreeBSD Foundation press release.

4

New committer: Alejandro Pulver (ports)

2

New committer: Johan van Selst (ports)

3 31

New committer: Jean Milanez Melo (ports)

15 FreeBSD 5.5-BETA4 and 6.1-BETA4 Available

The fourth beta releases of FreeBSD 5.5 and FreeBSD 6.1 are now available. The respective BETA4 ISO images are available on most of the FreeBSD Mirror sites.

2 22

New committer: Wojciech A. Koszek (src)

20 FreeBSD 5.5-BETA2 and 6.1-BETA2 Available

The second beta releases of FreeBSD 5.5 and FreeBSD 6.1 are now available. The respective BETA2 ISO images are available on most of the FreeBSD Mirror sites.

18 Podcast Interview with FreeBSD Developer Kirk McKusick

In his latest bsdtalk podcast, Will Backman interviews FreeBSD developer Marshall Kirk McKusick. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk018.mp3.

17 Podcast Interview with FreeBSD Release Engineer Scott Long

In issue 17 of his bsdtalk series of podcasts, Will Backman interviews FreeBSD release engineer Scott Long about the upcoming FreeBSD 5.5 and 6.1 releases and related topics. The podcast is available at http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk017.mp3.

13

New committer: Chuck Lever (src)

Upcoming FreeBSD Kernel Code Reading Evening Course

The ``FreeBSD Kernel Internals: An Intensive Code Walkthrough'' course will be taught during the Spring of 2006. The class will be held at the historic Hillside Club at 2286 Cedar Strett, Berkeley, CA 94709 just three blocks north of the Berkeley campus once per week from 6:30PM to 9:45PM starting Wednesday February 22nd and finishing Tuesday June 13th. You can get more information or sign up for the class here.

9 FreeBSD 5.5-BETA1 and 6.1-BETA1 Available

The first beta releases of FreeBSD 5.5 and FreeBSD 6.1 are now available. The respective BETA1 ISO images are available on most of the FreeBSD Mirror sites.

1 31

Enhanced commit privileges: Colin Percival (src, ports)

26 October-December 2005 Status Report

The October-December, 2005 status report is now available with 26 entries.

19

New committer: Matteo Riondato (src)

New committer: Vasil Dimov (ports)

16

New committer: Rink Springer (src)

2005 12 23 FreeBSD Foundation December Newsletter Published

The FreeBSD Foundation has published its December Newsletter, which summarizes the activities the Foundation has undertaken this year.

21

Returned committer: Jason Evans (src)

17 Release schedule for 2006

The release engineering team, represented by Scott Long, has announced the release schedule for 2006. Please refer to the announcement for more information.

14 Read-only XFS support in FreeBSD-CURRENT

Read-only support for the XFS file system has been committed to FreeBSD-CURRENT. The code is derived from sources provided by SGI and is covered by the GPL. Additional information can be found in the announcement.

12

New committer: Andrey Slusar (ports)

7 New website section: Projects and ideas for volunteers

The FreeBSD project has hundreds of active developers spread all over the world, and many of them have their own parts of the source-tree that they work on. However, there are always a lot of new interesting projects and ideas that needs to be investigated and evaluated, and this is where the FreeBSD project relies on heroic efforts from volunteers. A new section on the FreeBSD website has been created with the purpose of listing such projects. The list is in no way complete, but it should serve as a nice starting point for volunteers who would like to become committers in the future. You can view the projects list here.

1 Hewlett-Packard Donates Blade Cluster to The FreeBSD Foundation

The FreeBSD Foundation received a donation of a blade system from Hewlett-Packard for use as a third-party software build cluster. This 20-node HP BladeSystem cluster triples the speed of the build process for i386 packages. You can see more details from here.

New committer: Tim Bishop (ports)

11 29

New committer: Oleg Bulyzhin (src)

27 New article: Building Products with FreeBSD

A new article, Building Products with FreeBSD describes the benefits of collaborating with the FreeBSD project when developing products. Much of the engineering cost of software product development for a successful product comes from the need to evolve to keep pace with the market. By working with a mature, reuse-friendly source base like that of the FreeBSD project, and by following the best-practices listed in this article, organizations can reap the benefits of reduced engineering costs and improved market adaptability.

18 July-October 2005 Status Report

The July-October, 2005 status report is now available with 37 entries.

5 KDE 3.4.3 available for FreeBSD

KDE 3.4.3 has been merged into the ports tree. For a detailed list of improvements since the KDE 3.4.2 release, please refer to the KDE 3.4.2 changelog. For more information, see the KDE 3.4.3 info page. For general information about KDE on FreeBSD, please see the KDE on FreeBSD project page.

GNOME 2.12.1 available for FreeBSD

Now that 6.0 is out the door, GNOME 2.12.1 has been merged into the ports tree. Be sure to checkout our upgrade FAQ for all the changes, upgrade instructions, and known issues. Additional resources can be found at the FreeBSD GNOME homepage.

4 FreeBSD 6.0-RELEASE is Now Available

FreeBSD 6.0-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 6.0. The Release Information page has more information about FreeBSD releases.

1 FreeBSD Logo Design Competition Result

We are pleased to announce the winner of our logo competition: Anton K. Gural. For competition details, please see the result page. With our new logo, we will be able to show our own identity on the 'net, and this will make our marketing efforts much easier. We will publish soon a guideline page which gives usage rules and usable (vector format) logo data under the same BSD license as the rest of FreeBSD.

10 30

New committer: Aaron Dalton (ports)

18

New committer: Ariff Abdullah (src)

11 FreeBSD 6.0-RC1 Available

The first release candidate of FreeBSD 6.0 is now available. The RC1 ISO images and FTP based install support are available on most of the FreeBSD Mirror sites.

6 New Case Study: Argentina.com

A new case study, argentina.com, describes how a successful ISP in Latin America excels in a competitive market with FreeBSD.

5 New website launched

A new website has been launched. We hope you find the new design easier to navigate. The site was implemented by Emily Boyd as part of Google's Summer of Code program. A copy of the old site for comparison purposes is archived here. Please post your comments and suggestions about the new site to the freebsd-www@FreeBSD.org list.

3

New committer: Vitaly Bogdanov (doc)

New committer: Emanuel Haupt (ports)

New committer: Andrej Zverev (ports)

9 18

New committer: Tom McLaughlin (ports)

15

New committer: Marcus Alves Grando (ports)

7 FreeBSD 6.0-BETA4 Available

6.0-BETA4 announcement.

8 29 FreeBSD 6.0-BETA3 Available

6.0-BETA3 announcement.

22

New committer: Gary W. Swearingen (doc)

21 New Security Officer: Colin Percival

After 43 months Jacques Vidrine has passed the Security Officer hat to Colin Percival, known for his FreeBSD Update, portsnap, and bsdiff utilities, and recently for his paper "Cache missing for fun and profit" regarding sensitive information disclosure within hyperthreaded processor systems. You can read more about this here.

17 FreeBSD Events iCalendar Feed Introduced

Users with organisational software that understands iCalendar format files can now subscribe to the FreeBSD Events Calendar.

New Article: Choosing a FreeBSD Version

A new article, Choosing the FreeBSD Version That Is Right For You, discusses considerations that should go into the selection of the most suitable version of FreeBSD for individual needs. Included are such concepts as the differences between a Release and a Branch, and between FreeBSD-STABLE and FreeBSD-CURRENT. Also covered is how FreeBSD development is moving towards a goal of more frequent major releases, each of which introduces smaller feature sets, as compared to how releases were done in the past. The target audience is both the user who is considering installing FreeBSD, and also existing users who wish to plan their future upgrades.

5 FreeBSD 6.0-BETA2 Available

6.0-BETA2 announcement.

1 New FreeBSD/Linux Whitepaper

Dru Lavigne has just published FreeBSD: An Open Source Alternative to Linux. The objective of this whitepaper is to explain some of the features and benefits provided by FreeBSD, and where applicable, compare those features to Linux. This paper provides a starting point for those interested in exploring Open Source alternatives to Linux.

7 22 March-June 2005 Status Report

The March-June, 2005 status report is now available with 43 entries.

20

New committer: Vsevolod Stakhov (ports)

18

New committer: Bruno Ducrot (src)

16 Funded Student Projects Announced

The FreeBSD Project received over 350 applications for Google's Summer of Code program, amongst which 18 were selected for funding. Unfortunately, there were far more first rate applications than available spots for students. However, we encourage students to work together with us all year round. The FreeBSD Project is always willing to help mentor students learn more about operating system development through our normal community mailing lists and development forums. Contributing to an open source software project is a valuable component of a computer science education and great preparation for a career in software development.

More information about the funded student projects is available from the FreeBSD + href="http://wiki.freebsd.org/moin.cgi/SummerOfCode2005">FreeBSD Summer of Code Wiki.

15 FreeBSD 6.0-BETA1 Available

6.0-BETA1 announcement.

11 6-STABLE branch (RELENG_6) forked

Next milestone in 6.0-RELEASE process is reached. RELENG_6 CVS branch is forked from HEAD. The upcoming 6.0-RELEASE, and all following 6.x releases will be cut from this branch. For more information see: 6.0-RELEASE schedule, RELENG_6 announcement.

New committer: Renato Botelho (ports)

6

New committer: Jung-uk Kim (src)

2 Snapshot Release in July 2005 Available

The FreeBSD 6-CURRENT snapshot releases in July 2005 are now available. This will likely be the last snapshot of 6.0-CURRENT before the RELENG_6 branch is made. The FreeBSD Release Engineering Team has released snapshot releases of 5-STABLE and 6-CURRENT to encourage people to test new features and improve the reliability. For more details, please visit the snapshots page.

1

New committer: Wayne Salamon (src)

6 17

New contributor: Matteo Riondato (PR database)

New committer: Kip Macy (src)

11 Code Freeze for 6.0-RELEASE

The FreeBSD 6.0 code freeze has begun. Developers must have approval from re@FreeBSD.org to commit to the HEAD branch of src/. 6.0 snapshots are available from the FTP sites for those able to help test the upcoming major new release of FreeBSD. For more information, please see the release engineering area of the web site.

1 Funded Student Coding Opportunity

The FreeBSD Project is happy to participate in Google's Summer of Code 2005 program. This program will provide funding for students to spend the summer contributing to open source software projects. A list of FreeBSD specific projects and potential mentors is available here.

New committer: Brad Davis (doc)

5 26

New committer: Andrew Thompson (src)

21

New committer: Craig Rodrigues (src)

15 Successful BSDCan Concluded

Another great BSD conference in Ottawa has just concluded. There was a highly successful 2 day FreeBSD Developer summit preceding the official conference. Special thanks should go to Dan Langille for organizing the conference and to Scott Long for organizing the developer summit.

9 FreeBSD 5.4-RELEASE is Now Available

FreeBSD 5.4-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 5.4. The Release Information page has more information about FreeBSD releases.

3 FreeBSD 5.4-RC4 Release Available

The FreeBSD 5.4-RC4 release is now available. The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 5.4-RC4, the last Release Candidate of the FreeBSD 5.4 unless a major problem is discovered as part of RC4. The RC4 ISO images and FTP based install support are available on most of the FreeBSD Mirror sites.

PF updated to 3.7

The packet filter (pf) code has been updated to the upcoming OpenBSD release 3.7. Several new features including nested anchors and connection rate limiting are now available to the FreeBSD userbase.

4 21 January-March 2005 Status Report

The January-March, 2005 status report is now available with 39 entries.

18 FreeBSD 5.4-RC3 Release Available

The FreeBSD 5.4-RC3 release is now available. The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 5.4-RC3, the third Release Candidate of the FreeBSD 5.4 release cycle. The RC3 ISO images and FTP based install support are available on most of the FreeBSD Mirror sites.

13

New committer: Qing Li (src)

12

New committer: Jean-Yves Lefort (ports)

New committer: Sam Lawrance (ports)

11 FreeBSD 5.4-RC2 Release Available

The FreeBSD 5.4-RC2 release is now available. The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 5.4-RC2, the second Release Candidate of the FreeBSD 5.4 release cycle. We encourage people to help with testing so that any final bugs can be identified and worked out before the actual release. The RC2 ISO images and FTP based install support are available on most of the FreeBSD Mirror sites.

7

New committer: Joel Dahl (doc)

5 FreeBSD 5.4-RC1 Release Available

The FreeBSD 5.4-RC1 release is now available. The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 5.4-RC1, the first Release Candidate of the FreeBSD 5.4 release cycle. We encourage people to help with testing so that any final bugs can be identified and worked out before the actual release. The RC1 ISO images and FTP based install support are available on most of the FreeBSD Mirror sites.

3 31

Enhanced commit privileges: Alexander Leidinger (src, ports)

20 FreeBSD 5.4-BETA1 Release Available

The FreeBSD 5.4-BETA1 release is now available. This is the first BETA release for the FreeBSD 5.4 release cycle and the Release Engineering Team encourages people to help with testing so that any final bugs can be identified and worked out before the actual release. The BETA1 ISO images and FTP based install support are available on most of the FreeBSD Mirror sites.

17 Snapshot Release in March 2005 Available

The FreeBSD 6-CURRENT snapshot releases in March 2005 are now available. Note that 5-STABLE snapshots are not available in this month because 5.4-PRERELEASE builds will be available soon. The FreeBSD Release Engineering Team has released snapshot releases of 5-STABLE and 6-CURRENT on a monthly basis to encourage people to test new features and improve the reliability. For more details, please visit the snapshots page.

12 GNOME 2.10.0 available for FreeBSD

GNOME 2.10.0 has been released and merged into the ports tree in time for 5.4-RELEASE. Be sure to checkout our upgrade FAQ for all the changes, upgrade instructions, and known issues. Additional resources can be found at the FreeBSD GNOME homepage.

7

New committer: Roman Bogorodskiy (ports)

3

New committer: Damien Bergamini (src)

1

New committer: Jesus R. Camou (doc)

New committer: Florent Thoumie (ports)

2 27

New committer: Simon Barner (ports)

22

Logo design competition is open

New committer: Tai-hwa Liang (src)

1 25 FreeBSD 4.11-RELEASE is Now Available

FreeBSD 4.11-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 4.11. The Release Information page has more information about FreeBSD releases.

17 July-December 2004 Status Report

The July-December, 2004 status report is now available with 44 entries.

FreeBSD 4.11 RC3 Available

The third Release Candidate for FreeBSD 4.11 has been made available. Please see the full announcement on the FreeBSD-STABLE mailing list here. The full 4.11 release schedule is here.

2 FreeBSD 4.11 RC2 Available

The second Release Candidate for FreeBSD 4.11 has been made available. Please see the full announcement on the FreeBSD-STABLE mailing list here. The full 4.11 release schedule is here.

2004 12 28 Mozilla approves FreeBSD's thunderbird and firefox ports

The Mozilla License Team has granted permission to the FreeBSD Gnome Team for use of the Firefox and Thunderbird names, official icons, and permission to do officially branded builds.

New committer: Sam Hopkins (src)

23 FreeBSD Foundation Quarterly Newsletter Published

The FreeBSD Foundation has published its Quarterly Newsletter, which includes a call for donations so the Foundation can keep its non-profit public charity 501(c)3 status.

18 FreeBSD 4.11 RC1 Available

The first Release Candidate for FreeBSD 4.11 has been made available. Please see the full announcement on the FreeBSD-STABLE mailing list here. The full 4.11 release schedule is here.

13

New committer: Niels Heinen (ports)

6

The FreeSBIE 1.1 FreeBSD Live CD is released -- see the release announcement for details.

New committer: Palle Girgensohn (ports)

2 FreeBSD 4.11 release schedule announced

The schedule for the FreeBSD 4.11 Release has been announced, with a target release date of January 24th, 2005. The full schedule is here.

1

New committer: Jean-Sébastien Pédron (src)

11 27 FreeBSD trademark transferred to Foundation

The 'FreeBSD' trademark, which was originally granted to Walnut Creek CDROM (now FreeBSD Mall, Inc.) in 1996, has been transferred to the FreeBSD Foundation.

19

New committer: Vicente Carrasco (doc)

11

New committer: Johann Kois (doc)

7 GNOME 2.8.1 released for FreeBSD

GNOME 2.8.1 was merged into the ports tree following the release of FreeBSD 5.3. See the FreeBSD GNOME Homepage for more details as well as upgrade instructions.

6 FreeBSD 5.3-RELEASE is Now Available

FreeBSD 5.3-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 5.3. The Release Information page has more information about FreeBSD releases.

10 31 FreeBSD 5.3-RC2 released

The FreeBSD Release Engineering Team is proud to announce the availability of FreeBSD 5.3-RC2. Two critical issues came up during RC1 testing and it is felt the fixes warrant one more RC so they receive widespread testing. If no more show-stopper problems are found this will be the last test release done before 5.3-RELEASE. Please see the full announcement on FreeBSD-CURRENT here.

29

New committer: Michael Johnson (ports)

16

New committer: Remko Lodder (doc)

12

New committer: George V. Neville-Neil (src)

8

New committer: Stephan Uphoff (src)

9 15

New committer: Koop Mast (ports)

New committer: Xin Li (src, doc)

8 20

New committer: Alexey Dokuchaev (ports)

19

New committer: Dejan Lesjak (ports)

18

New committer: Cheng-Lung Sung (ports)

10

New committer: Dmitry Morozovsky (doc)

5

New committer: Herve Quiroz (ports)

2

New committer: Pyun YongHyeon (src)

7 27

New committer: Bjoern A. Zeeb (src)

26 May 2004 - June 2004 Status Report

The May-June status report is now available; see the status reports Web page for more information.

24

New committer: Suleiman Souhlal (PowerPC)

23 FreeBSD switches to X.Org

FreeBSD-CURRENT now ships with X.Org's X Window System per default, though XFree86 is still supported. For more information on how to upgrade for -CURRENT and -STABLE, take a look at this HEADS UP.

14

New committer: Gleb Smirnoff (src)

7

New committer: Sergey Matveychuk (ports)

5 30

New committer: Lars Thegler (ports)

27 FreeBSD 4.10-RELEASE is Now Available

FreeBSD 4.10-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 4.10. The Release Information page has more information about FreeBSD releases.

23

New committer: Koichi Suzuki (doc)

15 March 2004 - April 2004 Status Report

The March-April status report is now available; see the status reports Web page for more information.

4

New committer: Christian S.J. Peron (src)

New committer: Stefan Farfeleder (src)

4 30

New committer: Jeremy Messenger (ports)

19

New committer: Tony Ackerman (src)

17

New committer: Marius Strobl (src)

5

New committer: Daniel Hartmeier (src)

3 29

New committer: Niklas J. Saers (doc)

25 Removal of Gallery

Because of the hard maintenance and low benefit the gallery pages bring to the Project and the listed websites, it has been decided to spend the time working on other stuff related to FreeBSD than these pages. The gallery will be removed in two weeks, no further submissions will be processed. However, this has no influence on the Commercial Gallery.

18

New committer: Mark Santcroos (src)

17 January 2004 - February 2004 Status Report

The January-February status report is now available; see the status reports Web page for more information.

13

New committer: Thierry Thomas (ports)

10

New committer: Volker Stolz (ports)

9

New committer: Peter Edwards (src)

2 26

New committer: Vinod Kashyap (src)

25 FreeBSD 5.2.1-RELEASE is Now Available

FreeBSD 5.2.1-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 5.2.1. The Release Information page has more information about FreeBSD releases.

22

New committer: Markus Brüffer (Ports)

17

New committer: Jim Rees (src)

15

Core member resigned: Greg Lehey

10

New committer: Max Laier (src)

2

New committer: Lukas Ertl (src)

New committer: Pawel Jakub Dawidek (src)

1 28 October 2003 - December 2003 Status Report

The October-December status report is now available; see the status reports Web page for more information.

21

New committer: Philip Paeps (src)

New committer: Colin Percival (src)

15

New committer: Josef El-Rayes (docs)

12 FreeBSD 5.2-RELEASE is Now Available

FreeBSD 5.2-RELEASE has been released. Please check the release errata before installation for any late-breaking news and/or issues with 5.2. The Release Information page has more information about FreeBSD releases.

4

New committer: Vincent Tougait (Documentation Project)