aboutsummaryrefslogtreecommitdiff
path: root/en/news/status/report-2004-07-2004-12.xml
blob: b147a19d874232a5a8c27fa4b9e2b08f7fb81a56 (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
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
<report>
  <date>
    <month>July-December</month>

    <year>2004</year>
  </date>

  <section>
    <title>Introduction</title>

    <p>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!</p>
    
    <p>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!</p>
  </section>

  <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>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='proj'>
    <title>Project Frenzy (FreeBSD-based Live-CD)</title>

    <contact>
      <person>
        <name>
          <given>Sergei</given>

          <common>Mozhaisky</common>
        </name>

        <email>technix@ukrpost.com.ua</email>
      </person>
    </contact>

    <links>
      <url href="http://frenzy.osdn.org.ua/">Official web site</url>

      <url href="http://frenzy.osdn.org.ua/eng/">English version</url>
    </links>

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

      <p>Tasks for next release: script for installation to HDD; unified
      system configuration tool; updating of software collection.</p>
    </body>
  </project>

  <project cat='vendor'>
    <title>ALTQ</title>

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

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

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

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

      <url
      href="http://www.freebsd.org/cgi/man.cgi?query=altq&amp;manpath=FreeBSD+6.0-current&amp;format=html">
      ALTQ(4) man-page.</url>
    </links>

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

    <help>
      <task>Convert/test more NIC drivers.</task>

      <task>Write documentation.</task>
    </help>
  </project>

  <project cat='kern'>
    <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://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>
  </project>

  <project cat='kern'>
    <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://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>
  </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://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 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.</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>
  </project>

  <project cat='kern'>
    <title>TCP Cleanup and Optimizations</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/tcpcleanup.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 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.</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 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.</p>

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

    <help>
      <task>Funding for two man-month equivalents of my time.</task>

      <task>If you want or intend to sponsor US$1k or more please contact
      me in advance already now.</task>
    </help>
  </project>

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

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

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

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

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

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

        <email>qingli@speackeasy.net</email>
      </person>
    </contact>

    <links>
      <url
      href="http://lists.freebsd.org/pipermail/freebsd-current/2004-April/026380.html" />
    </links>

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

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

  <project cat='kern'>
    <title>Layer 2 PFIL_HOOKS</title>

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

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

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

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

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

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

  <project cat='proj'>
    <title>Common Address Redundancy Protocol - CARP</title>

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

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

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

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

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

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

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

    <help>
      <task>Please test and send feedback!</task>

      <task>Write documentation.</task>

      <task>Import newest OpenBSD changes.</task>
    </help>
  </project>

  <project cat='misc'>
    <title>FreeBSD Source Repository Mirror for svn/svk</title>

    <contact>
      <person>
        <name>
          <given>Kao</given>

          <common>Chia-liang</common>
        </name>

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

    <links>
      <url href="http://svn.clkao.org/svnweb/freebsd/">Repository
      browser.</url>

      <url
      href="http://svn.clkao.org/svnweb/freebsd/rss/fromcvs/branches/RELENG_5/">
      RSS for RELENG_5 commits.</url>

      <url href="http://svn.clkao.org/svnweb/freebsd/rss/fromcvs/trunk/">
      RSS for CURRENT commits.</url>

      <url href="http://svk.elixus.org/">svk homepage.</url>
    </links>

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

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

  <project cat='proj'>
    <title>Secure Updating</title>

    <contact>
      <person>
        <name>
          <given>Colin</given>

          <common>Percival</common>
        </name>

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

    <links>
      <url href="http://www.daemonology.net/portsnap/">Portsnap</url>

      <url href="http://www.daemonology.net/freebsd-update/">FreeBSD
      Update</url>
    </links>

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

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

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

  <project cat='vendor'>
    <title>Cronyx Adapters Drivers</title>

    <contact>
      <person>
        <name>
          <given>Roman</given>

          <common>Kurakin</common>
        </name>

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

    <links>
      <url href="http://www.cronyx.ru/software">Cronyx Software download
      page.</url>
    </links>

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

    <help>
      <task>Now all these drivers and sppp(4) are using recursive lock.
      So the first task is to make these locks non recursive.</task>

      <task>Second task is to check/make drivers workable in
      netgraph/async mode.</task>

      <task>I think about ability to switch between sppp/netgraph mode at
      runtime. For now you should recompile module/kernel to change
      mode.</task>
    </help>
  </project>

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

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

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

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

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

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

  <project cat='proj'>
    <title>FreeSBIE Status Report</title>

    <contact>
      <person>
        <name>
          <given>FreeSBIE</given>

          <common>Staff</common>
        </name>

        <email>staff@FreeSBIE.org</email>
      </person>
    </contact>

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

      <url href="http://liste.gufi.org/mailman/listinfo/freesbie">
      FreeSBIE Mailing List</url>
    </links>

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

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

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

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

    <help>
      <task>Translating website and documentation</task>
    </help>
  </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/~grehan/miniinst.iso">Miniinst
      ISO.</url>

      <url href="http://www.freebsd.org/~grehan/miniinst.txt">Miniinst
      relnotes.</url>
    </links>

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

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

  <project cat='proj'>
    <title>Dingo Monthly Report</title>

    <contact>
      <person>
        <name>
          <given>George</given>

          <common>Neville-Neil</common>
        </name>

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

    <links>
      <url href="http://www.freebsd.org/projects/dingo/index.html">
      Network Stack Cleanup Project.</url>
    </links>

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

  <project cat="ports">
    <title>FreeBSD GNOME Project Status Report</title>

    <contact>
      <person>
        <name>
          <given>Joe</given>

          <common>Marcus</common>
        </name>

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

    <links>
      <url href="http://www.FreeBSD.org/gnome/">FreeBSD GNOME
      Project</url>
    </links>

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

      <p>The 
      <a href="http://www.FreeBSD.org/gnome/docs/faq2.html#q21">GNOME
      Tinderbox</a>

      is still cranking away, and producing packages for both the stable
      and development releases of GNOME for all supported i386 versions
      of FreeBSD.</p>

      <p>Thanks to Michael Johnson, the FreeBSD GNOME team has recently
      been given 
      <a
      href="http://people.FreeBSD.org/~ahze/firefox_thunderbird-approved.txt">
      permission to use the Firefox and Thunderbird names</a>

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

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

    <help>
      <task>Need help porting 
      <a href="http://www.freedesktop.org/wiki/Software_2fhal">HAL</a>

      to FreeBSD (contact 
      <a href="mailto:marcus@FreeBSD.org">marcus@FreeBSD.org</a>

      )</task>

      <task>Need help porting 
      <a href="http://www.freedesktop.org/wiki/Software_2fburn">
      libburn</a>

      to FreeBSD (contact 
      <a href="mailto:bland@FreeBSD.org">bland@FreeBSD.org</a>

      )</task>

      <task>Anyone interested in reviving 
      <a href="http://www.gnomemeeting.org/">Gnome Meeting</a>

      should contact 
      <a href="mailto:kwm@FreeBSD.org">kwm@FreeBSD.org</a>
      </task>
    </help>
  </project>

  <project cat='kern'>
    <title>SMPng Status Report</title>

    <contact>
      <person>
        <name>
          <given>John</given>

          <common>Baldwin</common>
        </name>

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

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

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

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

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

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

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

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

  <project cat='kern'>
    <title>i386 Interrupt Code &amp; PCI Interrupt Routing</title>

    <contact>
      <person>
        <name>
          <given>John</given>

          <common>Baldwin</common>
        </name>

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

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

      <p>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.</p>
    </body>
  </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/">
      A best-in-class performance monitoring system for FreeBSD built
      over the hardware performance monitoring facilities of modern
      CPUs.</url>
    </links>

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

  <project cat='misc'>
    <title>Wiki with new software</title>

    <contact>
      <person>
        <name>
          <given>Josef</given>

          <common>El-Rayes</common>
        </name>

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

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

    <body>
      <p>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 &amp; 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 
      <a href="http://wiki2.daemon.li">http://wiki2.daemon.li</a>
      </p>
    </body>

    <help>
      <task>Move content from old wiki to new one.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>kgi4BSD</title>

    <contact>
      <person>
        <name>
          <given>Nicholas</given>

          <common>Souchu</common>
        </name>

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

    <links>
      <url href="http://www.freebsd.org/~nsouch/kgi4BSD">Homepage</url>

      <url href="http://wiki.daemon.li/moin.cgi/KGI" />
    </links>

    <body>
      <p>The project was very quiet (but still alive!) and mostly
      dedicated to testing by volunteers. New documentation at 
      <a href="http://wiki.daemon.li/moin.cgi/KGI">
      http://wiki.daemon.li/moin.cgi/KGI</a>

      .</p>
    </body>

    <help>
      <task>Help improving the documentation</task>
    </help>
  </project>

  <project cat='ports'>
    <title>OpenOffice.org port status</title>

    <contact>
      <person>
        <name>
          <given>Maho</given>

          <common>Nakata</common>
        </name>

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

    <links>
      <url href="http://porting.openoffice.org/freebsd/">FreeBSD
      OpenOffice.org porting status page</url>

      <url
      href="http://ooomisc.services.openoffice.org/pub/OpenOffice.org/ooomisc/FreeBSD/">
      Stable OOo Packages for FreeBSD</url>

      <url href="http://sourceforge.jp/projects/waooo/files/">Some
      volatile WIP status of packages</url>
    </links>

    <body>
      <p>OpenOffice.org 2.0 status 
      <ul>
        <li>OpenOffice.org 2.0 is planned to be released in March 2005.
        Currently developer snapshot versions are available. Now one of
        the developer version has been ported, and committed to ports
        tree (/usr/ports/editors/openoffice-2.0-devel).</li>

        <li>Packages for 5.3-RELEASE are available at 
        <a
        href="http://sourceforge.jp/projects/waooo/files/asOOo_1.9m71_FreeBSD53Intel_install_en-US.tbz">
        http://sourceforge.jp/projects/waooo/files/asOOo_1.9m71_FreeBSD53Intel_install_en-US.tbz</a>

        etc., and soon it will also available at : 
        <a
        href="http://ooomisc.services.openoffice.org/pub/OpenOffice.org/ooomisc/FreeBSD/">
        http://ooomisc.services.openoffice.org/pub/OpenOffice.org/ooomisc/FreeBSD/</a>

        with the language pack.</li>

        <li>Almost all of the patches required to build will be
        integrated to master. 
        <a href="http://www.openoffice.org/issues/show_bug.cgi?id=40187">
        http://www.openoffice.org/issues/show_bug.cgi?id=40187</a>
        </li>

        <li>Now we have three external ports : lang/gcc-ooo,
        devel/bison-devel and devel/epm. To avoid regressions and bugs of
        gcc, we use the exactly same gcc as Hamburg team (former
        StarDivision) uses. We need bison later than 1.785a. Note this
        port CONFLICTS with devel/bison. Epm is a package manager which
        now OpenOffice.org uses.</li>
      </ul>

      OpenOffice.org 1.1 status 
      <ul>
        <li>1.1.4 has been ported and committed to ports tree.</li>

        <li>Packages are available at 
        <a
        href="http://ooomisc.services.openoffice.org/pub/OpenOffice.org/ooomisc/FreeBSD/">
        http://ooomisc.services.openoffice.org/pub/OpenOffice.org/ooomisc/FreeBSD/</a>

        .</li>

        <li>Now recognizes Linux version of Java JDKs.</li>
      </ul>

      General 
      <ul>
        <li>Invoking OpenOffice.org from command line has been changed.
        Now `.org' is mandatory. e.g. openoffice-1.1.4 -&gt;
        openoffice.org-1.1.4. Since the name of the software is
        OpenOffice.org, not OpenOffice. We are also considering the name
        of the ports (/usr/ports/editors/openoffice-2.0-devel -&gt;
        openoffice.org2-devel etc)</li>

        <li>Now marked as BROKEN OOo ports for prior than 5.3-RELEASE and
        4.11-RELEASE. These ports have been suffering from a minor
        implementation difference of rtld.c between FreeBSD and Linux,
        Solaris, NetBSD. We have been applying a patch adding _end in
        mapfile. We need this since rtld depend on existence of _end
        symbol in obj_from_addr_end, unfortunately this seem to induce
        hard-to-solve errors. A great progress has been made kan, rtld
        now do not depend on _end. A fix was committed 2004/02/25
        17:06:16, 
        <a
        href="http://www.freebsd.org/cgi/cvsweb.cgi/src/libexec/rtld-elf/rtld.c.diff?r1=1.91&amp;r2=1.92&amp;f=h">
        http://www.freebsd.org/cgi/cvsweb.cgi/src/libexec/rtld-elf/rtld.c.diff?r1=1.91&amp;r2=1.92&amp;f=h</a>

        .</li>

        <li>Benchmark test! Building OOo requires huge resources. We just
        would like to know the build timings, so that how your machine is
        well tuned for demanding jobs. 
        <a href="http://porting.openoffice.org/freebsd/benchmark.html">
        http://porting.openoffice.org/freebsd/benchmark.html</a>

        . Currently, GOTO daichi (daichi)'s Pentium 4 3.0GHz machine
        build fastest. Just 1h25m22.42s for second build of OOo 1.1.4,
        using ccache.</li>

        <li>SDK tutorial is available at 
        <a href="http://porting.openoffice.org/freebsd/sdk.html">
        http://porting.openoffice.org/freebsd/sdk.html</a>
        </li>

        <li>Still implementation test and quality assurance have not yet
        been done. Even systematic documentations are not yet available
        for FreeBSD. 
        <a href="http://porting.openoffice.org/freebsd/testing.html">
        http://porting.openoffice.org/freebsd/testing.html</a>

        and 
        <a href="http://porting.openoffice.org/freebsd/QA.html">
        http://porting.openoffice.org/freebsd/QA.html</a>

        for details.</li>
      </ul>

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

      <person>
        <name>
          <given>Daniel</given>

          <common>Hartmeier</common>
        </name>

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

    <links>
      <url href="http://pf4freebsd.love2party.net/">PF4FreeBSD
      Homepage</url>
    </links>

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

      <ul>
        <li>Possible NULL-deref with user/group rules.</li>

        <li>Crash with binat on dynamic interfaces.</li>

        <li>Silent dropping of IPv6 packets with option headers.</li>

        <li>Endless loops with `static-port' rules.</li>
      </ul>

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

      <p>The Handbook's Firewall section was modified to mention PF as an
      alternative to IPFW and IPF.</p>
    </body>

    <help>
      <task>Write more documentation/articles.</task>

      <task>Write an IPFilter to PF migration guide/tool.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>New Modular Input Device Layer</title>

    <contact>
      <person>
        <name>
          <given>Philip</given>

          <common>Paeps</common>
        </name>

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

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

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

      <ul>
        <li>Easier development of new input device drivers.</li>

        <li>Support for concurrent use of multiple input devices,
        particularly the hot-pluggable kind.</li>
      </ul>

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

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

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

  <project cat='proj'>
    <title>Funded FreeBSD kernel development</title>

    <contact>
      <person>
        <name>
          <given>Poul-Henning</given>

          <common>Kamp</common>
        </name>

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

    <links>
      <url
      href="http://lists.freebsd.org/pipermail/freebsd-announce/2004-December/000971.html">
      Long winded status report.</url>
    </links>

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

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

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

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

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

    <links>
      <url href="http://www.evilcoder.org/content/section/6/39/">The
      project's webpage.</url>

      <url href="http://www.FreeBSD.org/doc/nl/books/handbook/">The
      officially released documentation.</url>

      <url href="http://www.evilcoder.org/freebsd_html/">Preview of the
      documentation.</url>
    </links>

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

    <help>
      <task>Translating the Handbook</task>

      <task>Checking the grammar of the Dutch Handbook</task>

      <task>Translate the rest of the documentation</task>
    </help>
  </project>

  <project cat='ports'>
    <title>Ports Collection</title>

    <contact>
      <person>
        <name>
          <given>Mark</given>

          <common>Linimon</common>
        </name>

        <email>linimon_at_FreeBSD_dot_org</email>
      </person>

      <person>
        <name>
          <given>Erwin</given>

          <common>Lansing</common>
        </name>

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

    <links>
      <url href="http://www.FreeBSD.org/ports/">The FreeBSD ports
      collection</url>

      <url href="http://portsmon.firepipe.net/index.html">FreeBSD ports
      monitoring system</url>
    </links>

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

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

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

      , 
      <tt>IGNORE</tt>

      , 
      <tt>DEPRECATED</tt>

      , 
      <tt>USE_GCC</tt>

      , and and others.</p>

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

      <p>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 
      <a href="http://people.FreeBSD.org/~fenner/portsurvey">distfile
      survey</a>

      .</p>

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

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

      <p>Ports QA reminders -- portmgr team members are now sending out
      periodic email about problems in the Ports Collection. The current
      set includes: 
      <ul>
        <li>a public list of all ports to be removed due to security
        problems, build failures, or general obsolescence, unless they
        are fixed first</li>

        <li>private email to all maintainers of the affected ports
        (including ports dependent on the above)</li>

        <li>private email to all maintainers of ports that are marked 
        <tt>BROKEN</tt>

        and/or 
        <tt>FORBIDDEN</tt>
        </li>

        <li>private email to maintainers who aren't committers, who have
        PRs filed against their ports (to flag PRs that might never have
        been Cc:ed to them)</li>

        <li>public email about port commits that break building of 
        <tt>INDEX</tt>
        </li>

        <li>public email about port commits that send the revision
        metadata backwards (and thus confuse tools like portupgrade)</li>
      </ul>

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

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

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

      <task>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." 
      <a
      href="http://portsmon.firepipe.net/ploticus/uniqueerrorcounts.html">
      Here is the entire list</a>

      ; the individual bars are clickable. This will become more and more
      important now that the amd64 port has been promoted to tier-1
      status.</task>

      <task>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 
      <a href="http://pointyhat.FreeBSD.org/errorlogs/">pointyhat</a>

      ) and this will remain a focus area.</task>
    </help>
  </project>

  <project cat="doc">
    <title>Hardware Notes</title>

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

          <common>Nielsen</common>
        </name>

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

      <person>
        <name>
          <given>Christian</given>

          <common>Brueffer</common>
        </name>

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

    <links>
      <url
      href="http://www.FreeBSD.org/releases/5.3R/hardware-i386.html">
      FreeBSD/i386 5.3-RELEASE Hardware Notes</url>

      <url
      href="http://www.freebsd.org/relnotes/CURRENT/hardware/i386/article.html">
      FreeBSD/i386 6.0-CURRENT Hardware Notes</url>
    </links>

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

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

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

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

    <contact>
      <person>
        <name>
          <given>Jacques</given>

          <common>Vidrine</common>
        </name>

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

      <person>
        <name>
          <common>Security Officer</common>
        </name>

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

      <person>
        <name>
          <common>Security Team</common>
        </name>

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

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

      <url href="http://www.freebsd.org/security/charter.html">FreeBSD
      Security Officer Charter</url>

      <url
      href="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/staff-listing.html#STAFF-SECTEAM">
      FreeBSD Security Team members</url>

      <url href="http://vuxml.freebsd.org/">FreeBSD VuXML web site</url>

      <url href="http://cvsweb.freebsd.org/ports/security/portaudit/">
      portaudit</url>
    </links>

    <body>
      <p>During 2004, there were several notable changes and events
      related to the FreeBSD Security Officer role and Security Team.</p>

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

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

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

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

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

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

  <project cat='kern'>
    <title>Sync Protocols (SPPP and NETGRAPH)</title>

    <contact>
      <person>
        <name>
          <given>Roman</given>

          <common>Kurakin</common>
        </name>

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

    <links>
      <url href="http://www.freebsd.org/~rik">My FreeBSD home page. You
      could find here some results of my work. Unfortunately I do not
      update this page often.</url>
    </links>

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

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

  <project cat="proj">
    <title>Improved Multibyte/Wide Character Support</title>

    <contact>
      <person>
        <name>
          <given>Tim</given>

          <common>Robbins</common>
        </name>

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

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

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

      <p>Work is progressing on implementations of the POSIX iconv and
      localedef interfaces for potential inclusion into the FreeBSD 6.0
      release.</p>
    </body>
  </project>

  <project cat='arch'>
    <title>FreeBSD/arm status report</title>

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

          <common>Houchard</common>
        </name>

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

    <links>
      <url href="http://www.freebsd.org/platforms/arm">FreeBSD/arm
      project page.</url>
    </links>

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

  <project cat='kern'>
    <title>ATA Driver Status Report</title>

    <contact>
      <person>
        <name>
          <given>S&#248;ren</given>

          <common>Schmidt</common>
        </name>

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

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

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

      <p>There is also support coming for a few new chipsets as
      usual.</p>

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

  <project>
    <title>Atheros Wireless Support</title>

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

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

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

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

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

      <p>Work is actively going on to add Atheros' SuperG
      capabilities.</p>
    </body>
  </project>

  <project>
    <title>New DHCP Client</title>

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

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

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

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

      <p>Incorporation into the base system is waiting on a volunteer who
      will shepherd the changes into the tree and deal with bugs.</p>
    </body>
  </project>

  <project cat='misc'>
    <title>EuroBSDCon 2004 submitted papers are online</title>

    <contact>
      <person>
        <name>
          <given>Patrick M.</given>

          <common>Hausen</common>
        </name>

        <email>hausen@punkt.de</email>
      </person>
    </contact>

    <links>
      <url href="http://www.eurobsdcon2004.de/papers.html">
      Papers/Presentations Download Page</url>
    </links>

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

  <project>
    <title>ifconfig Overhaul</title>

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

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

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

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

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

  <project cat='kern'>
    <title>Network Stack Locking</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/">FreeBSD
      Project Netperf project web page.</url>

      <url href="http://www.watson.org/~robert/freebsd/netperf/">Robert
      Watson's personal Netperf web page.</url>
    </links>

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

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

      <p>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; 
      <em>netatalk cleanup and locking merged to FreeBSD CVS</em>

      ; 
      <em>locking for many netgraph nodes merged to FreeBSD CVS</em>

      ; 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); 
      <em>IFF_NEEDSGIANT interface flag added to support compatibility
      operation for unlocked device drivers (merged)</em>

      ; merged accept filter locking to FreeBSD CVS; documented uidinfo
      locking strategy (merged); Giant use reduced in fcntl().</p>

      <p>August, 2004: UMA KTR tracing (merged); UDP broadcast receive
      locking optimizations (merged); TCP locking cleanup and
      documentation; IPv6 inpcb locking, cleanup, and structural
      improvements; 
      <em>IPv6 inpcb locking merged to FreeBSD CVS</em>

      ; KTR for systems calls added to i386; 
      <em>substantial optimizations of entropy harvesting synchronization
      (merged)</em>

      ; callout(9) sampling converted to KTR (merged); inpcb socket
      option locking (merged); GIANT_REQUIRED removed from netatalk in
      FreeBSD CVS; 
      <em>merged ADAPTIVE_GIANT to FreeBSD CVS, resulting in substantial
      performance improvements in many kernel IPC-intensive
      benchmarks</em>

      ; 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; 
      <em>MP_WATCHDOG, a facility to dedicate additional HTT logical CPUs
      as watchdog CPUs developed (merged)</em>

      ; annotation of UNIX domain socket locking merged to FreeBSD CVS; 
      <em>kqueue locking developed and merged by John-Mark Gurney</em>

      ; 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); 
      <em>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)</em>

      ; additional locking optimizations for entropy code (merged); Giant
      disabled by default in the netperf development branch (merged).</p>

      <p>September, 2004: bugs fixed relating to Netgraph's use of the
      kernel linker while not holding Giant (merged); 
      <em>merged removal of Giant over the network stack by default to
      FreeBSD CVS</em>

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

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

      <p>November, 2004: cleanup of UDPv6 static global variables
      (merged); 
      <em>FreeBSD 5.3 released! First release of FreeBSD with an MPSAFE
      and Giant-free network stack as the default configuration!</em>

      ; additional TCP locking documentation and cleanup (merged); 
      <em>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)</em>

      ; an accept bug is fixed (merged) experimental network polling
      locking introduced; 
      <em>substantial measurement and optimization of mutex and locking
      primitives (merged)</em>

      ; 
      <em>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</em>

      ; 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); 
      <em>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)</em>

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

      <p>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); 
      <em>IPX/SPX marked MPSAFE (merged)</em>

      ; IP socket options locking merged to FreeBSD; SPPP locked by Roman
      Kurakin (merged); UNIX domain socket locking fixes by Alan Cox
      (merged).</p>

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

  <project cat='proj'>
    <title>FreeBSD profile.sh</title>

    <contact>
      <person>
        <name>
          <given>Tobias</given>

          <common>Roth</common>
        </name>

        <email>ports@fsck.ch</email>
      </person>
    </contact>

    <links>
      <url href="https://projects.fsck.ch/profile">FreeBSD profile.sh
      site</url>
    </links>

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

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

  <project cat='proj'>
    <title>FreeBSD Release Engineering</title>

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

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

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

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

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

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

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

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

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

  <project>
    <title>Wireless Networking Support</title>

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

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

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

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

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

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

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

    <help>
      <task>Drivers other than ath need updates to support the new
      security protocols</task>

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

  <project cat='arch'>
    <title>FreeBSD on Xen</title>

    <contact>
      <person>
        <name>
          <given>Kip</given>

          <common>Macy</common>
        </name>

        <email>kmacy@fsmware.com</email>
      </person>
    </contact>

    <links>
      <url href="http://www.fsmware.com/xenofreebsd/">binaries + source +
      slightly out of date HOWTO</url>

      <url href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/">Xen
      project page</url>
    </links>

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

    <help>
      <task>FreeBSD support for running in Domain 0 (host)</task>

      <task>FreeBSD support for VM checkpoint and migration</task>
    </help>
  </project>
</report>