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)

CFP info is here

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.

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                │
     └───────────────────────────────────────────┘

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.

Firewalls

Tests are steadily improving.

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

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.

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 .