Ongoing Short Term Projects
glebius@ asks whether it makes sense to improve the TCP timer precision. tuexen@ states that this is very useful for testing purposes. glebius@ will provide a patch to tuexen@ for testing and tuexen@ will provide feedback, if such a patch us useful for FreeBSD in general. This applies to the default stack only, not the the RACK or BBR stack, which uses HPTS for timers. Setting the sysctl variable kern.timecounter.alloweddeviation to zero allows the timers to run of very precisely, which is useful when running packetdrill. However, it affects the overall system performance.
At least for testing purposes (packetdrill) it would be good to have LRO support for tun interfaces. tuexen@ suggested to generalize LRO to not depend on an Ethernet header being present. gallatin@ prefers to not make the LRO code more complex, since it most likely will impact the performance. tjh@ has D37437 under review, which allows the tun interface to add an Ethernet header. tuexen@ will test this to see if it can also be used to enable LRO for the tun interface. This seems netmap specific. tuexen@ will consider to use tap interfaces in packetdrill.
D28822 improves PRR. rrs@ and tuexen@ will review. Will be committed after stable/14 is branched.
- BBLog is missing a man page. tuexen@ will write one.
- tuexen@ will add tests for handling RST ACK segments in all states and test the base, RACK and BBR stack.
glebius@ is looking at an optimization of accept() by avoiding memory allocation and free. He will bring up a review soon.
Ongoing Longer Term Projects
- Now the RACK and the BBR stack are compiled by default in head. rrs@ will remove the BBR stack, since it has several limitations. We discussed if the RACK stack could be made the default and what should drive this decision. tuexen@ will reach out to the mailing list to ask people to test the RACK stack and provide feedback. rrs@ will do some single stream performance testing and provide data to rscheff. In January, we will look again at the decision process based on the feedback we got. TCPHPS needs to be enabled, tuexen@ will do it.
- There seem to be some BBR users. So maybe keep it?
- It was discussed that it would be a good idea to move the freebsd stack from ticks to micro seconds.
rscheff@ is improving AccECN code: D36303. rrs@ will review it and implement it for the rack stack. Also the interaction between LRO and AccECN++ has to be taken into account. D42563 further adds the support of ACKofACK.
D23230 is implementing ECN++. rrs@ will review it.
tuexen@ wants to write a tool which dumps the BBLog information of a TCP endpoint from a life system or a core. Using kvm_read() has drawbacks as glebius@ pointed out, using a python kgdb script may be an alternative. An alternative is to write a python kgdb script which pumps data into tcplog_dumper. This would allow to minimize code duplication. @glebius will try to work on this soon.
30 November 2023 @ 1500 UTC using FreeBSDTCPCall