FreeBSD Network Status Week 45 2024
No stream this week, doing the streams in the morning means that if there is any pressure from elsewhere in my life that makes me later they become quite stressful. They also take a big exertion, running a stream and writing at the same time is hard work, even when no one speaks to me.
I am torn about scheduling, things put off tend to get squeezed out, this was a motivator for doing them at the start of the day. As my mornings are proving busy I'm thinking about moving the writing and stream out to 1400 UK time. This has the benefit of being 9am for the East Coast US for most of the year.
Goings on
This is a lighter week for network stack goings on, I'm still a few reports away from being able to pick out a trend. From the reports I have written this week has the fewest taken commits, but it is within 10% of other light weeks. It is 50% the volume of the busiest weeks.
These numbers are very noisy, I have a habit of taking interesting stuff along with the networking stuff.
Fall 2024 FreeBSD Summit
The summit started yesterday and there are live streams on YouTube, Day One is here , there isn't a link for Day Two right now you can find it on the FreeBSDProject YouTube channel .
update: Day Two
I caught Ian Evans Talk yesterday while I was making supper, it was great to watch and see how they have built out rural internet infrastructure. It was on a project like this that I first got paid to do cool things with the Internet.
BSD Devroom at FOSDEM 2024
Welcome to the BSD Devroom Call For Participation. The BSD Devroom aims
to provide a dedicated space for presentations covering BSD operating
system family.
Key dates
Proposals can be submitted by October the 30th, 2024
Submission deadline : 1st December 2024 Brussels time
Announcement of selected talks : 15th of December 2024
Conference dates : 1 & 2 February 2025
BSD devroom date : Saturday February 1st, 2025 afternoon (second half)
Transport
TCP is very complex, this change fixes setting the congestion window when a SYN is lost. I don't remember talking about what the cwnd was being set to before this change. cwnd goes to 1 if a SYN has to be retransmitted, packet loss during establishment can make your connection very painful.
More tidy ups in the SCTP code, I know that is the only comment I manage most weeks. I think the continued work on SCTP is incredible considering how difficult it is to point at a use case.
-
518a1163d0aa sctp: fix debug message
-
523913c94371 sctp: improve handling of address changes
-
470a63cde428 sctp: garbage collect two unused functions
-
bf11fdaf0d09 sctp: don't consider the interface name when removing an address
-
d839cf2fbb47 sctp: editorial cleanup
Netdev
Improvements to the
gve(4)
driver which is used in GCE. The live lock commit
comes with a wonderful diagram:
gve: Fix TX livelock
Before this change the transmit taskqueue would enqueue itself when it
cannot find space on the NIC ring with the hope that eventually space
would be made. This results in the following livelock that only occurs
after passing ~200Gbps of TCP traffic for many hours:
100% CPU
┌───────────┐wait on ┌──────────┐ ┌───────────┐
│user thread│ cpu │gve xmit │wait on │gve cleanup│
│with mbuf ├────────►│taskqueue ├────────►│taskqueue │
│uma lock │ │ │ NIC ring│ │
└───────────┘ └──────────┘ space └─────┬─────┘
▲ │
│ wait on mbuf uma lock │
└───────────────────────────────────────────┘
-
40097cd67c0d gve: Fix TX livelock
-
2348ac893d10 gve: Add DQO QPL support
-
d438b4ef0cfc gve: Add DQO RDA support
kbowling@ has made
igb(4)
work better with misreporting SFP receivers.
Fix build of ice with options RSS.
Bluetooth fixes! I'm not sure if I should be surprised, but I am very surprised.
-
5036d9652a57 rtlbtfw: Firmware loader for Realtek 87XX/88XX bluetooth USB adaptors
-
24ae172a5035 ng_ubt(4): do not attach Realtek 87XX/88XX adaptors in bootloader mode.
-
aa0b938434a8 iwmbtfw(8): Ignore unexpected HCI events
-
0b23c50ae834 ng_ubt_intel: Ignore unexpected HCI events
-
c1643cedbf24 iwmbtfw(4): Add support for 9260/9560 bluetooth adaptors
-
19a577ea5cae ng_ubt_intel: Allow to attach to 9260 bluetooth adaptors
Firewalls
Tests are steadily improving.
-
609fa228bae6 pft_ping: improve IPv6 address comparison
-
a4e64fcd6808 pf tests: test kill and clear source nodes paths
Fixes in the build for pf, including making it work when IPv4 is disabled (we would have IPv6 in that case, no need for pf with no ip stack).
-
9ca328626400 pf: fix build on kernels without "options INET"
-
3f6a34cafe57 pf: fix cmd id for PFNL_CMD_GET_ADDR
-
4ee6a830d6c1 pf: Fix a use of an uninitialized variable
Plumbing to allow ipfilter options to be settable during put from rc.conf.
User Tooling
Ping tests improved, this is good because ping is a core tool which needs attention. There was a lot of churn trying to get the recent 'large ping' change in, more tests more better.
-
5797a03fe8a7 ping tests: Run tests unprivileged inside a vnet
-
8b13cb9d654c ping tests: Silence deprecation warnings
-
4859030ef193 ping: tests: Align with Scapy defaults
-
2e29bf7a2ae6 ping: tests: Cleanup IPOption()s
Improvements to tftpd tests, tftpd is an old program that was written to be launched by inetd and this complicated testing. Should we have a tftpd is another question.
Other stuff
Some excellent other commits rolling by, first a change to the vmm interface which enables creation and destruction via a file interface rather than the old sysctl interface. As the commit explains this is a step towards narrowing the privileges required to manage virtual machines.
A previous fix to the bell frequency (yes the pc speaker) was accidentally reverted and has been reinstated. The original commit message is a great read:
Please Send Feedback
I would love to know if this summary was any help, if it was, or if you think I should cover other thing please let me know (thj@freebsd.org).
If you find a typo or have a correct let me know and I'll thank you at the end here.
You can see all prior posts here. ( rss )
My work on FreeBSD is supported by the FreeBSD Foundation , you can contribute to improving FreeBSD with code, documentation or financially by donating to the FreeBSD Foundation .