FreeBSD Network Status Week 46 2024

The meta discussion is moving to the end of the report, meta meta discussion will hopefully be rare.

Goings on

Fall 2024 FreeBSD Summit

The Fall 2024 FreeBSD Summit was last week. There were some great presentations which are recorded on the FreeBSD YouTube Channel . I don't know if or when the sessions will be broken up, you can scroll through the recorded live streams to find talks of interest.

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 is here

There are only two weeks left for you to submit something.

FreeBSD 14.2 Code Slush in Effect

From Colin:

This is a reminder that we have one week remaining in the 14.2-RELEASE
code slush and will start BETA builds on November 1st.  The schedule
for the release cycle is:

 ports quarterly branch:  October 1, 2024
 reminder email:          October 7, 2024
 stable/14 slush:         October 18, 2024
 doc/ tree slush:         October 25, 2024
 releng/14.2 branch:      November 1, 2024
 BETA1 build starts:      November 1, 2024
 BETA2 build starts:      November 8, 2024
 doc/ tree tag:           November 8, 2024
    <<< WE ARE HERE >>>
 BETA3 build starts:      November 15, 2024
 ports package builds:    TBD (Between November 8 and 22)
 RC1 build starts:        November 22, 2024
 RELEASE build starts:    November 29, 2024
 RELEASE announcement:    December 3, 2024
 14.1 EoL:                March 31, 2025
 14.2 EoL:                September 30, 2025
 14.* EoL:                November 30, 2028

https://wiki.freebsd.org/Releng/14.2ISSUES

And an update today:

I'm pushing the BETA3 build back by 24 hours so I can re-run this week's
current+stable snapshots; the new container-building code broke stuff but
I *think* I've got it fixed now so I want to try again in case I can get
that into 14.2-BETA3.

This also allows a bit more time for people to look at a vfs issue.  I
already have avg, mckusick, and pho looking at it, but if you know
anything about VFS it would be great to have more eyes; see the thread
"vn_alloc_cyclecount is always zero" and commit ab05a1cf321a.

Note: Colin is only sending these announcements to a private list. I asked him last week if I can share them and he said it wasn't a problem. I'll pester him to share these updates to a public list as well.

Struct ifnet is now hidden

Hi everyone,

Many thanks to everyone involved, either fixing ports, reviewing
changes, or assisting with the API, struct ifnet is now hidden from
drivers and userspace.  This means drivers now use the IfAPI, currently
largely consisting of just getters and setters in place of direct
access, with tools/ifnet/convert_ifapi.sh being a good starting point
for adapting drivers.

In struct ifnet's place is if_t, an opaque pointer.  "Blessed" parts of
the kernel, effectively anything sys/net*, modulo sys/netlink, can
directly access it, as those directories comprise the network stack, so
need direct access, as they manage the interfaces.  Manpage updates
will be coming "soon", I'm hoping in the next few weeks, and will
likely need lots of review and editing.

Again, thanks for everyone's help.  I hope the road forward with this
is not too bumpy.

- Justin

You can find this message on the freebsd-arch mailing list

Removal of devel/kyua

Hi,

Kyua has been part of base since 13.0, today it means all supported versions.

The tests in /usr/tests usually have parity with Kyua in base, i.e. even if we
consider older unsupported systems then new features from the latest port
offer limited benefits. Anyway, these cases are not supported.

So, in order to avoid double work and user confusion, the devel/kyua port is
being considered for removal.

The motivation of this notification is to collect comments and suggestions in
case if the removal is not a good idea for some reasons.


Best regards,
igoro

igoro@ has been doing a lot of work on testing, particularly in pf. This message went to to three mailing lists ( see it on freebsd-hackers )

Transport

rscheff@ is continuing his work on improving SACK behaviour. For the last while we have been discussing TSO behaviour and loss. Other changes are tidy ups to have we do calculations and other macros.

Network Stack

As mentioned above we have a nice series of commits tidying up the use of ifnet to make it private:

Improvements to sendfile in the Linux compat code.

More tidying in the PCB code:

Netdev

It is not often you get a new media type, this comes with a nice explanation:

net: if_media for 1000Base-BX BiDi
1000Base-BX uses two wavelengths, commonly 1310nm, 1490nm, 1550nm, or
1590nm, in a Coarse Wavelength Division Multiplexing (CWDM) arrangement
so that a single fiber strand may carry both upstream and downstream.
It is sometimes referred to as BiDi for bi-directional usage of one
fiber.

Optics must be paired such that the RX and TX wavelengths cross over,
with one side often called U(pstream) and the other D(ownstream).

This technology is useful for increasing link density or working around
construction issues, and is also frequently used as a last mile delivery
technology for FTTx.

And a well known trick for the X520 for lab measurements (no, I don't know this trick).

MAN PAGES!

The only way you get a reputation for good documentation is by continuous consistent improvement.

Some nice changes in WiFi this week, iwlwifi device require firmware which has been in tree until now. It is going to move out of our source tree to somewhere else and be made available by a 'fw update' package of some sort.

Firewalls

Fixes and tidying in pf and more probe points.

If you have used FreeBSD as a developer of a sysadmin you will have heard about how amazing dtrace is. A major quality of life improvement for anyone having to use dtrace for analysis on a live system are discrete probe points. They let you get logical events and make it so you don't have to read kernel code to guess at what is going on (ala fdt probes).

ipfilter is moving forward!

Other stuff

This was an interesting one:

Use the correct idle routine on recent AMD EPYC servers

We have been incorrectly choosing the "hlt" idle method on modern AMD
EPYC servers for C1 idle. This is because AMD also uses the Functional
Fixed Hardware interface. Due to not parsing the table properly for
AMD, and due to a weird quirk where the mwait latency for C1 is
mis-interpreted as the latency for hlt, we wind up choosing hlt for
c1, which has a far higher wake up latency (similar to IO) of roughly
400us on my test system (AMD 7502P).

This patch fixes this by:

- Looking for AMD in addition to Intel in the FFH
 (Note the vendor id of "2" for AMD is not publically documented, but
 AMD has confirmed they are using "2" and has promised to document it.)

- Using mwait on AMD when specified in the table, and when CPUid says
 its supported

- Fixing a weird issue where we copy the contents of cx_ptr for C1 and
 when moving to C2, we do not reinitialize cx_ptr. This leads to
 mwait being selected, and ignoring the specified i/o halt method
 unless we clear mwait before looking at the table for C2.

I'm not sure what the actual impact of this change is, I would guess a reduction in power consumption on most servers (because most servers are at least 40% idle). It might also improve responsiveness, but probably not at a human observable level.

Please Send Feedback

No stream this week, there was a big gap in last nights sleep (hazards of having a young child) and I'm not sure I would make a lot of sense (if I ever do). I have moved the writing time to be around 9am Eastern Time and will aim to stream in this slot next week.

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 .