aboutsummaryrefslogtreecommitdiff
path: root/en/news/status/report-mar-2005-june-2005.xml
blob: 2b066ab98ae9c6172e1a7930c8fc500c979dc71e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE report PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Status Report//EN"
                        "http://www.FreeBSD.org/XML/www/share/sgml/statusreport.dtd">

<report>
  <date>
    <month>March-June</month>

    <year>2005</year>
  </date>

  <section>
    <title>Introduction</title>

    <p>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.</p>

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

    .</p>

    <p>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.</p>

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

  <category>
    <name>soc</name>

    <description>Google summer of code</description>
  </category>

  <category>
    <name>proj</name>

    <description>Projects</description>
  </category>

  <category>
    <name>doc</name>

    <description>Documentation</description>
  </category>

  <category>
    <name>kern</name>

    <description>Kernel</description>
  </category>

  <category>
    <name>net</name>

    <description>Network infrastructure</description>
  </category>

  <category>
    <name>bin</name>

    <description>Userland programs</description>
  </category>

  <category>
    <name>arch</name>

    <description>Architectures</description>
  </category>

  <category>
    <name>ports</name>

    <description>Ports</description>
  </category>

  <category>
    <name>vendor</name>

    <description>Vendor / 3rd Party Software</description>
  </category>

  <category>
    <name>misc</name>

    <description>Miscellaneous</description>
  </category>

  <project cat='misc'>
    <title>BSDCan</title>

    <contact>
      <person>
        <name>
          <given>Dan</given>

          <common>Langille</common>
        </name>

        <email>dan@langille.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.bsdcan.org/2005/" />
    </links>

    <body>
      <p>The second annual 
      <a href="http://www.bsdcan.org">BSDCan</a>

      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.</p>

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

      <p>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.</p>

      <p>If you know someone doing interesting work, please let me know
      and urge them to start thinking about BSDCan 2006.</p>
    </body>
  </project>

  <project cat='soc'>
    <title>Integrate the BSD Installer into FreeBSD</title>

    <contact>
      <person>
        <name>
          <given>Andrew</given>

          <common>Turner</common>
        </name>

        <email>soc-andrew@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.bsdinstaller.org">The BSD Installer</url>

      <url href="http://wikitest.freebsd.org/moin.cgi/BSDInstaller">BSD
      Installer Wiki page</url>

      <url
      href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/projects/soc2005/bsdinstaller">
      BSD Installer Perforce tree</url>
    </links>

    <body>
      <p>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.</p>
    </body>

    <help>
      <task>Test in non-i386</task>

      <task>Investigate installing from other media</task>

      <task>Many more tasks</task>
    </help>
  </project>

  <project cat='ports'>
    <title>FreshPorts</title>

    <contact>
      <person>
        <name>
          <given>Dan</given>

          <common>Langille</common>
        </name>

        <email>dan@langille.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freshports.org/" />
    </links>

    <body>
      <p>The following new features have been added to FreshPorts:</p>

      <ul>
        <li>
          <a href="http://www.freshports.org/ports- deprecated.php">
          Deprecated Ports</a>
        </li>

        <li>
          <a href="http://www.freshports.org/ports- expired.php">Expired
          Ports</a>
        </li>

        <li>
          <a href="http://www.freshports.org/ports-expiration- date.php">
          Ports Set To Expire</a>
        </li>

        <li>
          <a
          href="http://www.freshports.org/phorum/read.php?f=1&amp;i=1021&amp;t=1021#repl y_1021">
          Display relevent entries from ports/UPDATING on your watch
          list</a>
        </li>
      </ul>
    </body>

    <help>
      <task>I've noticed that FreshPorts is incorrectly reporting
      vulnerabilities under a 
      <a
      href="http://www.freshports.org/phorum/read.php?f=1&amp;i=1025&amp;t=1025">
      very specific situation</a>

      . The fix is sitting in BETA, waiting to be moved to
      production.</task>

      <task>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.</task>

      <task>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.</task>
    </help>
  </project>

  <project cat='proj'>
    <title>Fundraising - TCP &amp; IP Routing Optimization</title>

    <contact>
      <person>
        <name>
          <given>Andre</given>

          <common>Oppermann</common>
        </name>

        <email>andre@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url
      href="http://people.freebsd.org/~andre/tcpoptimization.html" />
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>

      <p>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.</p>

      <p>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. :)</p>

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

    <help>
      <task>Raise enough money to get all the almost finished TCP and IP
      code into the tree.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>CPU Cache Prefetching</title>

    <contact>
      <person>
        <name>
          <given>Andre</given>

          <common>Oppermann</common>
        </name>

        <email>andre@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url
      href="http://people.freebsd.org/~andre/tcpoptimization.html" />

      <url
      href="http://www.nrg4u.com/freebsd/tcp_reass+prefetch-20041216.patch" />
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>

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

    <help>
      <task>Need funding, see "Fundraising - TCP &amp; IP Routing
      Optimization".</task>
    </help>
  </project>

  <project cat='net'>
    <title>TCP Reassembly Rewrite and Optimization</title>

    <contact>
      <person>
        <name>
          <given>Andre</given>

          <common>Oppermann</common>
        </name>

        <email>andre@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url
      href="http://people.freebsd.org/~andre/tcpoptimization.html" />

      <url
      href="http://www.nrg4u.com/freebsd/tcp_reass-20041213.patch" />

      <url
      href="http://lists.freebsd.org/pipermail/freebsd-net/2004-December/005918.html" />
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>

      <p>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.</p>
    </body>

    <help>
      <task>Need funding, see "Fundraising - TCP &amp; IP Routing
      Optimization".</task>
    </help>
  </project>

  <project cat='net'>
    <title>TTCPv2: Transactional TCP version 2</title>

    <contact>
      <person>
        <name>
          <given>Andre</given>

          <common>Oppermann</common>
        </name>

        <email>andre@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url
      href="http://people.freebsd.org/~andre/tcpoptimization.html" />

      <url
      href="http://lists.freebsd.org/pipermail/cvs-all/2004-November/089939.html" />
    </links>

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

      <p>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-&gt;OPEN on the
      server.</p>

      <p>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.</p>

      <p>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.</p>
    </body>

    <help>
      <task>Need funding, see "Fundraising - TCP &amp; IP Routing
      Optimization".</task>
    </help>
  </project>

  <project cat='soc'>
    <title>Network Interface API Cleanup</title>

    <contact>
      <person>
        <name>
          <given>Anders</given>

          <common>Persson</common>
        </name>

        <email>soc-anders@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url
      href="http://wikitest.freebsd.org/moin.cgi/CleanupOfNetworkIterfaceApis" />
    </links>

    <body>
      <p>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.</p>

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

      <p>A big thank you to Brooks Davis for mentoring :-)</p>
    </body>
  </project>

  <project cat='misc'>
    <title>FreeBSD Security Officer and Security Team</title>

    <contact>
      <person>
        <name>
          <given>Security</given>

          <common>Officer</common>
        </name>

        <email>security-officer@FreeBSD.org</email>
      </person>

      <person>
        <name>
          <given>Security</given>

          <common>Team</common>
        </name>

        <email>security-team@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freebsd.org/security/" />

      <url
      href="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/st= aff-listing.html#STAFF-SECTEAM" />

      <url href="http://vuxml.freebsd.org/" />
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>
    </body>
  </project>

  <project cat='net'>
    <title>Dingo</title>

    <contact>
      <person>
        <name>
          <given>Several</given>
        </name>
      </person>
    </contact>

    <links>
      <url href="http://www.freebsd.org/projects/dingo/">somewhat out of
      date</url>
    </links>

    <body>
      <p>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.</p>
    </body>

    <help>
      <task>See the web page.</task>
    </help>
  </project>

  <project cat='doc'>
    <title>The FreeBSD Dutch Documentation Project</title>

    <contact>
      <person>
        <name>
          <given>Remko</given>

          <common>Lodder</common>
        </name>

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

      <person>
        <name>
          <given>Siebrand</given>

          <common>Mazeland</common>
        </name>

        <email>siebrand.mazeland@xs4all.nl</email>
      </person>

      <person>
        <name>
          <given>Rene</given>

          <common>Ladan</common>
        </name>

        <email>r.c.ladan@student.tue.nl</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freebsd.org/doc/nl/books/handbook">The Dutch
      Handbook</url>

      <url href="http://www.evilcoder.org/content/section/6/39/">The
      Dutch Project Site</url>

      <url href="http://www.evilcoder.org/freebsd_html/">The Dutch
      Preview Documentation</url>

      <url href="http://www.evilcoder.org/freebsd/flyer.pdf">The Dutch
      FreeBSD Flyer</url>
    </links>

    <body>
      <p>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</p>
    </body>

    <help>
      <task>FreeBSD Handbook translation. Finish the translation from
      English to Dutch</task>

      <task>FreeBSD Handbook review. Finish the review of the translated
      documents</task>

      <task>FreeBSD Articles. Start translating the articles from English
      to the Dutch Language</task>

      <task>FreeBSD www. Start translating the website from English to
      the Dutch Language</task>

      <task>The rest of the FreeBSD Documents. Start translating them
      from English to the Dutch Language.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>Transparent support for superpages in the FreeBSD
    Kernel</title>

    <contact>
      <person>
        <name>
          <given>Alan L.</given>

          <common>Cox</common>
        </name>

        <email>alc@cs.rice.edu</email>
      </person>

      <person>
        <name>
          <given>Olivier</given>

          <common>Crameri</common>
        </name>

        <email>olivier.crameri@epfl.ch</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>We are currently working on an updated implementation of 
      <a href="http://www.cs.rice.edu/~jnavarro/papers/osdi02.ps">Juan
      Navarro's transparent support for superpages in FreeBSD.</a>
      </p>

      <p>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.</p>

      <p>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.</p>

      <p>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.</p>

      <p>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.</p>
    </body>
  </project>

  <project cat='net'>
    <title>Wireless Networking Support</title>

    <contact>
      <person>
        <name>
          <given>Sam</given>

          <common>Leffler</common>
        </name>

        <email>sam@freebsd.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>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).</p>

      <p>A presentation on the forthcoming multi-bss support was given at
      BSDCan 2005. The slides from the talk are available at 
      <a href="http://www.freebsd.org/~sam/BSDCan2005.pdf">
      http://www.freebsd.org/~sam/BSDCan2005.pdf</a>.

      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.</p>
    </body>

    <help>
      <task>hostapd needs work to support the IAPP and 802.11i
      preauthentication protocols (these are simple conversions of
      existing Linux code).</task>
    </help>
  </project>

  <project cat='soc'>
    <title>FreeSBIE toolkit integration</title>

    <contact>
      <person>
        <name>
          <given>Dario</given>

          <common>Freni</common>
        </name>

        <email>saturnero@freesbie.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freesbie.org">FreeSBIE main site</url>

      <url href="http://wikitest.freebsd.org/moin.cgi/DarioFreni">My page
      on FreeBSD wiki</url>
    </links>

    <body>
      <p>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</p>

      <p>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 
      <a href="http://www.pfsense.com">pfSense</a>

      and 
      <a href="http://www.pcbsd.org">PC-BSD</a>

      projects.</p>

      <p>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.</p>
    </body>
  </project>

  <project cat='arch'>
    <title>PowerPC Port</title>

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

          <common>Grehan</common>
        </name>

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

    <links>
      <url href="http://www.freebsd.org/platforms/ppc.html">FreeBSD/PPC
      Platform page.</url>
    </links>

    <body>
      <p>Florent Thoumie has updated the massively out-of-date platform
      page. Work continues to creating a 6.0 release of the PowerPC
      port.</p>
    </body>
  </project>

  <project cat='proj'>
    <title>GEOM Gate rewrite</title>

    <contact>
      <person>
        <name>
          <given>Pawel Jakub</given>

          <common>Dawidek</common>
        </name>

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

    <links>
      <url href="http://cvsweb.freebsd.org/src/sys/geom/gate/" />

      <url href="http://cvsweb.freebsd.org/src/sbin/ggate/" />
    </links>

    <body>
      <p>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.</p>

      <p>The work was sponsored by 
      <a href="http://www.wheel.pl">Wheel Sp. z o.o.</a>
      </p>
    </body>
  </project>

  <project cat='soc'>
    <title>gjournal</title>

    <contact>
      <person>
        <name>
          <given>Ivan</given>

          <common>Voras</common>
        </name>

        <email>ivoras@gmail.com</email>
      </person>
    </contact>

    <links>
      <url href="http://wikitest.freebsd.org/moin.cgi/gjournal">gjournal
      wiki</url>
    </links>

    <body>
      <p>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.</p>
    </body>
  </project>

  <project cat='soc'>
    <title>FreeBSD Summer of Code</title>

    <contact>
      <person>
        <name>
          <given>Summer of Code</given>

          <common>Mentors</common>
        </name>

        <email>soc-mentors@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url
      href="http://wikitest.freebsd.org/moin.cgi/SummerOfCode2005" />
    </links>

    <body>
      <p>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.</p>
    </body>
  </project>

  <project cat='soc'>
    <title>gvinum 'move', 'rename'</title>

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

          <common>Jones</common>
        </name>

        <email>soc-cjones@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wikitest.freebsd.org/moin.cgi/GvinumMoveRename">
      gvinum 'move', 'rename' wiki entry</url>
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>
    </body>

    <help>
      <task>'move' and 'rename' userland implementation</task>

      <task>'move' and 'rename' kernel-side implementation</task>

      <task>Outline new handbook section and man page</task>

      <task>Implement new handbook section and man page</task>
    </help>
  </project>

  <project cat='net'>
    <title>if_bridge</title>

    <contact>
      <person>
        <name>
          <given>Andrew</given>

          <common>Thompson</common>
        </name>

        <email>thompsa@freebsd.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>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:</p>

      <ul>
        <li>IPFW layer2 filtering</li>

        <li>DUMMYNET support</li>

        <li>IP header alignment checking</li>
      </ul>

      <p>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.</p>
    </body>
  </project>

  <project cat='net'>
    <title>IPv6 Support for IPFW</title>

    <contact>
      <person>
        <name>
          <given>Max</given>

          <common>Laier</common>
        </name>

        <email>mlaier@freebsd.org</email>
      </person>

      <person>
        <name>
          <given>Brooks</given>

          <common>Davis</common>
        </name>

        <email>brooks@freebsd.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>In order to get the new code to that point we 
      <b>really</b>

      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.</p>
    </body>

    <help>
      <task>Properly implement O_REJECT for IPv6</task>

      <task>Maybe implement O_LOG</task>

      <task>Test new(er) IPFW2 opcodes with IPv6</task>

      <task>Test</task>

      <task>Test</task>

      <task>Test</task>
    </help>
  </project>

  <project cat='soc'>
    <title>launchd(8) for FreeBSD</title>

    <contact>
      <person>
        <name>
          <given>R. Tyler</given>

          <common>Ballance</common>
        </name>

        <email>tyler@tamu.edu</email>
      </person>
    </contact>

    <links>
      <url href="http://wikitest.freebsd.org/moin.cgi/launchd">Wiki
      Project Page</url>

      <url
      href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/launchd.8.html">
      Apple's launchd(8) man page</url>
    </links>

    <body>
      <p>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).</p>

      <p>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.</p>

      <p>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.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>Removable interface improvements</title>

    <contact>
      <person>
        <name>
          <given>Brooks</given>

          <common>Davis</common>
        </name>

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

    <links>
      <url
      href="http://people.freebsd.org/~brooks/pubs/eurobsdcon2004/" />

      <url href="http://www.freebsd.org/projects/dingo/" />
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>
    </body>
  </project>

  <project cat='bin'>
    <title>OpenBSD dhclient import.</title>

    <contact>
      <person>
        <name>
          <given>Brooks</given>

          <common>Davis</common>
        </name>

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

      <person>
        <name>
          <given>Sam</given>

          <common>Leffler</common>
        </name>

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

    <links>
    </links>

    <body>
      <p>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.</p>

      <p>The current code works well in most circumstances, but more
      testing and polishing is needed.</p>
    </body>
  </project>

  <project cat='net'>
    <title>Move ARP out of routing table</title>

    <contact>
      <person>
        <name>
          <given>Qing</given>

          <common>Li</common>
        </name>

        <email>qingli@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.freebsd.org/~qingli/" />
    </links>

    <body>
      <p>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.</p>
    </body>

    <help>
      <task>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.</task>
    </help>
  </project>

  <project cat='soc'>
    <title>Nsswitch / Caching daemon</title>

    <contact>
      <person>
        <name>
          <given>Michael</given>

          <common>Bushkov</common>
        </name>

        <email>soc-bushman@rsu.ru</email>
      </person>
    </contact>

    <links>
      <url
      href="http://wikitest.freebsd.org/moin.cgi/NsswitchAndCachingTechnicalDetails" />

      <url href="http://wikitest.freebsd.org/moin.cgi/MichaelBushkov" />
    </links>

    <body>
      <p>The 
      <strong>nsswitch / caching daemon</strong>

      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.</p>

      <p>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.</p>
    </body>

    <help>
      <task>Implement set of patches to make nsswitch support 
      <strong>globus grid security files</strong>

      , 
      <strong>MAC and audit related configuration files</strong>

      databases.</task>

      <task>Implement the caching library and the caching daemon and
      patch nsdispatch function to support caching.</task>
    </help>
  </project>

  <project cat='vendor'>
    <title>OpenBSD packet filter - pf</title>

    <contact>
      <person>
        <name>
          <given>Max</given>

          <common>Laier</common>
        </name>

        <email>mlaier@freebsd.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>
    </body>

    <help>
      <task>Shared lock implementation?</task>
    </help>
  </project>

  <project cat='kern'>
    <title>Low-overhead performance monitoring for FreeBSD</title>

    <contact>
      <person>
        <name>
          <given>Joseph</given>

          <common>Koshy</common>
        </name>

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

    <links>
      <url
      href="http://people.freebsd.org/~jkoshy/projects/perf-measurement">
      Project home page</url>
    </links>

    <body>
      <p>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.</p>

      <p>Work since the last status report:</p>

      <ul>
        <li>Sampling mode support for P4 and AMD64 PMCs has been
        implemented.</li>

        <li>A pmclog(3) API for parsing hwpmc(4) log files has been
        added.</li>

        <li>A number of bugs in libpmc(3), hwpmc(4) and pmcstat(8) have
        been fixed.</li>
      </ul>

      <p>Future work:</p>

      <ul>
        <li>Creating user documentation showing a few real-world uses of
        the currently available tools.</li>

        <li>Testing, improving the stability of the code, and
        characterizing its overheads.</li>

        <li>Implementing P5 PMC support.</li>
      </ul>
    </body>
  </project>

  <project cat='soc'>
    <title>Improve libalias</title>

    <contact>
      <person>
        <name>
          <given>Paolo</given>

          <common>Pisati</common>
        </name>

        <email>soc-pisati@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wikitest.freebsd.org/moin.cgi/PaoloPisati">Wiki
      page about libalias work.</url>
    </links>

    <body>
      <p>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.</p>
    </body>
  </project>

  <project cat='proj'>
    <title>TODO list for volunteers</title>

    <contact>
      <person>
        <name>
          <given>Alexander</given>

          <common>Leidinger</common>
        </name>

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

    <links>
    </links>

    <body>
      <p>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".</p>
    </body>

    <help>
      <task>Merging untaken entries from the SoC list as soon as the
      official participants/tasks in the SoC are announced.</task>

      <task>Sending the document to some doc people for review.</task>

      <task>Commit the list.</task>
    </help>
  </project>

  <project cat='bin'>
    <title>Removing of old basesystem files and directories</title>

    <contact>
      <person>
        <name>
          <given>Alexander</given>

          <common>Leidinger</common>
        </name>

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

    <links>
      <url
      href="http://www.Leidinger.net/FreeBSD/current-patches/obsolete_removal.diff">
      Patch</url>
    </links>

    <body>
      <p>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.</p>
    </body>

    <help>
      <task>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.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>Porting v9 of Intels C/C++ Compiler</title>

    <contact>
      <person>
        <name>
          <given>Alexander</given>

          <common>Leidinger</common>
        </name>

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

    <links>
    </links>

    <body>
      <p>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.</p>
    </body>
  </project>

  <project cat='ports'>
    <title>Update of the Linux userland infrastructure</title>

    <contact>
      <person>
        <name>
          <given>Alexander</given>

          <common>Leidinger</common>
        </name>

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

      <person>
        <name>
          <given>Emulation</given>

          <common>Mailinglist</common>
        </name>

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

    <links>
    </links>

    <body>
      <p>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.</p>
    </body>

    <help>
      <task>Refactoring the common RPM code in
      x11-toolkits/linux-gtk/Makefile into bsd.rpm.mk.</task>

      <task>Determining which up-to-date Linux distribution to use as the
      next default Linux base. Important criteria: 
      <ul>
        <li>RPM based (to be able to use the existing
        infrastructure)</li>

        <li>good track record regarding availability of security
        fixes</li>

        <li>packages available from several mirror sites</li>

        <li>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)</li>
      </ul>
      </task>

      <task>Moving the linuxolator userland to an up-to-date version (see
      above).</task>
    </help>
  </project>

  <project cat='kern'>
    <title>Autotuning of the page queue coloring algorithm</title>

    <contact>
      <person>
        <name>
          <given>Alexander</given>

          <common>Leidinger</common>
        </name>

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

    <links>
      <url
      href="http://www.Leidinger.net/FreeBSD/current-patches/pq.diff">
      Patch</url>
    </links>

    <body>
      <p>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).</p>
    </body>

    <help>
      <task>Add cache-detection code for other arches too (Marius told me
      how to do this for sparc64).</task>

      <task>Analyze why the cache detection on Athlons doesn't work (no
      problems on a P4, but it uses a different code-path).</task>
    </help>
  </project>

  <project cat='soc'>
    <title>FreeBSD website improvements</title>

    <contact>
      <person>
        <name>
          <given>Emily</given>

          <common>Boyd</common>
        </name>

        <email>soc-emily@freebsd.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>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.</p>
    </body>
  </project>

  <project cat='soc'>
    <title>UFSJ -- Journaling for UFS</title>

    <contact>
      <person>
        <name>
          <given>Brian</given>

          <common>Wilson</common>
        </name>

        <email>polytopes@gmail.com</email>
      </person>

      <person>
        <name>
          <given>Scott</given>

          <common>Long</common>
        </name>

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

    <links>
    </links>

    <body>
      <p>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).</p>
    </body>

    <help>
      <task>Finish making the file system log metadata updates.</task>

      <task>Add facilities to replay the log on dirty file
      systems.</task>

      <task>Make snapshots work with journaling.</task>
    </help>
  </project>

  <project cat='soc'>
    <title>SEBSD</title>

    <contact>
      <person>
        <name>
          <given>Yanjun</given>

          <common>Wu</common>
        </name>

        <email>yanjun03@ios.cn</email>
      </person>
    </contact>

    <links>
      <url href="http://wikitest.freebsd.org/moin.cgi/YanjunWu">Show
      status in wiki, update more frequently.</url>
    </links>

    <body>
      <ol>
        <li>Setup a local P4 workspace of SEBSD source and Setup lxr for
        TrustedBSD source for studying source code.</li>

        <li>Test a simple policy configuration for vsftpd.</li>

        <li>Writing a HOWTO document 
        <em>Getting Started with SEBSD HOWTO</em>

        by deriving the existing 
        <em>Getting Started with SELinux HOWTO</em>.</li>
      </ol>

      <p>Thanks Robert Watson and Scott Long for their kind help.</p>
    </body>

    <help>
      <task>When writing the document, try to figure out the sebsd
      userland utils that need to be ported.</task>

      <task>Test and edit more policies for BSD environment.</task>
    </help>
  </project>

  <project cat='proj'>
    <title>VFS SMP</title>

    <contact>
      <person>
        <name>
          <given>Jeff</given>

          <common>Roberson</common>
        </name>

        <email>jeff@freebsd.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>

      <p>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.</p>
    </body>
  </project>

  <project cat='misc'>
    <title>EuroBSDCon 2005 - Basel</title>

    <contact>
      <person>
        <name>
          <common>Information</common>
        </name>

        <email>info@eurobsdcon.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.eurobsdcon.org/">Homepage</url>

      <url href="http://www.eurobsdcon.org/cfp.php">Call for papers</url>
    </links>

    <body>
      <p>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.</p>

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

      <p>The program committee is looking for tutorial and paper
      submissions. For details, please see: The 
      <a href="http://www.eurobsdcon.org/cfp.php">call for papers</a>

      online.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>SMP Network Stack</title>

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

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

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

    <links>
      <url href="http://www.FreeBSD.org/projects/netperf/">Netperf home
      page</url>
    </links>

    <body>
      <p>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:</p>

      <ul>
        <li>The UMA(9) per-CPU caches have been modified to use critical
        sections instead of mutexes. Recent critical section
        optimizations make this a performance win for both UP and SMP
        systems. This results in a several percent improvement in a
        number of user space benchmarks, and larger improvement for
        kernel-only network forwarding and processing benchmarks.</li>

        <li>The malloc(9) allocator has been modified to store statistics
        per-CPU instead of using a cross-CPU statistics pool, with each
        per-CPU pool now using critical sections to synchronize access.
        This results in a measurable performance win, especially on SMP
        systems</li>

        <li>The netnatm ATM code is now MPSAFE.</li>

        <li>netipx MPSAFEty has been merged to RELENG_5.</li>

        <li>The netperf cluster has now been expanded to include two
        additional quad-CPU systems (one dual dual-core AMD system, one
        quad-CPU PIII system).</li>

        <li>libmemsetat(3) (see separate report) now corrects SMP-related
        races in the measuring of mbuf allocator statistics, as well as
        substantially improving kernel memory monitoring capabilities and
        tools.</li>

        <li>A range of locking bug fixes, and general network stack bug
        fixes.</li>

        <li>Significant updates to the SMPng web page (still more to
        do!).</li>

        <li>Identification of all non-MPSAFE network device drivers, with
        ultimatum issued, on freebsd-arch. Quite a bit of new driver
        locking work as a result (if_ed, if_de, ...).</li>

        <li>Lots of other stuff.</li>
      </ul>

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

      <p>On-going tasks include:</p>

      <ul>
        <li>Review and improvement of ifnet locking, such as address
        lists and flags.</li>

        <li>Optimization of interface start hand-off.</li>

        <li>Prototyping of queue-oriented packet hand-off in the
        stack.</li>

        <li>Performance measurement and analysis.</li>

        <li>Prototype rewrite and simplification of socket locking.</li>
      </ul>
    </body>
  </project>

  <project cat='misc'>
    <title>TrustedBSD SEBSD</title>

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

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

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

    <links>
      <url href="http://www.TrustedBSD.org/sebsd.html">TrustedBSD/SEBSD
      web page</url>
    </links>

    <body>
      <p>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.</p>

      <p>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.</p>
    </body>

    <help>
      <task>Update to new NSA FLASK implementation, which has improved
      MLS support.</task>

      <task>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.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>TrustedBSD Audit</title>

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

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

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

      <person>
        <name>
          <given>Wayne</given>

          <common>Salamon</common>
        </name>

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

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

    <links>
      <url href="http://www.trustedbsd.org/components.html#audit" />
    </links>

    <body>
      <p>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:</p>

      <ul>
        <li>The user space components, such as libbsm, include files, and
        command line utilities have been broken out into an OpenBSM
        distribution in Perforce. Improvements in OpenBSM will be made
        available separately for use by projects such as Darwin, and
        imported into the contrib area of FreeBSD.</li>

        <li>The system call table format has been updated to include an
        audit event identifier for each system call across all hardware
        platforms and ABIs (merged), and all system calls have been
        assigned event identifiers (not yet merged).</li>

        <li>The audit management daemon has been rewritten to run on
        FreeBSD (originally derived from Darwin) using /dev/audit to
        track kernel events.</li>

        <li>Many system calls now properly audit their arguments.</li>

        <li>The TrustedBSD audit3 branch has been updated to a recent
        6.x-CURRENT.</li>

        <li>Significant work has gone into synchronizing the audit event
        tables between FreeBSD, Darwin, and OpenSolaris to make sure file
        formats and events are portable.</li>

        <li>OpenBSM has been adapted to consume and generate
        endian-independent event streams.</li>

        <li>OpenBSM documentation has been created.</li>
      </ul>

      <p>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.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>libmemstat(3), UMA(9) and malloc(9) statistics</title>

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

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

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

    <links>
      <url href="http://www.watson.org/~robert/freebsd/libmemstat/">
      libmemstat(3)-derived tools</url>
    </links>

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

      <ul>
        <li>ABI-robust interface making use of accessor functions, in
        order to divorce monitoring applications from kernel/user ABI
        changes.</li>

        <li>Allocator-independent interfaces, allowing monitoring of
        multiple allocators using the same interface.</li>

        <li>CPU-cache awareness, allowing tracking of memory use across
        multiple CPUs for allocators aware of caches. Unlike previous
        interfaces, libmemstat(3) coalesces per-CPU stats in user space
        rather than kernel, and exposes per-CPU stats to interested
        applications.</li>

        <li>Ability to track memory types over multiple queries, and
        update existing structures, allowing easy tracking of statistics
        over time.</li>
      </ul>

      <p>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.</p>

      <p>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".</p>

      <p>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).</p>
    </body>

    <help>
      <task>Teach libmemstat(3) to speak libkvm(3) in order to allow
      tools linked -lmemstat to interogate kernel core dumps.</task>

      <task>Teach libmemstat(3) to interface with user space malloc and
      track malloc allocations for user space applications.</task>

      <task>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.</task>

      <task>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.</task>

      <task>Identify any remaining caching allocators in the kernel, such
      as the sfbuf allocator, and teach libmemstat(3) how to interface
      with them.</task>
    </help>
  </project>
</report>