All tests in /usr/src/regress are run every day by cron(8). The test machines are automatically installed from an i386 or amd64 snapshot, the current source tree is checked out and necessary packages are installed. The results are shown over the time in a HTML table. Complete log output from the setup and test run exist. Tests are skipped if packages are missing, if they are specific for another architecture, or if additional remote machines are missing. The framework to run everything is available at github.dmesg
Every day performance numbers are generated with an amd64 snapshot. The machine has 10 GBit/sec interfaces. The routing tests measure the forwarding throughput with TCP streams and UDP packets with pf turned on. For proxy testing relayd(8) is accepting TCP connections, connects to a server and splices the content. For testing IPsec two OpenBSD machines encapsulate traffic in tunnel mode. Although the results are fluctuating, trends over the time can be seen.
Traffic is generated by multiple GNU/Linux machines. They have three 1 GBit/sec interfaces each and can be combined as client and server clusters. Testing TCP is done with iperf and a maximum of 30 parallel streams. The UDP tests are also based on iperf and use 3 to 9 streams. The rate of packet generation is adjusted with bisection up to a precision of 5 MBit/sec. The maximum allowed packet loss for valid measurements is 0.1%. In proxy mode each TCP stream from a Linux client is connected to its own listen socket at relayd and from there forwarded to the corresponding Linux server. The socket buffer size of relayd is set to 262144. Each measurement is performed for 60 seconds.dmesg