FreeBSD Network Status Reporthttps://adventurist.me/fbsd-networkstatus.xmlAdventurist.me: Letters into the voidhttp://www.rssboard.org/rss-specificationpython-feedgenenSun, 26 Jul 2026 12:59:37 +0000 FreeBSD Network Status Week 39 2024https://adventurist.me/posts/00326<p> This is an experiment in creating tooling driven reports from the FreeBSD development ecosystem, git, code review and bug tracking. The goal is to provide an insight into what has happened in FreeBSD in the last little while, but with limited time to gather, assess and write up what is going on. I am only going to focus on "networking", which for this week was about a third of all commits to main (last week it was about half). </p> <p> It is a process that will lead to things being missed, don't feel bad, let me know and I'll add the stuff you think is important. </p> <p> This report was generated on Friday 27th September 2024 for the period between "last week" and "now" as git understand them. The git log command was: </p> <pre><code>git log --format="%h" --after="last week" --before="now" </code></pre> <p> With this report the tooling lets me take or leave commits and generates urls and such, but only on the FreeBSD <code> main </code> branch. I'll add stable branches for future reports, but first I want to see what can be done in the allotted time. </p> <p> I also have searches and a little tooling for dealing with bugs (bugzilla) and reviews (phabricator), but neither of these platforms are as friendly to program as git. That should tell you what they are like. </p> <p> I plan to write a few of these and if there is demand decided if the time investment is worth it. I'm only going to continue if I think it is worth the work. </p> <h2> Goings on </h2> <p> There are two important events invisible to the development system in the last week, <a href="https://2024.eurobsdcon.org"> EuroBSDcon </a> and the accompanying <a href="https://wiki.freebsd.org/DevSummit/202409"> DevSummit </a> . While they could show up, it doesn't look like anyone used the "Event:" tag on a commit to main in apart from one GSoc commit earlier in the month. </p> <p> <a href="https://lists.freebsd.org/archives/freebsd-current/2024-September/006432.html"> Stab week </a> ran without much happening, there is 1 reported issue discovered with <code> ixl(4) </code> <a href="https://lists.freebsd.org/archives/freebsd-current/2024-September/006456.html"> which has been reverted </a> . </p> <p> 170 commits matched my log command and I thought 64 of them were "networking" based on a cursory glance. </p> <h2> Transport </h2> <p> <a href="https://wiki.freebsd.org/TransportProtocols/19September2024"> The regular <code> #transport </code> meeting coincided </a> with the FreeBSD DevSummit. The next meeting is on the 3rd of October 2024, if you have issues with transport protocols (TCP, UDP, SCTP) or the socket layer please join, there is a public meeting link on each agenda page ( <a href="https://wiki.freebsd.org/TransportProtocols"> accessible via this wiki page </a> ). It is more business like than chat ops, which helps us mostly keep the meetings to less than the planned hour. </p> <p> Two sets of changes landed in my filter, the MAC change is the first in some further work tidying up the MAC SYN code. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=78e1b031d2e8"> <code> 78e1b031d2e8 tcp: improve MAC error handling for SYN segments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2fb778fab893"> <code> 2fb778fab893 MAC: improve handling of listening sockets </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3f2792166aee"> <code> 3f2792166aee MAC: improve consistency in error handling </code> </a> </li> </ul> <p> The second are tidying up stuff in the TCP stack. The last remanent of a broken attempt to control burstiness of the TCP stack 20 years ago. We turned it back on a couple of years ago and I'm pretty sure it deadlocked connections immediately. TCP is very difficult. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a00c3a94bf64"> <code> a00c3a94bf64 tcp: remove remnants of 20+ year old disabled code from d912c694ee00 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=87fbd9fc7fc5"> <code> 87fbd9fc7fc5 tcp: remove unused socket option names </code> </a> </li> </ul> <h2> Netdev </h2> <p> Most of the changes this week land in device drivers, it is most of the kernel after all. </p> <p> bz@ did some git to add missing tracking for vendored Linux WiFi drivers. The commits are 'empty', but contain evil: </p> <pre><code>This was done using what I'd call "git magic" provided by Ed no one else will hopefully ever need again. </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e3b12ef6f74e"> <code> e3b12ef6f74e Merge remote-tracking branch 'freebsd/vendor/Linux/rtw89' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3c0de76f06ef"> <code> 3c0de76f06ef Merge remote-tracking branch 'freebsd/vendor/Linux/rtw88' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c9f9342a481d"> <code> c9f9342a481d Merge remote-tracking branch 'freebsd/vendor/Linux/mt76' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bbd5885bfc15"> <code> bbd5885bfc15 Merge remote-tracking branch 'freebsd/vendor/Linux/iwlwifi' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d8f6658c9a37"> <code> d8f6658c9a37 Merge remote-tracking branch 'freebsd/vendor/Linux/ath12k' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=182375d342bc"> <code> 182375d342bc Merge remote-tracking branch 'freebsd/vendor/Linux/ath11k' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=114f709b088c"> <code> 114f709b088c Merge remote-tracking branch 'freebsd/vendor/Linux/ath10k' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=413c5e9082a7"> <code> 413c5e9082a7 Merge remote-tracking branch 'freebsd/vendor/Linux/ath-common' </code> </a> </li> </ul> <p> Improvements and updates to e1000 (igb, em) have been coming in from kbowling@, with igb updated to 2.25.28-fbsd: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=930a1e6f3d2d"> <code> 930a1e6f3d2d e1000: Delay safe_pause switch until SI_SUB_CLOCKS </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9bf9164fc8aa"> <code> 9bf9164fc8aa e1000: Clean up ITR/EITR in preparation for AIM </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1c578f1c9311"> <code> 1c578f1c9311 e1000: Clean up legacy absolute and packet timers </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c9021340a326"> <code> c9021340a326 e1000: Add sysctl for igb(4) DMA Coalesce </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2e78e568c268"> <code> 2e78e568c268 e1000: Handle igb EEE sysctl </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=aa7d086ad946"> <code> aa7d086ad946 e1000: Add sysctls for some missing MAC stats </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5f6964d9fbf6"> <code> 5f6964d9fbf6 e1000: drop NEEDGIANT from em_sysctl_debug_info use </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c11a0649b972"> <code> c11a0649b972 e1000: drop NEEDGIANT on em_sysctl_reg_handler uses </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f6e1b5679211"> <code> f6e1b5679211 e1000: remove NEEDGIANT from a couple sysctls </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ddfec1fb6814"> <code> ddfec1fb6814 e1000: Update igb driver version to 2.5.28-fbsd </code> </a> </li> </ul> <p> <a href="https://www.intel.com/content/www/us/en/download/14303/intel-network-adapters-driver-for-pcie-10-gigabit-network-connections-under-freebsd.html"> ix/ixgbe has been updated to the latest release (ix-3.3.38) from Intel </a> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e3a6e916dbba"> <code> e3a6e916dbba ixgbe: fix misleading indentation in ixgbe_phy </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a924b5ee6a1b"> <code> a924b5ee6a1b ixgbe: fix fw_recovery_mode callout </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b6cd053e6da9"> <code> b6cd053e6da9 ixgbe: update if_sriov with ix-3.3.38 changes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f72de14ea132"> <code> f72de14ea132 ixgbe: update if_ix and ixgbe api with ix-3.3.38 changes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0acea458f82d"> <code> 0acea458f82d ixgbe: update ixgbe_mbx with ix-3.3.38 changes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e06918b94ac4"> <code> e06918b94ac4 ixgbe: update ixgbe_phy with ix-3.3.38 changes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c41a0eeea0d6"> <code> c41a0eeea0d6 ixgbe: update if_bypass to ix-3.3.38 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=36c516b31136"> <code> 36c516b31136 ixgbe: update if_sriov to use the new mailbox apis </code> </a> </li> </ul> <p> The ixl revert mentioned in the stab week report went in: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bf085659dac9"> <code> bf085659dac9 Revert "ixl: Increase tx/rx ring size to 8160" </code> </a> </li> </ul> <p> On top of this there has been a bunch of tidying up of old code in bfp, iflib and other places by zlei@. </p> <h2> Firewalls </h2> <p> Work has continued to keep FreeBSD pf the best tested firewall: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f28d5ac5c4a4"> <code> f28d5ac5c4a4 pf tests: fix max_states test </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=67bd1d072190"> <code> 67bd1d072190 pf tests: Add max states test </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6aeaadf68def"> <code> 6aeaadf68def pf tests: Remove nargs from single arguments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7b7e39221ec9"> <code> 7b7e39221ec9 pf tests: Speed up divert-to.sh test cases </code> </a> </li> </ul> <p> And some general tidying also landed. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4f9e688708f1"> <code> 4f9e688708f1 pf: merge pf_scrub_ip() and pf_scrub_ip6() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6d51791d2832"> <code> 6d51791d2832 pf: remove pointless CURVNET_SET </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=905db4aa8877"> <code> 905db4aa8877 pf: dedupe layer 4 protocol code in pf_setup_pdesc() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=dd04fa71a8cb"> <code> dd04fa71a8cb pf: remove unused argument 'h' from various function </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=93e96359c980"> <code> 93e96359c980 libpfctl: ensure we return useful error codes </code> </a> </li> </ul> <h2> User tooling </h2> <p> tcpdump has been updated to 4.99.5 </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0a7e5f1f02aa"> <code> 0a7e5f1f02aa tcpdump: Update to 4.99.5 </code> </a> </li> </ul> <p> There have been further commits to nuageinit, which I'm not sure is 100% on topic for a network status report. I do think it is one of the most interesting new tools to be added to FreeBSD for a long time and I'm hoping it'll get a raft of documentation and features to remove the need for <a href="https://cloud-init.io"> cloud-init </a> <code> cloud-init </code> at all. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e72457c4f516"> <code> e72457c4f516 nuageinit: tests: Cleanup </code> </a> </li> </ul> <p> netstat saw some small updates to libxo output and the ntp man page got some attention. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d00827a9ca0b"> <code> d00827a9ca0b Revert "netstat: Resolve duplicate "dropped-packets" key from libxo output" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=674b96f58b9c"> <code> 674b96f58b9c netstat: Add missing "shutdown-ack-timer" key to libxo output </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=94567c8641e2"> <code> 94567c8641e2 netstat: Resolve duplicate "dropped-packets" key from libxo output </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c7a33fe37d76"> <code> c7a33fe37d76 ntp: Improve descriptions in man pages </code> </a> </li> </ul> <h2> Please send feedback </h2> <p> As I write this my timer is at <strong> 58 minutes </strong> , so the 1 hour goal seems doable. </p> <p> I plan to add interesting bugs and reviews, once I figure out how to get them from the relevant places. Once the tooling is more than <em> sparkling git log </em> I'll put it up on a repo somewhere. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> Thanks to typos and feedback from: - <a href="https://mgdm.net"> mgdm </a> - <a href="https://hibbian.net"> hibby </a> - brd@ </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the Foundation </a> . </p> https://adventurist.me/posts/00326Fri, 27 Sep 2024 00:00:00 +0000 FreeBSD Network Status Week 40 2024https://adventurist.me/posts/00327<p> Here we are for round 2, last weeks report can be and a little context found here: <a href="https://adventurist.me/posts/00326"> FreeBSD Network Status Week 39 2024 </a> . </p> <p> All of the reports so far are available via the <a href="https://adventurist.me/tag/networkstatus"> <code> networkstatus </code> </a> tag on my blog. </p> <h2> Goings on </h2> <p> Since last week I haven't touched any of the tooling, I have been busy doing something else and it is a good exercise in making these reports "minimal touch". There are some manual edits in the generated template I have had to make today which I will roll into the generation script. </p> <p> I do read my email (no matter what I might claim) so most commits going by aren't completely new to me. </p> <p> I am yet to add tooling for getting reviews and interesting bugs, reviews I'm not sure how to figure out as phabricator doesn't have a friendly API. My email contains everything in <code> #transport </code> , <code> #network </code> and <code> #wireless </code> so worst case I just read from email. </p> <p> Bugzilla has a useable API, Mark Linimon (linimon@) is doing a heroic review of old bugs and squashing those which are out of date. That might be important for you for two reasons, if you have an old bug you care about you should respond to the bug email or it'll be closed and it makes a search of the form "what changed in the last week" far too noisy to interpret right now. </p> <p> I still plan to include bugs and reviews though. </p> <p> One point of discussion this week was support of NOINET6 in the kernel build. Users reported that NOINET6 build has been failing due to some changes in pf and two questions were raised. Why are you disabling IPv6 is left for a higher power to explain. Support for non-standard kernel builds is going to get a statement in the handbook or similar to clarify how what is expected of users and developers when running something other than GENERIC. </p> <p> Anyway, what has been going on in the network stack this week? </p> <p> My log command </p> <pre><code>git log --format="%h" --after="last week" --before="now" </code></pre> <p> found 133 commits from which I thought 39 were relevant for this update. </p> <h2> Transport </h2> <p> The regular <a href="https://wiki.freebsd.org/TransportProtocols/03October2024"> <code> #transport </code> meeting occured yesterday </a> . I think a good summary of the meeting and the last week of commits is covered by the second commit in my list 'small cleanup'. The <code> #transport </code> group make continual progress and this call is tracking a few longer running reviews. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=519981e3c09c"> <code> 519981e3c09c tcp_output: Clear FIN if tcp_m_copym truncates output length </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2eacb0841c7d"> <code> 2eacb0841c7d tcp: small cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=57671d5ccc81"> <code> 57671d5ccc81 tcp: further cleanup old options </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=01eb635d1295"> <code> 01eb635d1295 tcp: improve mbuf handling when processing SYN segments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a2e4f45480c2"> <code> a2e4f45480c2 tcp: whitespace cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cbc9438f0505"> <code> cbc9438f0505 tcp: improve ref count handling when processing SYN </code> </a> </li> </ul> <p> I took the call as an opportunity to ask about netdump performance having done one for the first time. teuxen@ made some debugging suggestions and in email after the call we think performance should be ok on 'data center' links. Certainly better than the 5Mbit/s I saw in my test. I will do some more investigation once my current project starts generating enough crash dump to be a problem. </p> <h2> Netdev </h2> <p> Last week saw a flurry of driver updates, this week looks to just be follow ups to that work. Some commits to the Intel driver which were updated last week: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=33ed9bdca307"> <code> 33ed9bdca307 igc: Add NVM/firmware prints and sysctl </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a40ecb6f7405"> <code> a40ecb6f7405 igc: Remove non-existent legacy absolute and packet timers </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1e3b1870ad2a"> <code> 1e3b1870ad2a ixgbe: Switch if_sriov read/write back to ixgbe_mbx APIs </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=911b3c3aa648"> <code> 911b3c3aa648 Revert "e1000: Remove redundant EITR shift from igb" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=26439b57877c"> <code> 26439b57877c e1000: Remove redundant EITR shift from igb </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9bf9164fc8aa"> <code> 9bf9164fc8aa e1000: Clean up ITR/EITR in preparation for AIM </code> </a> </li> </ul> <p> And some tidy ups in other places: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7643141e9314"> <code> 7643141e9314 if_enc(4): Make enc_add_hhooks() void </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9ba8670a8b17"> <code> 9ba8670a8b17 cxgbe(4): Allow t4_tom to be unloaded safely. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cc110bbec6d2"> <code> cc110bbec6d2 cxgbe/t4_tom: Remove duplicate unlock in t4_tom_deactivate. </code> </a> </li> </ul> <p> dougm@ has been doing some on the the rounding logic in libkern which hit mlx: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5a5da24fc85a"> <code> 5a5da24fc85a mlx5: optimize ilog2 calculation </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3873b9a8b3a5"> <code> 3873b9a8b3a5 mlx4: use is_power_of_2 </code> </a> </li> </ul> <p> For WiFI there is some organising in LinuxKPI 80211. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0b325167f60d"> <code> 0b325167f60d LinuxKPI: 802.11: move functions between header files </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Lots of change in pf, I would say this falls into the category of "continuous improvement". pf changes are about half of the <em> network stack </em> stuff I pulled out this week and while there are no major features. Small steps are how things get really good. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=65074f6f3115"> <code> 65074f6f3115 pf: fix double ruleset evaluation for fragments sent to dummynet </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1c82bbd8650a"> <code> 1c82bbd8650a pf: Fix NOINET and NOINET6 build. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e5c64b2662ff"> <code> e5c64b2662ff pf: replace union pf_krule_ptr with struct pf_krule in in-kernel structs </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6bbef793552c"> <code> 6bbef793552c pf: Remove struct pf_pdesc-&gt;nat_rule </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1b745d8b23e4"> <code> 1b745d8b23e4 pf: move normalisation into pf_setup_pdesc() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=288bec2b2bd1"> <code> 288bec2b2bd1 pf: fold pf_test_fragment() into pf_test_rule() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8e3d252901e8"> <code> 8e3d252901e8 pf: Split pf_map_addr() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=37881f65eacd"> <code> 37881f65eacd pf: pf_clear_srcnodes() is always called with NULL </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=86fc6f838ed2"> <code> 86fc6f838ed2 pf: make pf_setup_pdesc() a static function </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f8e994296328"> <code> f8e994296328 pf: remove ip(6) header argument from pf_reassemble(6)() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=39f615e90ca3"> <code> 39f615e90ca3 pf: rename the pf_pdesc field rh_cnt to badopts </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7fe42038b269"> <code> 7fe42038b269 pf: fix max-src-conn when rules are added via netlink </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e8ff5e565c24"> <code> e8ff5e565c24 pf: fix incorrect parsing of state export filter </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=27f54be50bba"> <code> 27f54be50bba pf: merge pf_test() and pf_test6() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c17a0f62da17"> <code> c17a0f62da17 pf tests: use unique pid files for inetd processes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3ec4fbdd98f2"> <code> 3ec4fbdd98f2 pf tests: Add test for max-src-states </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6ffd4aeba5b9"> <code> 6ffd4aeba5b9 pf tests: add a test for max-src-conn </code> </a> </li> </ul> <h2> User Tooling </h2> <p> Bug fixes in nfs and a robustness change in the dhclient code. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=eb345e05ac66"> <code> eb345e05ac66 nfsd: Fix close handling when vfs.nfsd.enable_locallocks=1 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6df05714da16"> <code> 6df05714da16 Revert "nfscl: Enable support for the Lookup+Open RPC" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f321956d9806"> <code> f321956d9806 nfsd.c: Synchronize error handling </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=38c63b52830c"> <code> 38c63b52830c dhclient: Ignore vendor-identifying DHCP options defined in RFC 3925 </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> End of writing this week is at <strong> ~50 minutes </strong> this week, which makes two reports done at an hour each. I'll use those 10 minutes to fix the generation stuff I hand wrote today. Or make coffee. </p> <p> Fewer tent pole features coming through, but those can't land everyday. I am in two minds about how frequently this should run, a monthly report would be more likely to always carry some meat, but then I would loose an entire Friday once a month to writing about work rather than doing it and I think that would make me a bit sad. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> Thanks to: - <a href="https://mgdm.net"> mgdm </a> </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00327Fri, 04 Oct 2024 00:00:00 +0000 FreeBSD Network Status Week 41 2024https://adventurist.me/posts/00328<p> Hey folks, here we are rounding out another week of development. This Network Status Report is an experiment I am making on documenting what has been happening in the FreeBSD network stack by generating reports with the help of some simple tooling. This is the third such report, but the first one I've really told anyone about. </p> <p> The previous reports are <a href="https://adventurist.me/tag/networkstatus"> available here </a> , some context and goals are available in the <a href="https://adventurist.me/posts/00326"> first weeks report </a> . </p> <p> <a href="https://youtube.com/live/evSOOwUIBmA?feature=share"> A big change for this week is streaming of the report writing process. </a> I'm hoping that by being more open about this there will be a weekly chance for community engagement - at least for people that like the network stack. </p> <h2> Goings on </h2> <p> Since last week I have integrated collating notes into my tooling (and if you consumed the stream broke the script a little). This means I can capture things going by on the mailing lists more easily for discussion later. </p> <p> The bugzilla storm continues, when it starts to slow down I'll review pulling in interesting bugs. </p> <p> What I want from reviews and bugs is a list of interesting things in the last week. That might be new items, but it is also likely to be items that have had a change in the last week, lots of comments, or have finally closed. Landing commits aren't so interesting. I think I have the bugzilla query sorted out, but I cannot for the life of me get sense from the phabricator API. </p> <p> If you can generate queries that sort of match what I want <strong> AND </strong> they will give me plain text summaries as helpful as a <code> git --oneline </code> I'd love to see them. </p> <h3> Fall 2024 FreeBSD Summit </h3> <p> On the 7th and 8th of November 2024 there will be a FreeBSD Summit kindly hosted by NetApp in their San Jose campus. </p> <p> So far the program includes: </p> <ul> <li> Pawel Dawidek, Fudo Security on "FreeBSD Security Improvements" </li> <li> Dorr Clark, NetScaler on “Using FreeBSD in Products" </li> <li> George Neville-Neil on "OSDB: Turning the Tables on Kernel Data" </li> <li> Dr. Marshall Kirk McKusick on “History of the BSD Daemon” </li> <li> And more! </li> </ul> <p> The summit is open to the public, with a registration fee of US $150. </p> <p> <a href="https://freebsdfoundation.org/news-and-events/event-calendar/fall-2024-freebsd-summit/"> Registration and event information is available here: </a> </p> <h3> axgbe CFT </h3> <p> zlei@ has an open call for testing for come changes to the axgbe driver. This changes how the <code> axgbe </code> driver handles the <code> promisc </code> flag, zlei@ doesn't have hardware available to test. If you use <code> axgbe </code> then you should test and report results on the phabricator review. </p> <p> <a href="https://reviews.freebsd.org/D46794"> https://reviews.freebsd.org/D46794 </a> </p> <h2> Transport </h2> <p> Oddly not TCP caught in my filter this week, but there have been some improvements around the SCTP API. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4466a97e83fd"> <code> 4466a97e83fd sctp: check locking requirements </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e1a09d1e9df3"> <code> e1a09d1e9df3 sctp: make sctp_free_ifn() static </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2e9761eb80f3"> <code> 2e9761eb80f3 sctp: cleanup sctp_delete_ifn </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=91a9e4e01dab"> <code> 91a9e4e01dab sctp: propagate cap rights on sctp_peeloff </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e4550c9aa06a"> <code> e4550c9aa06a capsicum-test: include SCTP tests </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1d83090d850f"> <code> 1d83090d850f capsicum-test: skip SCTP tests if SCTP not available </code> </a> </li> </ul> <p> tuexen@ has been doing some review of locking and socket options. Generally the socket layer is quite complex, getting this right is difficult. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3326ab87cc22"> <code> 3326ab87cc22 getsockopt: improve locking for SOL_SOCKET level socket options </code> </a> </li> </ul> <h2> Netdev </h2> <p> kbowling@ MFC'd a lot of stuff from the Intel driver changes we covered the past two weeks. That is great news if you are on a stable branch of FreeBSD. </p> <p> A big change is the re-addition of Adaptive Interrupt Mode for the e1000 series NICS (including <code> lem </code> , <code> em </code> and <code> igb </code> ). AIM gives a balance between latency when there are relatively low packet rates and performance when the link is very busy. </p> <p> In most cases kbowling@ says: </p> <pre><code>this might be worth a few sys% on common CPUs, but may be meaningful when multiplied such as if_lagg, if_bridge and forwarding setups. </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3e501ef89667"> <code> 3e501ef89667 e1000: Re-add AIM </code> </a> </li> </ul> <p> In WiFi land bz@ landed a nice rtw89 panic fix: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=41b746e05231"> <code> 41b746e05231 LinuxKPI: 802.11: fix ieee80211_schedule_txq() to avoid rtw89 panic </code> </a> </li> </ul> <p> And we see some other bits of tidying up in <code> cxgbe </code> , <code> mlx5 </code> and <code> iflib </code> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8e5b07dd0885"> <code> 8e5b07dd0885 mlx5_ipsec: add enough #ifdef IPSEC_OFFLOAD to make LINT_NOIP compilable </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2851aafe96c1"> <code> 2851aafe96c1 mlx5 ipsec_offload: ensure that driver does not dereference dead sahindex </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=52e5a66eac22"> <code> 52e5a66eac22 cxgbe(4): Use correct synchronization when marking the adapter offline. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=816100089283"> <code> 816100089283 iflib: Make iflib_stop() static </code> </a> </li> </ul> <h2> Firewalls </h2> <p> A mixture of tidy ups with several changes coming through from OpenBSD. <s> If I were to guess (and I am!) many of these are from presentations and conversations at EuroBSDCon. </s> If I were to ask kp@ he would tell me this was part of an ongoing continuous maintenance project sponsored by Netgate. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8978a080cfa7"> <code> 8978a080cfa7 pf: remove redundant arguments to pf_state_key_addr_setup() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9a405864e0cf"> <code> 9a405864e0cf pf: move the mbuf into struct pf_pdesc too </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=08b53c6efcae"> <code> 08b53c6efcae pf: remove switch (af) default cases </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b4a42589116b"> <code> b4a42589116b pf: put kif into struct pf_pdesc </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=739731b8ca80"> <code> 739731b8ca80 pf: consolidate pf function parameters </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9414b8dbf1e4"> <code> 9414b8dbf1e4 pf: unify some IPv4/IPv6 code in pf_setup_pdesc() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=05896f1ef8be"> <code> 05896f1ef8be pf: move pf_test_rule() out of pf_setup_pdesc() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=abc8996e7fa6"> <code> abc8996e7fa6 pf: deduplicate IPv4 and IPv6 code that handles fragments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5de77e952a2f"> <code> 5de77e952a2f pf: remove the last hand-rolled IPv6 extension header loop </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7b033960e15a"> <code> 7b033960e15a pf: stricter address family checks in icmp-in-icmp </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5c3d74eca642"> <code> 5c3d74eca642 pf: add ttl to pf_pdesc </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7d0f8cd93bce"> <code> 7d0f8cd93bce pf: ensure that we won't enter an endless loop </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8de7f8ed5eef"> <code> 8de7f8ed5eef pf: reduce IPv6 header parsing code duplication </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6562157dfad0"> <code> 6562157dfad0 pfctl: avoid possible SIGSEGV when wrong tos option </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ee9f418c8041"> <code> ee9f418c8041 pfctl: correctly print skip steps in -vv mode </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d01949e8a210"> <code> d01949e8a210 pf.conf.5: sync documentation with code on the matter of max state limit behavior </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=34aa6f2c2db5"> <code> 34aa6f2c2db5 pflogd: Move struct definitions out of header file </code> </a> </li> </ul> <p> And the continued netlinkification of <code> pf </code> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=48f5bf8be6fa"> <code> 48f5bf8be6fa pf: convert DIOCGETRULESET to netlink </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=25e0f8f99f54"> <code> 25e0f8f99f54 pf: convert DIOCGETRULESETS to netlink </code> </a> </li> </ul> <p> igoro@ made some tidy up commits to dummymbuf. While I have seen commits go by I hadn't looked into <code> dummymbuf(4) </code> yet. This is test kernel module for unusual mbuf layouts which hooks into the pfil (firewall) layer. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=dfcb8de5ef80"> <code> dfcb8de5ef80 dummymbuf: Log the entire rule set if no delimiters are present </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6bd8d85579a1"> <code> 6bd8d85579a1 dummymbuf: Fix code style </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9f146a81d2b3"> <code> 9f146a81d2b3 dummymbuf: Validate syntax upon write to net.dummymbuf.rules sysctl </code> </a> </li> </ul> <p> For continued compatibility with libpcap some struct definitions for pflogd were moved out of the header file, preventing others from using them. </p> <h2> User Tooling </h2> <p> Fix stopping sendmail during shutdown. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8751fbe36ff0"> <code> 8751fbe36ff0 rc.d/sendmail: Fix stopping service during shutdown </code> </a> </li> </ul> <p> And finally a big change to kyua, skipped tests no longer report as passing. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=99689201a1eb"> <code> 99689201a1eb kyua: Do not count skipped as passed in test cmd </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> As with last week are are at <strong> ~50 minutes </strong> as I get to this part of the report. </p> <p> I am going to disseminate this one much further, probably to the freebsd-net and current mailing lists. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <ul> <li> Boris asked for there to be an rss feed, <a href="https://adventurist.me/fbsd-networkstatus.xml"> so there is now one here </a> </li> <li> Graham Perrin hight lighted a typo in the tags ( <code> tags-&gt;tag </code> ) link. </li> <li> Jim Thompson told me off for guessing. </li> </ul> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00328Fri, 11 Oct 2024 00:00:00 +0000 FreeBSD Network Status Week 42 2024https://adventurist.me/posts/00330<p> Hey Folks, </p> <p> Here we are for the fourth Weekly Network Status Update. The big changes last week in the report were streaming of the writing process and sharing the reports on the freebsd-net and freebsd-current mailing lists. </p> <p> Thanks to everyone that sent me emails with positive feedback or corrections. All feedback is appreciated, it helps me know if anyone is reading these and it keeps me honest. </p> <p> Next week there will hopefully be some supporting figures giving a summary of over all changes. I have written the svg and gotten awk making stuff up for me, I just need to get awk generating svg. </p> <h2> Goings on </h2> <p> The bugzilla storm continues, from my reading of my inbox it looks like others have gotten involved tidying up old bugs too. It is great to tidy up the bug tracker, but I'm going to continue waiting a bit before I write the tooling to cover new and changed bugs here. Maybe in a week or two. </p> <p> I didn't get any feedback on writing tooling against phabricator, I think I'll pull interesting reviews into my notes. From a read this morning there wasn't anything particularly stand out to include. If you want to know whats going on you can look for reviews with <code> #netdev </code> and <code> #transport </code> groups. </p> <h3> Fall 2024 FreeBSD Summit </h3> <p> On the 7th and 8th of November 2024 there will be a FreeBSD Summit kindly hosted by NetApp in their San Jose campus. </p> <p> So far the program includes: </p> <pre><code> - Pawel Dawidek, Fudo Security on "FreeBSD Security Improvements" - Dorr Clark, NetScaler on “Using FreeBSD in Products" - George Neville-Neil on "OSDB: Turning the Tables on Kernel Data" - Dr. Marshall Kirk McKusick on “History of the BSD Daemon” - And more! </code></pre> <p> The summit is open to the public, with a registration fee of US $150. </p> <p> <a href="https://freebsdfoundation.org/news-and-events/event-calendar/fall-2024-freebsd-sum mit/"> Registration and event information is available here: </a> </p> <h3> Performance issues with vnet jails + epair + bridge </h3> <p> There has been some discussion on the freebsd-net mailing about performance issues with VNET jailed applications. The conversation started in September, cc@ has made some points about the performance methodology. I have encountered this problem, TCP single flow over bridge for me stops at 2.5Gbit/s (on a machine that will do localhost TCP single flow at ~40Gbit/s). The issue is real, but we lack comparisons to other platforms to really motivate improvements. </p> <pre><code>https://lists.freebsd.org/archives/freebsd-net/2024-September/005510.html </code></pre> <h3> FreeBSD 14.2 Code Slush in Effect </h3> <p> It used to be the case that FreeBSD frozen branches in advance of a release, the freeze was led into by a 'slush' phase where only 'safe' commits were wanted. The Slush phase has started for the 14.2 release. Time to get things MFC'd if you want them in 14.2. </p> <h2> Transport </h2> <h2> Netdev </h2> <p> Lots of commits to update the EC2 Elastic Network Adapter by osamaabb@ updating the <code> ena(4) </code> driver to <code> v2.8.0 </code> (and through version <code> v2.7.0 </code> ). Here is one of them: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ce4cc746bb41"> <code> ce4cc746bb41 ena: Update driver version to v2.8.0 </code> </a> </li> </ul> <p> peterj@ has been working improving support for the Quartz64 SBC and as part of that is fixing things in <code> eqos(4) </code> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bf8d4cfe347b"> <code> bf8d4cfe347b eqos: Fix group address filtering. </code> </a> </li> </ul> <p> More updates to Intel network drivers, with <code> igc(4) </code> getting improved AIM mode support (as <code> igb(4) </code> did last week. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7763b194d8de"> <code> 7763b194d8de igc: txrx function prototype cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9dc452b983f0"> <code> 9dc452b983f0 e1000: txrx function prototype cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1b0e41ddffbf"> <code> 1b0e41ddffbf igc: Function prototype cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=542f5d56317e"> <code> 542f5d56317e igc: Rename 'struct adapter' to 'struct igc_softc' </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=09526a771afc"> <code> 09526a771afc igc: Add sysctls for some missing MAC stats </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=68b1f5dc5936"> <code> 68b1f5dc5936 igc: Add sysctl for DMA Coalesce </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=669d26e5764f"> <code> 669d26e5764f igc: Want AIM at 2.5G </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=516d92304a7f"> <code> 516d92304a7f igc: Improve a comment and update copyright dates MFC after: 1 week </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bc9402abdd11"> <code> bc9402abdd11 igc: Add AIM </code> </a> </li> </ul> <p> The CFT closed on the <code> axgbe(4) </code> promisc mode change and landed in the tree. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c7a2636889a6"> <code> c7a2636889a6 axgbe: Fix setting promisc mode </code> </a> </li> </ul> <p> Netmap buffer pools have been made NUMA-aware, this may help with performance on systems with multiple memory domains as the buffer locality should be much better. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1bae9dc58427"> <code> 1bae9dc58427 netmap: Make memory pools NUMA-aware </code> </a> </li> </ul> <p> Over in WiFi land rtw89 was turned on after 2 years of being in the tree thanks to improved testing from a group of users. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=310c31d3f04e"> <code> 310c31d3f04e rtw89: add man page and hook driver up to the build </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ce15215befa1"> <code> ce15215befa1 rtw89: add missing bsddriver.name assignments for two chipsets </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7ff12dd25ada"> <code> 7ff12dd25ada rtw8xfw: remove module build dirs for firmware long gone </code> </a> </li> </ul> <p> Updates in the LinuxKPI layer to support updates in iwlwifi </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fa81baa307da"> <code> fa81baa307da LinuxKPI: add cleanup.h for guard DEFINE_GUARD/guard. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6621842ccfb4"> <code> 6621842ccfb4 LinuxKPI: add new dummy headers visibility.h and of_net.h </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=41283b454b7a"> <code> 41283b454b7a LinuxKPI: always include linux/kconfig.h </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8f9567628cb2"> <code> 8f9567628cb2 LinuxKPI: add time_is_before_jiffies() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=96190b4fef3b"> <code> 96190b4fef3b LinuxKPI based WiFi drivers: scripts to extract fwget(8) and port details </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=157e93e0e813"> <code> 157e93e0e813 LinuxKPI: pci: rename PCI_IRQ_LEGACY to PCI_IRQ_INTX </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=105331f658e2"> <code> 105331f658e2 LinuxKPI: netdevice: add alloc_netdev_dummy() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b4c8f251d65f"> <code> b4c8f251d65f iwlwifi: FreeBSD specific sysctl export update </code> </a> </li> </ul> <p> Minor man page changes, for users this rearranges the HARDWARE section which is an excellent source of truth when trying to buy things. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fa573868f187"> <code> fa573868f187 wpi.4: move hardware to HARDWARE + minor cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=545dbf9d5fad"> <code> 545dbf9d5fad iwn.4: move hardware to HARDWARE + minor cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5dbb0b7c19cf"> <code> 5dbb0b7c19cf man.4: Add .Sh HARDWARE for some wireless drivers for release notes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5c59e40bc419"> <code> 5c59e40bc419 wpa_supplicant: xref relevant wpa_passphrase(8) </code> </a> </li> </ul> <h2> Firewalls </h2> <p> The <code> divapp </code> tool for testing divert sockets has been moved from pf specific into the more general netpfil tests area. And divert tests added for ipfw. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b3e7d4b67ce6"> <code> b3e7d4b67ce6 tests: Fix style of netpfil/common/divapp.c </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9b86b272bfdb"> <code> 9b86b272bfdb tests: Move netpfil/pf/divapp to netpfil/common/ </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cc7ec8fe3bca"> <code> cc7ec8fe3bca ipfw tests: Add basic coverage of divert(4) use cases </code> </a> </li> </ul> <p> The Scapy port update broke some tests so those needed to be updated: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9cd6ab45a446"> <code> 9cd6ab45a446 pf tests: disable epsv for the ftp proxy test </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2e13459e2aa4"> <code> 2e13459e2aa4 pf tests: fix plfow:v6 after scapy-2.6.0 update </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9c125336727b"> <code> 9c125336727b pf: convert DIOCGETSRCNODES to netlink </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e85d2c1b0e10"> <code> e85d2c1b0e10 pf: ensure pd-&gt;src/pd-&gt;dst are valid </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6b8096fa5f6f"> <code> 6b8096fa5f6f netpfil tests: skip checksum verification in pft_ping.py </code> </a> </li> </ul> <h2> User Tooling </h2> <p> Ping continues to be an incredibly difficult piece of software to work on. Ping is going to get support for non-root users to control the size of the ICMP request (as it can on other platforms). </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b88df1e893c4"> <code> b88df1e893c4 Reapply "sbin/ping: allow normal users to specify larger packets" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2926c2594249"> <code> 2926c2594249 ping tests: fix for scapy-2.6.0 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7bc0cb91a2df"> <code> 7bc0cb91a2df Revert "sbin/ping: allow normal users to specify larger packets" It is causing test failures. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=80a5b26871e9"> <code> 80a5b26871e9 sbin/ping: allow normal users to specify larger packets </code> </a> </li> </ul> <p> Libxo is a flexible way of generating machine readable output from Unix tools and subsystems, many more tools got complete libxo support this week, here are some to the network tools: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=95968ea7ec8f"> <code> 95968ea7ec8f netstat(1): Complete libxo transition </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=54ff53d89015"> <code> 54ff53d89015 ndp(8): Complete libxo transition </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=417842f90861"> <code> 417842f90861 arp(8): Complete libxo transition </code> </a> </li> </ul> <h2> Other Interesting Changes </h2> <p> I added this section this week because there were quite a few interesting changes going by that weren't networking specific, but still might be of interest. </p> <p> A new bsd release! </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bdbf50660c51"> <code> bdbf50660c51 bsd-family-tree: add macOS 15 </code> </a> </li> </ul> <p> Back in July ISA device hints were changed, but the UPDATING message was missed. It is here now: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=63e282288ed8"> <code> 63e282288ed8 UPDATING: Add belated note about hints for old-school ISA devices </code> </a> </li> </ul> <p> In advance of OCI support on FreeBSD, change the name of OCI to ORACLE. That first OCI is Open Container Initiative and the second one is Oracle Cloud Infrastrcuture - simple. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1be84d745bcc"> <code> 1be84d745bcc release: move OCI to ORACLE </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> This weeks report took much longer to write because I was speaking to/at the kind people that joined the stream. Thanks for kp@ and mgdm for keeping me company. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00330Fri, 18 Oct 2024 00:00:00 +0000 FreeBSD Network Status Week 43 2024https://adventurist.me/posts/00331<p> No stream this week, it would be an odd audio mixture of my keyboard, me coughing and blowing my nose, wondering what the cats are up to (we have a guest doubling the number of cats) and talking about compiler flags. I'll be back on next week if I can match the audio standard. Roughly 1000 UK time on Friday the 1st of November (whichever timezone that is next week). </p> <h2> Goings on </h2> <p> Quiet week on the Network side of things, I've not done this long enough to know if there is a pattern here or not. The big change this week was the import of LLVM 19, newer compilers are stricter which tends to break things. Makes us better through fixing bugs in weird code. </p> <p> The Fall 2024 FreeBSD Summit is in just over two weeks, John made a call for people to register so the correct amount of food could be bought. </p> <h3> Fall 2024 FreeBSD Summit </h3> <pre><code>@NetApp San Jose Program includes: - Pawel Dawidek, Fudo Security on "FreeBSD Security Improvements" - Dorr Clark, NetScaler on “Using FreeBSD in Products" - George Neville-Neil on "OSDB: Turning the Tables on Kernel Data" - Dr. Marshall Kirk McKusick on “History of the BSD Daemon” - And more! The summit is open to the public, with a registration fee of US $150. </code></pre> <h3> Performance issues with vnet jails + epair + bridge </h3> <p> <a href="https://lists.freebsd.org/archives/freebsd-net/2024-September/005510.html"> Mailing list thread </a> </p> <p> I mentioned this discussion last week and got some feedback on performance of zones on Illumnos, sounds like there is some ground we can tread to catch up. </p> <h3> FreeBSD 14.2 Code Slush in Effet </h3> <p> The 14.2-RELEASE code slush continues. The schedule looks like a start of December release, but it depends a lot on testing. You can help by testing 14/stable for the next week and branches after. I'm not sure if the schdule is posted publicly so I won't include it here until I know if I should. </p> <p> <a href="https://wiki.freebsd.org/Releng/14.2ISSUES"> Known issues are on this wiki page </a> </p> <h3> Stab week </h3> <p> This was the October Stab Week( <a href="https://lists.freebsd.org/archives/freebsd-current/2024-October/006542.html"> announcement </a> ). It doesn't look like there was fallout and the test period was ended on Wednesday ( <a href="https://lists.freebsd.org/archives/freebsd-current/2024-October/006551.html"> email </a> ). </p> <h2> Transport </h2> <p> Tidy ups in SCTP and TCP. The FreeBSD SCTP stack is used in a lot of places, on small platforms like Chrome for WebRTC data channel. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ce5b5361d4d1"> <code> ce5b5361d4d1 sctp garbage collect sctp_update_ifn_mtu </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e4ac0183a1a8"> <code> e4ac0183a1a8 sctp: cleanup </code> </a> </li> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=ce20b48a60fb"> <code> ce20b48a60fb sctp: improve debug output </code> </a> </p> </li> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=d021d3b3c675"> <code> d021d3b3c675 tcp: get rid of TDP_INTCPCALLOUT </code> </a> </p> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=994a82a01956"> <code> 994a82a01956 tcp: garbage collect unused macros </code> </a> </li> </ul> <h2> Network stack </h2> <p> Locking and VNET improvements in the network stack. Locking around VNETs is quite complex, for a while you could do a lot of damage by running a for loop creating VNETs, but we are improving all the time and crashes like that are less common. That means the remaining issues are harder to find, but overall better. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=efcb2ec8cb81"> <code> efcb2ec8cb81 callout: provide CALLOUT_TRYLOCK flag </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=656991b0c629"> <code> 656991b0c629 locks: augment lock_class with lc_trylock method </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d1d839d0b593"> <code> d1d839d0b593 ifnet: Assert that we are assigning network stack correctly </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f4e35c044c89"> <code> f4e35c044c89 bus: Set the current VNET in device_attach() </code> </a> </li> </ul> <p> A small change to export route statistics via a sysctl, a lot of netstat involves looking at live kernel memory and it has all the problems you can imagine. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3360a15898ce"> <code> 3360a15898ce net: route: convert routing statistics to a sysctl </code> </a> </li> </ul> <p> This was integrated into netstat a little later on: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f3a097d0312c"> <code> f3a097d0312c netstat: switch to using the sysctl-exported stats for live stats </code> </a> </li> </ul> <h2> Netdev </h2> <p> Small improvement in e1000 which should be a no-op. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=77b70ad751df"> <code> 77b70ad751df e1000: Move I219 LM19/V19 to ADL </code> </a> </li> </ul> <p> On server restart with kTLS a long start up pause could be observed under high load. The process for allocating TLS memory was running single threaded and blocking the process start up. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=81dbc22ce8b6"> <code> 81dbc22ce8b6 mlx5e: Immediately initialize TLS send tags </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=49597c3e84c4"> <code> 49597c3e84c4 mlx5e: Use M_WAITOK when allocating TLS tags </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Test with style. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8829d4cb09d3"> <code> 8829d4cb09d3 pf tests: Lower chances of false positives for mbuf:inet6_in_mbuf_len </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1c95ec17cae2"> <code> 1c95ec17cae2 ifconfig: Fix wrong indentation for the status of pfsync(4) </code> </a> </li> </ul> <h2> Other stuff </h2> <p> LLVM 19 was imported just after stab week ended. Compiler imports break a ton of things, the second commit here is a good example of the compiler getting stricter and call us on our nonesense. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f3dbef108212"> <code> f3dbef108212 Bump __FreeBSD_version for llvm 19.1.2 merge </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=36d486cc2ecd"> <code> 36d486cc2ecd Fix enum warning in ath_hal's ar9002 </code> </a> </li> </ul> <p> zlei@ did a run tidying up surplus semicolons (here is one, but there were many): </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2f395cfda8b5"> <code> 2f395cfda8b5 tcp cc: Remove a stray semicolon </code> </a> </li> </ul> <p> Updates via vendor imports for unbound (to 1.22.0), libarchive and googletest (to 1.15.2): </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0a6d797cf6eb"> <code> 0a6d797cf6eb unbound: Vendor import 1.20.0 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bd66c1b43e33"> <code> bd66c1b43e33 libarchive: merge from vendor branch </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5ca8c28cd8c7"> <code> 5ca8c28cd8c7 contrib/googletest: update from 1.14.0 to 1.15.2 </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00331Fri, 25 Oct 2024 00:00:00 +0000 FreeBSD Network Status Week 44 2024https://adventurist.me/posts/00332<p> The report was streamed again this week, I have tried to advertise streaming in all the expected places (discord, irc, BSDNow Telegram). If I missed somewhere let me know. </p> <h2> Goings on </h2> <p> We seem to be back to a much more normal events calendar post-2020. There is a return of a BSD Devroom at FOSDEM and I am hearing about people attending many more events. </p> <p> It looks like the bugzilla tidy up is calming down, I have it on my todo list to find interesting bugs, but I have gotten bogged down doing <em> other things </em> the last few weeks. </p> <h3> Fall 2024 FreeBSD Summit </h3> <p> This is happening next week on the 7-8th of November. If you still want to go and haven't made any plans time is running out. </p> <pre><code>@NetApp San Jose Program includes: - Pawel Dawidek, Fudo Security on "FreeBSD Security Improvements" - Dorr Clark, NetScaler on “Using FreeBSD in Products" - George Neville-Neil on "OSDB: Turning the Tables on Kernel Data" - Dr. Marshall Kirk McKusick on “History of the BSD Daemon” - And more! The summit is open to the public, with a registration fee of US $150. </code></pre> <h3> BSD Devroom at FOSDEM 2024 </h3> <p> After a year off there will be a BSD Devroom at FOSDEM 2024, the Devroom needs your talks to be successful. The Devroom talks are shorter than conferences than EuroBSDCon so this is a great opportunity to share work in progress with a diverse BSD crowd. </p> <pre><code>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 &amp; 2 February 2025 BSD devroom date : Saturday February 1st, 2025 afternoon (second half) </code></pre> <p> <a href="https://people.freebsd.org/~rodrigo/fosdem25/"> CFP is here </a> </p> <h2> Transport </h2> <p> I think changes in the transport stack go through phases. We have a regular call every two weeks to discuss things, but it shows mostly as tidy ups and commits landing for extremely long running projects. This SACK change is part of an exceedingly long project by rscheff@ to fix SACK functionality and performance. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7dc78150c730"> <code> 7dc78150c730 tcp: refactor cwnd during SACK transmissions to allow TSO </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a05620b0f67f"> <code> a05620b0f67f sctp: cleanup the addition of addresses which are already known </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=02478e65910a"> <code> 02478e65910a sctp: further cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d08713dcdb15"> <code> d08713dcdb15 sctp: another cleanup </code> </a> </li> </ul> <h2> Network Stack </h2> <p> Improvements to handling of external data on mbufs. Adding external pages to mbufs is an important way to improve performance when interacting with other subsystems. Everything mbufs is a bit of a minefield. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=28aafeb83c08"> <code> 28aafeb83c08 netinet*: Add assertions for some places that don't support M_EXTPG mbufs </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=314cb279959b"> <code> 314cb279959b mbuf: Don't force all M_EXTPG mbufs to be read-only </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=01c738cd5c39"> <code> 01c738cd5c39 if_tuntap: Enable MEXTPG support </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2bbfbf80d3bb"> <code> 2bbfbf80d3bb if_bridge: Mask MEXTPG if some members don't support it </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f02d9edfb5d6"> <code> f02d9edfb5d6 ktls: Mark mbufs containing outbound encrypted TLS records read-only </code> </a> </li> </ul> <p> kTLS is supported in GNUtls. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7200d90644ba"> <code> 7200d90644ba ktls.4: note that security/gnutls now supports ktls </code> </a> </li> </ul> <h2> Netdev </h2> <p> <code> ice(4) </code> has been updated to 1.43.2-k through some other updates. <code> ice(4) </code> is a good NIC for high performance interfaces. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=03e1f25dcb20"> <code> 03e1f25dcb20 ice: Remove RDMA feature block on E830 devices </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f377a0c7dfa9"> <code> f377a0c7dfa9 ice: Update to 1.43.2-k </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=440addc64249"> <code> 440addc64249 ice: Update to 1.42.5-k </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f2635e844dd1"> <code> f2635e844dd1 ice: Update to 1.42.1-k </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f9a039060e83"> <code> f9a039060e83 ice_ddp: Update to 1.3.41.0 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e53a21abdf29"> <code> e53a21abdf29 iavf(4): Get MSI-X BAR index at runtime instead of hardcoding it </code> </a> </li> </ul> <p> <code> if_ffec </code> got some tidy ups. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6a7aa5530c0d"> <code> 6a7aa5530c0d if_ffec: fix MAC address bootverbose print </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c222619cd480"> <code> c222619cd480 if_ffec: fix imx6sx compatible flags </code> </a> </li> </ul> <p> It is great to see multiple families of Intel network drivers getting consistent attention. Tidy ups in man pages are really important for debugging. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f4bd011a3822"> <code> f4bd011a3822 ixl.4 + ice.4: intro sentence for HARDWARE notes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cadb71e4b013"> <code> cadb71e4b013 ix.4: update crossreferences to ixgbe.4 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2d28fd51e5b9"> <code> 2d28fd51e5b9 ix.4: describe better </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a340b4649621"> <code> a340b4649621 ix.4: document LOADER TUNABLES </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d8b48a267fc0"> <code> d8b48a267fc0 ixgbe.4: rename to ix.4 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=20b823a59bc7"> <code> 20b823a59bc7 ixgbe.4: Add flow director CAVEAT </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b87b3696c973"> <code> b87b3696c973 ixv: Check cap return before MSI-X enable write </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cdbe3de53837"> <code> cdbe3de53837 ixv: Dynamically size the receive packet size </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b0993e3bcaec"> <code> b0993e3bcaec if_ixv: fix build without NETMAP </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=35d05a14ed7e"> <code> 35d05a14ed7e igc: Remove a bogus register write in igc_if_queues_free() </code> </a> </li> </ul> <p> bz@ did a series of commits to update wireless drivers using the LinuxKPI for v6.11 which required disabling the drivers from the build. Feedback on the freebsd-src suggested that this can be skipped over in git-bisect and might not be needed. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2ac644317e67"> <code> 2ac644317e67 iwlwifi,rtw88,rtw89: connect to build again </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6d67aabd6355"> <code> 6d67aabd6355 rtw89: update Realtek's rtw89 driver. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=11c53278a8a3"> <code> 11c53278a8a3 rtw88: update Realtek's rtw88 driver. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a4128aad8503"> <code> a4128aad8503 iwlwifi: update Intel's iwlwifi/mvm driver. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7b43f4d06419"> <code> 7b43f4d06419 LinuxKPI: 802.11: adjustments for v6.11 iwlwifi, rtw88 and rtw89 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f0b989348fe6"> <code> f0b989348fe6 iwlwifi,rtw88,rtw89: temporary disable build </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ac1d519c01ca"> <code> ac1d519c01ca LinuxKPI: 802.11: adjustments for v6.11 iwlwifi, rtw88 and rtw89 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=310743c4ccc5"> <code> 310743c4ccc5 LinuxKPI: 802.11: improvements to (*ampdu_action)() callers </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=86bc7259d3d5"> <code> 86bc7259d3d5 LinuxKPI: 802.11: hookup net80211 callbacks dependent on (*ampdu_action)() </code> </a> </li> </ul> <h2> Firewalls </h2> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4a7c6d6206cf"> <code> 4a7c6d6206cf pf: Fix handling of v6 loopback connections with pf syncookies enabled </code> </a> </li> </ul> <h2> User Tooling </h2> <p> More updates following on the recent changes to ndp. More and more stuff is getting netlink support. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b6d4e3bee350"> <code> b6d4e3bee350 ndp: Bring back the -A option for the netlink implementation </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=12c04071cf18"> <code> 12c04071cf18 ndp: Move the global variable repeat into struct ndp_opts </code> </a> </li> </ul> <h2> Other Interesting Change </h2> <p> I might have gotten carried away taking other commits, there is a lot of cool stuff going on. </p> <p> br@ landed support for bhyve on riscv, this was developed over the summer (incredibly quickly) on the SPICE simulator and QEMU. Hardware with support for the riscv 'h' (hypervisor) hasn't shipped yet, but there might be a small run of ASICs (200 boards) later this year. </p> <p> Amazing to have support for a hypervisor that doesn't really exist yet. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d3916eace506"> <code> d3916eace506 riscv/vmm: Initial import. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7ab1a32cd43c"> <code> 7ab1a32cd43c bhyve/riscv: Initial import. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cf1aba2857c1"> <code> cf1aba2857c1 freebsd-update: refuse to operate on a pkgbase system </code> </a> </li> </ul> <p> emaste@ fixed an IPv4 address in resolver to be valid (8.8.4.4 vs 4.4.4.4) and it started a conversation about example addresses in our documentation and including IPv6. It is a good to acknowledge that we should use documentation addresses as specified by IANA, it does help if examples are directly usable. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e7f0f4f9206e"> <code> e7f0f4f9206e resolver.5: Fix example Google DNS server address </code> </a> </li> </ul> <p> nuageinit got support for OpenStack network configuration. As more cloud init support lands FreeBSD cloud images are going to get easier and easier to build. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2775b9b0bcc2"> <code> 2775b9b0bcc2 nuageinit: add support for OpenStack network config </code> </a> </li> </ul> <p> virtio p9fs implements 9pfs (plan 9 file system) for bhyve making it significantly better to provide file systems to guest in bhyve virtual machines. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=28c9b13b236d"> <code> 28c9b13b236d virtio_p9fs: Simplify vt9p_req_wait() a bit </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1f6f247b3526"> <code> 1f6f247b3526 virtio_p9fs: Check for completions after enabling interrupts </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fff518117b40"> <code> fff518117b40 virtio_p9fs: Fix handling of a full request queue </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b9500cbd3896"> <code> b9500cbd3896 virtio_p9fs: Fix some style issues </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f86e328d324d"> <code> f86e328d324d p9fs: Fix whitespace in request tag handling functions </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00332Fri, 01 Nov 2024 00:00:00 +0000 FreeBSD Network Status Week 45 2024https://adventurist.me/posts/00333<p> 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. </p> <p> 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. </p> <h2> Goings on </h2> <p> 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. </p> <p> These numbers are very noisy, I have a habit of taking interesting stuff along with the networking stuff. </p> <h3> Fall 2024 FreeBSD Summit </h3> <p> The summit started yesterday and there are live streams on YouTube, <a href="https://www.youtube.com/watch?v=jZ3mjJZEqs0"> Day One is here </a> , there isn't a link for Day Two right now you can find it on the <a href="https://www.youtube.com/@FreeBSDProject"> FreeBSDProject YouTube channel </a> . </p> <p> update: <a href="https://www.youtube.com/watch?v=qCNpuK2v248"> Day Two </a> </p> <p> 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. </p> <h2> BSD Devroom at FOSDEM 2024 </h2> <pre><code>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 &amp; 2 February 2025 BSD devroom date : Saturday February 1st, 2025 afternoon (second half) </code></pre> <p> <a href="https://people.freebsd.org/~rodrigo/fosdem25/"> CFP info is here </a> </p> <h2> Transport </h2> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=625835c8b5e8"> <code> 625835c8b5e8 tcp: fix the initial CWND when a SYN retransmission happened </code> </a> </li> </ul> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=518a1163d0aa"> <code> 518a1163d0aa sctp: fix debug message </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=523913c94371"> <code> 523913c94371 sctp: improve handling of address changes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=470a63cde428"> <code> 470a63cde428 sctp: garbage collect two unused functions </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bf11fdaf0d09"> <code> bf11fdaf0d09 sctp: don't consider the interface name when removing an address </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d839cf2fbb47"> <code> d839cf2fbb47 sctp: editorial cleanup </code> </a> </li> </ul> <h2> Netdev </h2> <p> Improvements to the <code> gve(4) </code> driver which is used in GCE. The live lock commit comes with a wonderful diagram: </p> <pre><code>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 │ └───────────────────────────────────────────┘ </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=40097cd67c0d"> <code> 40097cd67c0d gve: Fix TX livelock </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2348ac893d10"> <code> 2348ac893d10 gve: Add DQO QPL support </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d438b4ef0cfc"> <code> d438b4ef0cfc gve: Add DQO RDA support </code> </a> </li> </ul> <p> kbowling@ has made <code> igb(4) </code> work better with misreporting SFP receivers. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=15853a5fc954"> <code> 15853a5fc954 e1000: Improve igb(4) SFP support </code> </a> </li> </ul> <p> Fix build of ice with options RSS. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6e5650896fe4"> <code> 6e5650896fe4 ice(4): properly use kernel option RSS </code> </a> </li> </ul> <p> Bluetooth fixes! I'm not sure if I should be surprised, but I am very surprised. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5036d9652a57"> <code> 5036d9652a57 rtlbtfw: Firmware loader for Realtek 87XX/88XX bluetooth USB adaptors </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=24ae172a5035"> <code> 24ae172a5035 ng_ubt(4): do not attach Realtek 87XX/88XX adaptors in bootloader mode. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=aa0b938434a8"> <code> aa0b938434a8 iwmbtfw(8): Ignore unexpected HCI events </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0b23c50ae834"> <code> 0b23c50ae834 ng_ubt_intel: Ignore unexpected HCI events </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c1643cedbf24"> <code> c1643cedbf24 iwmbtfw(4): Add support for 9260/9560 bluetooth adaptors </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=19a577ea5cae"> <code> 19a577ea5cae ng_ubt_intel: Allow to attach to 9260 bluetooth adaptors </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Tests are steadily improving. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=609fa228bae6"> <code> 609fa228bae6 pft_ping: improve IPv6 address comparison </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a4e64fcd6808"> <code> a4e64fcd6808 pf tests: test kill and clear source nodes paths </code> </a> </li> </ul> <p> 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). </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9ca328626400"> <code> 9ca328626400 pf: fix build on kernels without "options INET" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3f6a34cafe57"> <code> 3f6a34cafe57 pf: fix cmd id for PFNL_CMD_GET_ADDR </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4ee6a830d6c1"> <code> 4ee6a830d6c1 pf: Fix a use of an uninitialized variable </code> </a> </li> </ul> <p> Plumbing to allow ipfilter options to be settable during put from rc.conf. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8d6feaaaa26f"> <code> 8d6feaaaa26f ipfilter: Set ipf -T optionlist at boot </code> </a> </li> </ul> <h2> User Tooling </h2> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5797a03fe8a7"> <code> 5797a03fe8a7 ping tests: Run tests unprivileged inside a vnet </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8b13cb9d654c"> <code> 8b13cb9d654c ping tests: Silence deprecation warnings </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4859030ef193"> <code> 4859030ef193 ping: tests: Align with Scapy defaults </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2e29bf7a2ae6"> <code> 2e29bf7a2ae6 ping: tests: Cleanup IPOption()s </code> </a> </li> </ul> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=79c342aaf86f"> <code> 79c342aaf86f tftpd: Address flaky tests </code> </a> </li> </ul> <h2> Other stuff </h2> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a97f683fe3c4"> <code> a97f683fe3c4 vmm: Add a device file interface for creating and destroying VMs </code> </a> </li> </ul> <p> 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: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2416be588ea1"> <code> 2416be588ea1 vt: Fix frequency calcuation for bell </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00333Fri, 08 Nov 2024 00:00:00 +0000 FreeBSD Network Status Week 46 2024https://adventurist.me/posts/00335<p> The meta discussion is moving to the end of the report, meta meta discussion will hopefully be rare. </p> <h2> Goings on </h2> <h3> Fall 2024 FreeBSD Summit </h3> <p> The Fall 2024 FreeBSD Summit was last week. There were some great presentations which are recorded on the <a href="https://www.youtube.com/@FreeBSDProject"> FreeBSD YouTube Channel </a> . 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. </p> <ul> <li> <a href="https://www.youtube.com/watch?v=e-AIL09ZrAk"> Day One </a> </li> <li> <a href="https://www.youtube.com/watch?v=Veq_j13C8hQ"> Day Two </a> </li> </ul> <h3> BSD Devroom at FOSDEM 2024 </h3> <pre><code>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 &amp; 2 February 2025 BSD devroom date : Saturday February 1st, 2025 afternoon (second half) </code></pre> <p> <a href="https://people.freebsd.org/~rodrigo/fosdem25/"> CFP is here </a> </p> <p> There are only two weeks left for you to submit something. </p> <h3> FreeBSD 14.2 Code Slush in Effect </h3> <p> From Colin: </p> <pre><code>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 &lt;&lt;&lt; WE ARE HERE &gt;&gt;&gt; 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 </code></pre> <p> And an update today: </p> <pre><code>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. </code></pre> <p> <strong> Note: </strong> 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. </p> <h3> Struct ifnet is now hidden </h3> <pre><code>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 </code></pre> <p> <a href="https://lists.freebsd.org/archives/freebsd-arch/2024-November/000821.html"> You can find this message on the freebsd-arch mailing list </a> </p> <h3> Removal of <code> devel/kyua </code> </h3> <pre><code>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 </code></pre> <p> igoro@ has been doing a lot of work on testing, particularly in pf. This message went to to three mailing lists ( <a href="https://lists.freebsd.org/archives/freebsd-hackers/2024-November/004033.html"> see it on <code> freebsd-hackers </code> </a> ) </p> <h2> Transport </h2> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c9047eb7b30d"> <code> c9047eb7b30d tcp: allow TSO even while RX path is unordered </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fb7c1ac5ac49"> <code> fb7c1ac5ac49 tcp: remove the looping on pcb count in tcp_destroy() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=dded4e9e524c"> <code> dded4e9e524c tcp: change SOCKBUF_* macros to SOCK_[RECV|SEND]BUF_* macros </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=22dcc8129385"> <code> 22dcc8129385 tcp: Use segment size excluding tcp options for all cwnd calculations </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8f5a2e216f4c"> <code> 8f5a2e216f4c tcp: fix cwnd recalculation during limited transmit </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=81f08f303805"> <code> 81f08f303805 siftr: remove pointless assertion </code> </a> </li> </ul> <h2> Network Stack </h2> <p> As mentioned above we have a nice series of commits tidying up the use of <code> ifnet </code> to make it private: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4d0c95384f9b"> <code> 4d0c95384f9b net: Include private header in more needed places </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=edab5a280e0b"> <code> edab5a280e0b LinuxKPI: 802.11: improve lladdr change to not use ifnet internals </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f6efccaa35fe"> <code> f6efccaa35fe IfAPI: Remove temporary inclusion of if_private.h </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=57609cb2de14"> <code> 57609cb2de14 LinuxKPI: Use IfAPI to get LLADDR </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1eaecc214ea2"> <code> 1eaecc214ea2 qlnx: Convert recent changes to IfAPI </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b224af946a17"> <code> b224af946a17 netlink: Don't directly access ifnet members </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3f2eb1ac2326"> <code> 3f2eb1ac2326 dummymbuf: Explicitly include if_private.h </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=84d7ec4c657f"> <code> 84d7ec4c657f bnxt: Use IfAPI accessors where able </code> </a> </li> </ul> <p> Improvements to sendfile in the Linux compat code. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a43b745aaf4f"> <code> a43b745aaf4f linux sendfile: Fix handling of non-blocking sockets </code> </a> </li> </ul> <p> More tidying in the PCB code: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=52ef944b0f6f"> <code> 52ef944b0f6f inpcb: Constify address parameters to in6 pcb lookup routines </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3bb15ffc4ab4"> <code> 3bb15ffc4ab4 in6: Constify some sockaddr conversion functions </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0b4539ee542f"> <code> 0b4539ee542f inpcb: gc unused argument of in_pcbconnect() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=45a77bf23fa2"> <code> 45a77bf23fa2 inpcb: Make some cosmetic improvements to in_pcbbind() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=21d7ac8c79a3"> <code> 21d7ac8c79a3 inpcb: Remove some unused parameters in internal hash lookup functions </code> </a> </li> </ul> <h2> Netdev </h2> <p> It is not often you get a new media type, this comes with a nice explanation: </p> <pre><code>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. </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=78c63ed260fa"> <code> 78c63ed260fa net: if_media for 1000Base-BX BiDi </code> </a> </li> </ul> <p> And a well known trick for the X520 for lab measurements (no, I don't know this trick). </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=48ddd1b9f887"> <code> 48ddd1b9f887 ixgbe: Add support for 1Gbit DAC links </code> </a> </li> </ul> <p> <strong> MAN PAGES! </strong> </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c607b3258f15"> <code> c607b3258f15 ntp: Switch to upstream man pages </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f9f470f72c87"> <code> f9f470f72c87 ifnet(9): Document the IFF_PALLMULTI flag </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5b62dc782d48"> <code> 5b62dc782d48 p9fs.5: rename to p9fs.4 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9e469437993b"> <code> 9e469437993b inet.4: drop "experimetal use" from net0 and net240 descriptions </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=13e82893d858"> <code> 13e82893d858 ena.4: optimize apropos and hardware </code> </a> </li> </ul> <p> The only way you get a reputation for good documentation is by continuous consistent improvement. </p> <p> 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. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=52f8e99e7e5e"> <code> 52f8e99e7e5e iwlwifi: script to extract firmware details </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2483a2d36803"> <code> 2483a2d36803 release: add wifi-firmware-kmod@release to ship as package </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8838f3c32ac0"> <code> 8838f3c32ac0 rtwn: ensure TX work isn't scheduled during reset / abort </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=37e54466cf7a"> <code> 37e54466cf7a net80211: clean up / add more macros to check the frame types </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8f1a2d507e25"> <code> 8f1a2d507e25 iwm.4: move hardware list to .Sh HARDWARE and minor cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=93b30f1b6cae"> <code> 93b30f1b6cae man4:: wifi manuals: revise .Sh HARDWARE + polish some </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Fixes and tidying in pf and more probe points. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ac5e30a8073f"> <code> ac5e30a8073f pf: add probe points to pf_route(6)() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3b337076ba61"> <code> 3b337076ba61 pf: remove stale no_df tests from fragemtation_*.sh </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=371bd29d4b22"> <code> 371bd29d4b22 pf: fix potential state key leak </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=452e6f549cdb"> <code> 452e6f549cdb pf: Merge pf_clear_srcnodes() and pf_kill_srcnodes() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=65b20771713c"> <code> 65b20771713c pf tests: Simplify handling of pfctl -s </code> </a> </li> </ul> <p> 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 <code> fdt </code> probes). </p> <p> ipfilter is moving forward! </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fabc5e81bd04"> <code> fabc5e81bd04 ipfilter: Remove dead code from "Virtualize ipfilter" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6e608d2990e9"> <code> 6e608d2990e9 ipfilter: ipfilter: Remove more dead code </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=650900cc2f60"> <code> 650900cc2f60 ipfilter: Avoid holding a lock while stopping </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a0618fbe19df"> <code> a0618fbe19df Revert "ipfilter: Avoid stopping with a lock held" </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fc32b5ddf3af"> <code> fc32b5ddf3af ipfilter: Remove dead code </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1fa6daaafd74"> <code> 1fa6daaafd74 ipfilter: Avoid stopping with a lock held </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9da30a23a5ec"> <code> 9da30a23a5ec ipfilter: Include the IP address in error message </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3a2cb65b6e6d"> <code> 3a2cb65b6e6d ipfilter: Support printing of IPv6 addresses in error message </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=858a7a27f5c8"> <code> 858a7a27f5c8 ipfilter: Close a bracket in the poolnode error message </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8aae4220d766"> <code> 8aae4220d766 ipfilter: Print the hash name when adding a hashnode fails </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=470c680cfbf5"> <code> 470c680cfbf5 ipfilter: Print the pool name when adding a poolnode fails </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=42935716286e"> <code> 42935716286e ipfilter: Avoid overrunning the message buffer </code> </a> </li> </ul> <h2> Other stuff </h2> <p> This was an interesting one: </p> <pre><code>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. </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fd67ff5c7a6c"> <code> fd67ff5c7a6c Use the correct idle routine on recent AMD EPYC servers </code> </a> </li> </ul> <p> 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. </p> <h2> Please Send Feedback </h2> <p> 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. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00335Fri, 15 Nov 2024 00:00:00 +0000 FreeBSD Network Status Week 47 2024https://adventurist.me/posts/00336<p> A cold snap has hit my part of Europe hard and it is feeling very seasonal. The rate of commits seems down this week, that is probably partially the 14.2 release and if I project a bit the weather. </p> <p> Some nice changes coming in the WiFi stack and to other tools. In other stuff that I'm not covering here there is some good progress on risc-v support. </p> <h2> Goings on </h2> <h3> Fall 2024 FreeBSD Summit </h3> <p> The videos from the Fall FreeBSD summit have been parted out and are available <a href="https://www.youtube.com/watch?v=0_etgBlkVas&amp;list=PLugwS7L7NMXwhtfVdd3m2Ro0TV1XDzl3t"> in this playlist: </a> </p> <p> BSD Devroom at FOSDEM 2024 </p> <pre><code>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 &amp; 2 February 2025 BSD devroom date : Saturday February 1st, 2025 afternoon (second half) </code></pre> <p> <a href="https://people.freebsd.org/~rodrigo/fosdem25/"> CFP is here </a> </p> <h3> FreeBSD 14.2 Code Slush in Effet </h3> <p> THe 14.2 Code Slush is running and final (hopefully changes are landing) RC1 build should have started and we might make it without an RC2 build. </p> <pre><code>The 14.2-RELEASE cycle schedule as it stands now 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 BETA3 build starts: November 16, 2024 ports package builds: November 16-18, 2024 &lt;&lt;&lt; WE ARE HERE &gt;&gt;&gt; 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 </code></pre> <h2> Transport </h2> <p> I think this is mostly tidying things up, the rename is an adventure in sed. Writing these weekly and sitting on the regular transport calls it is sometimes hard to point at new features. I think the consistent development is a feature. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3789810845f1"> <code> 3789810845f1 tcp: avoid bcopy() in tcp_mss_update() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2944a888eabf"> <code> 2944a888eabf tcp: remove so != NULL check </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b80c06cc0af4"> <code> b80c06cc0af4 tcp: use const argument in the TCP hostcache KPI </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=09000cc133d8"> <code> 09000cc133d8 tcp: mechanically rename hostcache metrics structure fields </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8caa2f5351de"> <code> 8caa2f5351de tcp: define tcp_lro_log() only when TCP_BLACKBOX is defined </code> </a> </li> </ul> <h2> Network Stack </h2> <p> A nice optimization in forwarding code when we detect a blackholed route. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e27970ae8fff"> <code> e27970ae8fff netinet: handle blackhole routes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=438ca68cef3c"> <code> 438ca68cef3c netinet: default mib counter probe points off </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=48a88a4ee95a"> <code> 48a88a4ee95a socket: Move SO_SPLICE next to other socket option constants </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=12fc79619aca"> <code> 12fc79619aca Change the SOCKBUF_LOCK calls to use the more refined SOCK_XXXBUF_LOCK/UNLOCK. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=dae64402b3e8"> <code> dae64402b3e8 rtsock: fix panic in rtsock_msg_buffer() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0289db325953"> <code> 0289db325953 netlink/route: Fix the argument list for rtnl_handle_iflink() </code> </a> </li> </ul> <h2> Netdev </h2> <p> Driver improvements around TSO to support Accurate ECN in the future in igc, em and ixgbe. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ab540d44ba32"> <code> ab540d44ba32 igc: sysctl for TCP flag handling during TSO </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=90853dfac851"> <code> 90853dfac851 e1000: sysctl for TCP flag handling during TSO </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=eea2e089f8da"> <code> eea2e089f8da ixgbe: sysctl for TCP flag handling during TSO </code> </a> </li> </ul> <p> Lots of movement in WiFi world. adrian@ has popped back up and started working out a queue of stuff for rtwn. There should be some good improvements to throughput and consistency in HEAD if you want to grab that and try. </p> <p> We are seeing some steps towards higher rates in rtwn as well. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7dfaf238562c"> <code> 7dfaf238562c rtwn: Add device ID for TPLink RTL8192CU </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d99eb8230eb7"> <code> d99eb8230eb7 rtwn: change the USB TX transfers to only do one pending transfer per endpoint </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8b51df0d4fad"> <code> 8b51df0d4fad wpa: add support for GCMP-128 and BIP-128. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=842a2c1ad396"> <code> 842a2c1ad396 uath: flush data/commands to the firmware before changing channel / state </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7098b90152dd"> <code> 7098b90152dd usb: fix the ID for the dual-band Wistron AR5523 USB NIC </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3d0d43d25ac6"> <code> 3d0d43d25ac6 net80211: remove IEEE80211_FC0_QOSDATA </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c249cc3822dc"> <code> c249cc3822dc net80211: migrate FC0_TYPE_MASK / FC0_SUBTYPE_MASK frame type checks to macros </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1375790a15b1"> <code> 1375790a15b1 net80211: add IEEE80211_IS_QOS_NULL() </code> </a> </li> </ul> <p> bz@ landed changes to move iwlwifi from the source tree (and therefore shipped kernel modules) out of the tree. This includes support for adding the needed firmware from the installer, assuming you have internet access in the installer. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5399052c63a7"> <code> 5399052c63a7 bsdinstall: wlanconfig: fix interface UP on (re-)starting wpa_supplicant </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7e2996c1f5b4"> <code> 7e2996c1f5b4 release: install wireless firmware onto disc1 and dvd </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Netlink API improvements for pf </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7d929a444587"> <code> 7d929a444587 pf: Fix timestamps and connection rate in source node export </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e8eb3096d8d1"> <code> e8eb3096d8d1 pf: Fix missing connection rate for DIOCGETSRCNODES </code> </a> </li> </ul> <p> Fixes to tests and the build. Lots of tests use the packet accounting in FreeBSD which when we started we quickly learned was missing a lot of packets. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5eee34fa0351"> <code> 5eee34fa0351 pf tests: check counters on anchors </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=83641335f96c"> <code> 83641335f96c pf: clean up pflow sockets on jail removal </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4b65481ac68a"> <code> 4b65481ac68a pf: fix build without DTrace </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=81f7ad324dd0"> <code> 81f7ad324dd0 pf: add missing unlock </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6463b6b59152"> <code> 6463b6b59152 pfctl: clear statistic for specified addresses </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <p> This is the 9th edition of the Weekly Network Status report, currently I plan for the last report of the year to be written on the 13th of December. </p> <p> I have received a lot of very positive feedback which helps me to write these. Right now I intend to start writing these again in the new year, I might do a summary for the Solstice month all at once, or I'll just do a week. I'm not sure yet. </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00336Fri, 22 Nov 2024 00:00:00 +0000 FreeBSD Network Status Week 48 2024https://adventurist.me/posts/00337<h2> Goings on </h2> <p> 14.2 Release Builds should have started today (or be starting?). If all goes to schedule the release will be out the door and announced on Monday the 3th of December 2024. </p> <h3> BSD Devroom at FOSDEM 2024 </h3> <p> The BSD Devroom is back again at FOSDEM this year. The CFP closes on Sunday so this is your last chance to submit something. I hear The FreeBSD Foundation has a stand again this year, so if you want to come and see me in person you could find me there. </p> <p> Submit early submit often! Now is a bit late, but better than not submitting. </p> <pre><code>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 &amp; 2 February 2025 BSD devroom date : Saturday February 1st, 2025 afternoon (second half) </code></pre> <p> <a href="https://people.freebsd.org/~rodrigo/fosdem25/"> CFP is here </a> </p> <h3> It was stab week: </h3> <pre><code>On Mon, Nov 25, 2024 at 01:01:05AM -0800, Gleb Smirnoff wrote: T&gt; This is an automated email to inform you that the November 2024 stabilization week T&gt; started with FreeBSD/main at main-n273822-ff4c19bb5427, which was tagged as T&gt; main-stabweek-2024-Nov. At Netflix testing we didn't discover any new regressions comparing to the October stabweek. My personal machines on the new stanpshot are also doing well. I didn't receive any emails reporting regressions through the last days, hence releasing the advisory freeze. P.S. We are aware of regression in ZFS, that happened between September and October stabweeks and are working on a reliable reproducer. A panic happens when using md(4) device backed by a file on ZFS. </code></pre> <p> Sounds like there wasn't anything big. This is a reminder that you can directly test your workloads against upcoming releases at a suspected stable point of the tree. </p> <p> Early testing helps avoid late surprises. </p> <h2> Transport </h2> <p> This is a collision of transport and firewalls ( and I guess packet forwarding). Using the new <code> __tcp_get_flags </code> call teach ppp, pf and ipf about the Accurate ECN AE flag. ECN is one way for the network to communicate with a flow about network conditions. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=347dd0539f3a"> <code> 347dd0539f3a tcp: add TH_AE capabilities to ppp and pf </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0fc7bdc97836"> <code> 0fc7bdc97836 tcp: extend the use of the th_flags accessor function </code> </a> </li> </ul> <p> Small change to memory copying for <code> udp_input </code> , memcpy doesn't need concern itself with overlapping segments and so can be faster. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=949190c5afbc"> <code> 949190c5afbc udp: Prefer memcpy() over bcopy() </code> </a> </li> </ul> <h2> Network Stack </h2> <p> Fix setting the Don't Fragment bit when tunneling IPv6 over IPv4. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c94d6389e428"> <code> c94d6389e428 ipsec: fix IPv6 over IPv4 tunneling. </code> </a> </li> </ul> <h2> Netdev </h2> <p> Some e1000 changes, the main one here is a further attempt to better implement auto negotiation according to the standard. The commit message has a lot of details and is worth a click through. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bceec3d80a3c"> <code> bceec3d80a3c e1000: Try auto-negotiation for fixed 100 or 10 configuration </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4020351325c0"> <code> 4020351325c0 e1000: Remove old itr sysctl handler </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7390daf87c53"> <code> 7390daf87c53 e1000: Style txrx </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6f14883066f1"> <code> 6f14883066f1 e1000: Style pass on if_em </code> </a> </li> </ul> <p> More names for T6 cards: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5c15094916bf"> <code> 5c15094916bf cxgbe(4): Update the board names of the T6 OCP cards. </code> </a> </li> </ul> <p> Change the default mode of igc in promisc mode to not show bad packets. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e80419da6cef"> <code> e80419da6cef igc: disable hw.igc.sbp </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c7fb7b5d9fcd"> <code> c7fb7b5d9fcd igc: Style pass igc_txrx </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9efc7325f1ac"> <code> 9efc7325f1ac igc: Reflow long lines </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d1bb1a501118"> <code> d1bb1a501118 igc: Normalize indentation a bit </code> </a> </li> </ul> <p> Improvements to mlx5 and family. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=253a1fa16b98"> <code> 253a1fa16b98 mlx5: Fix handling of port_module_event </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=67f93079075b"> <code> 67f93079075b mlx5e tls: use non-sleeping malloc flag is it was intended </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=81b38bce0794"> <code> 81b38bce0794 mlx5e tls: Ensure all allocated tags have a hw context associated </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0d38b0bc8fbc"> <code> 0d38b0bc8fbc mlx5en: fix the sign of mlx5e_tls_st_init() error, convert from Linux to BSD </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4cc5d081d8c2"> <code> 4cc5d081d8c2 mlx5en: only enable to toggle offload caps if they are supported </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cca0dc49e0ca"> <code> cca0dc49e0ca mlx5en: move runtime capabilities checks into helper functions </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=64bf5a431cbe"> <code> 64bf5a431cbe mlx5_en: style function prototype </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Mostly fixes in pf, the first commit here is an improvement to IPv6 fragment handling which just sort of makes me sad. Nothing to do with the change and everything to do with networking. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=56b7685ae328"> <code> 56b7685ae328 pf: handle IPv6 fragmentation for route-to </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b9c0321d54e9"> <code> b9c0321d54e9 pf: Fix source node locking </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1a5dc6ee62b3"> <code> 1a5dc6ee62b3 pf: Set cleared time when zeroing stats for table addresses </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9f9cf83f114a"> <code> 9f9cf83f114a pf: Use a single pointer to state in pf_src_connlimit() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=45d108ee147c"> <code> 45d108ee147c pf_route6(): one more __sdt_used annotation </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e0bf7bc3b2ba"> <code> e0bf7bc3b2ba pf: reduce indentation level in pf_dummynet_route() </code> </a> </li> </ul> <p> We have other firewalls too! </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e012d79c9c73"> <code> e012d79c9c73 ipfw: fix order of memcpy arguments. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a46c121db4a5"> <code> a46c121db4a5 netpfil tests: make dummynet tests more robust </code> </a> </li> </ul> <h2> User Tooling </h2> <p> With the <code> -n </code> flag the any addr ( <code> 0.0.0.0/0 </code> ) is now printed as default rather than the string <code> default </code> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9206c7996198"> <code> 9206c7996198 usr.bin/netstat: -n should not print symbolic names </code> </a> </li> </ul> <p> Align domain entry so all upper case domains should work. I was expecting this to be a hangover from the past, but RFC 8881 which specifies this behaviour is from 2023. I bet this has confused a lot of people in the past as we are generally pretty loose with capitalization and domain names. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0347ddf41f42"> <code> 0347ddf41f42 nfs_commonsubs.c: Make all upper case user domain work </code> </a> </li> </ul> <h2> Other stuff </h2> <p> I'm putting this here to highlight it: </p> <pre><code>Kernel TLS is now enabled by default in kernels including KTLS support. KTLS is included in GENERIC kernels for aarch64, amd64, powerpc64, and powerpc64le. </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=af1ef35a0066"> <code> af1ef35a0066 RELNOTES: Document that ktls is now enabled by default </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b2f7c53430c3"> <code> b2f7c53430c3 ktls: Enable by default </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> 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). </p> <p> emaste@ would like to know how people are finding these updates. Is it from the mailing list emails, frequent reader of my blog, somewhere else? Please, let me know. </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> Thanks to: </p> <ul> <li> emaste@ for correcting the order of change inthe netstat -n commit. </li> </ul> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00337Fri, 29 Nov 2024 00:00:00 +0000 FreeBSD Network Status Week 49 2024https://adventurist.me/posts/00340<h2> Goings on </h2> <h3> BSD Devroom at FOSDEM 2024 </h3> <p> The CFP for the BSD Devroom at FOSDEM closed over the weekend, submitters have been told to expect responses on the 15th of December. I'll provide a run down of upcomming talks in the first status update of 2025. </p> <h3> FreeBSD 14.2 was released </h3> <p> Congratulations to everyone involved and a big thanks to the RE team for getting FreeBSD 14.2 out. <a href="https://www.freebsd.org/releases/14.2R/relnotes/"> The release notes are here </a> </p> <h3> CFT for rtwn, ath and iwn </h3> <pre><code>hi! I've been working on some net80211 clean-ups and rtwn bugfixes in preparation for getting the 11ac support for rtwn landed into the tree. If you're using rtwn, ath or iwn then the latest stuff I've done in -HEAD may affect you. Please update to the latest -HEAD and let me know if anything has regressed! (or if it still works fine, that'd be nice to know too!) thanks, -adrian </code></pre> <p> <a href="https://lists.freebsd.org/archives/freebsd-wireless/2024-December/002544.html"> adrian@ posted a cft for users of rtwn, ath and iwn after recent CURRENT changes </a> </p> <h2> Network Stack </h2> <p> Lots of tidying in netlink. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=29f6150256c2"> <code> 29f6150256c2 netlink: use nitems() and roundup(2) from param.h </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fe048349c63c"> <code> fe048349c63c netlink: use proper argument types in genl_register_family() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6380058fe5b5"> <code> 6380058fe5b5 netlink: use correct uint16_t type for attribute type &amp; length </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f1c6edba885f"> <code> f1c6edba885f netlink: use size_t through the allocation KPI </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0601c0f989f2"> <code> 0601c0f989f2 netlink: check buffer length fits into u_int </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a034c0aeccd8"> <code> a034c0aeccd8 netlink: refactor writer initialization KPI </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=edf5608bfef3"> <code> edf5608bfef3 netlink: use bitset(9) </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ac84ce05c121"> <code> ac84ce05c121 netlink: consistently use uint16_t for family id </code> </a> </li> </ul> <p> Tidying in <code> in6_pcbbind </code> . This is a very difficult part of the network stack to work in and tidying here makes things much easier. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=01f8ce83242d"> <code> 01f8ce83242d inpcb: Factor out parts of in6_pcbbind() and in_pcbbind_setup() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ffb3d384fc1d"> <code> ffb3d384fc1d inpcb: Fix the GENERIC-NODEBUG build </code> </a> </li> </ul> <h2> Transport </h2> <p> Tidy ups in <code> tcp_hpts </code> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b2bde8a6d391"> <code> b2bde8a6d391 tcp_hpts: consistenly use macros to lock &amp; unlock </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5cb73dbe4820"> <code> 5cb73dbe4820 tcp_hpts: use booleans for tcp_hptsi() local variables </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=63446fd35421"> <code> 63446fd35421 tcp_hpts: use boolean to tell is it callout or userret context </code> </a> </li> </ul> <h2> Netdev </h2> <p> Tie receive packet headers to the correct NUMA domain, this sort of change can help a lot in systems with multiple NUMA domains to reduce cross domain traffic. This happening in iflib makes it 'free' for all iflib drivers. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3d642b0f71c5"> <code> 3d642b0f71c5 iflib: Set the NUMA domain in receive packet headers </code> </a> </li> </ul> <p> Add a big list of skus to igc </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=850f78d5a191"> <code> 850f78d5a191 igc.4: Add I226 and other additions to supported list </code> </a> </li> </ul> <p> adrian@ landed some macros that help with handling ht rates, this makes drivers cleaner: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c6b44f64c330"> <code> c6b44f64c330 net80211: add helper functions for determining HT transmit parameters </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6749f059a586"> <code> 6749f059a586 rtwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e1eff81ea99c"> <code> e1eff81ea99c rtwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=057db5b227d0"> <code> 057db5b227d0 iwn: use ieee80211_ht_check_tx_ht() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2014462da5b3"> <code> 2014462da5b3 amrr: remove duplicate logic, use ieee80211_ht_check_tx_ht() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3f62f8ef5e40"> <code> 3f62f8ef5e40 iwn: use ieee80211_ht_check_tx_shortgi_20() and ieee80211_ht_check_tx_shortgi_40() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3d54d9e364f8"> <code> 3d54d9e364f8 ath: use the new net80211 methods for AMPDU density/limit, short-GI </code> </a> </li> </ul> <p> and he landed a bunch of improvements to rtwn from debugging. Chat in the wifi irc channel suggest that rtwn might get a lot faster soon. If you use rtwn you should test HEAD now to help catch any regressions. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fcb5e8d0c19a"> <code> fcb5e8d0c19a rtwn: don't do 64 bit TSF extension by default </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=81aef988acc7"> <code> 81aef988acc7 rtwn: remove the conditional compilation around the sc_ht40 option. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=05c3851b20e0"> <code> 05c3851b20e0 rtwn: enable receiving AMSDU in AMPDU </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d76247e801de"> <code> d76247e801de rtwn: enable FCS in the recive config to work around truncated frames </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4fa68495f04f"> <code> 4fa68495f04f rtwn: fix rtl8812/rtl8821 vht definitions, add VHT calibration/rate control </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=77e64f45c478"> <code> 77e64f45c478 rtwn: use ieee80211_ht_get_node_ampdu_density(), fix programming MAX_AGG </code> </a> </li> </ul> <p> bz@ has landed HT and VHT improvements for the Linux KPI. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a0e45db6f6eb"> <code> a0e45db6f6eb contrib/wpa: pass IFM_IEEE80211_VHT5G if vht_enabled on the channel </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=243f6925bf81"> <code> 243f6925bf81 net80211: 11ac: add options to manage VHT STBC </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=116102101a56"> <code> 116102101a56 net80211: name IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_{NONE -&gt; NO160} </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4294f1cac153"> <code> 4294f1cac153 net80211: add missing reference for struct ieee80211_vht_mcs_info </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=943a19c666d6"> <code> 943a19c666d6 LinuxKPI: 802.11: make HT compile again </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=30d2f84ef2cb"> <code> 30d2f84ef2cb LinuxKPI: firmware: change order filenames trying to load firmware </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Following up on the pf EIM NAT support Damjan Jovanovic has implemented support for EIM NAT for libalias users. If you use ipfw, ppp or netgraph you can now experiment with a more transparent NAT mapping. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=61bf830cbb26"> <code> 61bf830cbb26 libalias: Add support for EIM NAT </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f132be9bac5f"> <code> f132be9bac5f netgraph: Enable support for EIM NAT </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cb21fa3d0d26"> <code> cb21fa3d0d26 ppp: Enable support for EIM NAT </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ef18594985c0"> <code> ef18594985c0 natd: Enable support for EIM NAT </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b6c90b909905"> <code> b6c90b909905 ipfw : Enable support for EIM NAT </code> </a> </li> </ul> <p> Some stability fixes in pf and potential panic fixes. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ad6562ec858f"> <code> ad6562ec858f pf: Don't pfsync states with unrecoverable routing information </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f966ef3a6770"> <code> f966ef3a6770 pf: fold if (s != NULL) and if (s) into one block </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c22c98798456"> <code> c22c98798456 pf: fix potential NULL dereference in SCTP multihome handling </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c49c9da239ca"> <code> c49c9da239ca pf: Move route-to information to rule actions </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0dab21248bc9"> <code> 0dab21248bc9 pfkey: Fix some checks in kdebug_sadb() </code> </a> </li> </ul> <h2> Other stuff </h2> <p> First up, documentation of a wonderful hack from phk@ to show network traffic in bits per second by running with an 8 second interval. This had a few confused follow ups, it is so simple so people thought it couldn't possibly work. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b5a8abe9502e"> <code> b5a8abe9502e How to show interface traffic in bits per second </code> </a> </li> </ul> <p> <a href="https://youtu.be/0_etgBlkVas?si=T4AzqtyQYtg2Q0lc"> Following on from the excellent Fall Summit talk by Ian from Metify </a> on rural broadband, do a better job of documenting the cellular hardware we support. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=53484f516ac4"> <code> 53484f516ac4 u3g.4: Fall cleaning </code> </a> </li> </ul> <p> I like the commit message on this one: </p> <ul> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=4d12c7b9df66"> <code> 4d12c7b9df66 cu.1: describe better + tag spdx </code> </a> </p> <p> cu.1: describe better + tag spdx Preserve over 40 years of "call UNIX" BSD heritage while answering "one line about what it does" e.g. </p> <p> "how do I get a serial console?" "% apropos serial" </p> </li> </ul> <p> Make things easier for users to understand, but also preserve the past. </p> <h2> Please Send Feedback </h2> <p> That is all for this week. Next week will be the last report of the year, I'll be travelling (please say hi if you are at 38c3) and I think a report break might be nice. </p> <p> The first report will probably be on the 10th of January, look for it where you found this one. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00340Fri, 06 Dec 2024 00:00:00 +0000 FreeBSD Network Status Week 50 2024https://adventurist.me/posts/00341<p> Pretty quiet week, driver changes normally come as large series and there aren't a lot this week. This week isn't an outlier. </p> <h2> Goings on </h2> <h3> BSD Devroom at FOSDEM 2024 </h3> <p> <a href="https://fosdem.org/2025/schedule/track/bsd/"> The schedule for the FOSDEM is online </a> . The BSD Devroom is only a half day with the following sessions: </p> <ul> <li> How FreeBSD security audits have improved our security culture </li> <li> Wake up, FreeBSD! Implementing Modern Standby with S0ix </li> <li> Tracking bulk builds in pkgsrc - from Cloud to NetBSD Native </li> <li> High Performance Packet filtering in BSD. A holistic review </li> <li> A packet's journey through pf </li> <li> Making NetBSD as a fast(er) booting microvm </li> <li> Writing about FreeBSD </li> <li> FreeBSD audit source and other syslog-ng news </li> </ul> <p> I will be talking about writing about FreeBSD, which means right now I am writing about talking about writing. I'm going to cover avenues in, how and where to publish stuff and the process and idea behind this series of reports. </p> <h2> Network Stack </h2> <p> Swap a tab for a space so <code> in6_ifaddr </code> can be grepped for. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a6a0b8d50e87"> <code> a6a0b8d50e87 in6_var.h: make struct in6_ifaddr declaration searchable with grep(1) </code> </a> </li> </ul> <p> ICMP responses are rate limited, but there might be issues if an attacker could discover the rate limit so a jitter value is applied to the rate limit. This improves the description: </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=eba715c544ea"> <code> eba715c544ea icmp.4: improve icmplim and add icmplim_jitter description </code> </a> </li> </ul> <h2> Netdev </h2> <p> More progress in cxgbe to make TLS offload available by default. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=70693a45381b"> <code> 70693a45381b cxgbe tom: Restore support for zerocopy TCP receive for aio_read() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=34fbc9e421e7"> <code> 34fbc9e421e7 cxgbetool.8: Consistently use .Cm for loader tunables </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=906521882324"> <code> 906521882324 cxgbe: Tidy TOE tunables under hw.cxgbe </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8b1788118a1a"> <code> 8b1788118a1a cxgbe tom: Enable TLS offload support by default </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=45d5b9f0324a"> <code> 45d5b9f0324a cxgbe/t4_tom: Plug an stid leak. </code> </a> </li> </ul> <p> Tidy up a module ordering issue that leads to a hang during module load for iwlwifi. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=87e140a5c6f8"> <code> 87e140a5c6f8 iwlwifi: avoid (hard) hang on loading module </code> </a> </li> </ul> <p> API improvements in net80211. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=30e8252353d9"> <code> 30e8252353d9 net80211: HT: check for feature support in ht_recv_action_ht_txchwidth() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8437d7d6a4d6"> <code> 8437d7d6a4d6 net80211: HT: add missing bit descriptions for IEEE80211_AGGR_BITS </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ca389486a959"> <code> ca389486a959 net80211 / LinuxKPI 802.11: use enum ieee80211_sta_rx_bw for ni_chw </code> </a> </li> </ul> <p> Lot of updates to rtwn moving towards HT (80211n) and VHT (80211ac), adrian@ is talking about doing 50Mbit right now from rtwn which is great progress. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=977679d651de"> <code> 977679d651de rtwn: remove unused rate configuration code for management traffic. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f6f03d156ba7"> <code> f6f03d156ba7 rtwn: add VHT awareness to rtwn_chan2centieee() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b811e5a5effe"> <code> b811e5a5effe rtwn: program the 1 and 2 stream VHT transmit power rates </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b4980d8a48e5"> <code> b4980d8a48e5 rtwn: calculate the transmit power for VHT rates </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=468cd606239e"> <code> 468cd606239e rtwn: refactor out the rtl8812/rtl8821 tx power programming </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3d69926189f5"> <code> 3d69926189f5 rtwn: expand the ridx numbers to include VHT; add accessor macros </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c3c2f0ddd818"> <code> c3c2f0ddd818 rtwn: add missing iv_ampdu_limit </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b59017c5cad9"> <code> b59017c5cad9 rtwn: add placeholder for the per-MACID rate report </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b2b6c2236b9c"> <code> b2b6c2236b9c rtwn: enable HT40 for RTL8821/RTL8812 series NICs </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=351356090998"> <code> 351356090998 rtwn: use ieee80211_ht_check_tx_ht40() to transmit HT40 frames </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Add a new flag to pfctl to only reset counters for table entries which items logged against them. This preserves the zeroed timestamp on entires with nothing logged. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5b59b0c61e29"> <code> 5b59b0c61e29 pfctl: add -T </code> reset <code> to touch pfras_tzero only for non-zero entries </code> </a> </li> </ul> <p> Catch a state tracking issue after the <code> TCP_AE </code> introductions in the last few weeks in ipfw. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9ea8d692f4cb"> <code> 9ea8d692f4cb ipfw: use only needed TCP flags for state tracking </code> </a> </li> </ul> <p> Tidying in netlink. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=33c670c373c0"> <code> 33c670c373c0 netlink.h: Align macro declarations with tabs </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5143d8c4434c"> <code> 5143d8c4434c netlink: Use __align_up() instead of homegrown roundup2 macro </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9df901c8f8c8"> <code> 9df901c8f8c8 netlink: Pop NLMSG_ALIGNTO and NLMSG_ALIGN out of the #ifndef _KERNEL block </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c7919fb92d20"> <code> c7919fb92d20 netlink: Do not cast to int in NLMSG_HDRLEN and _NLMSG_LEN </code> </a> </li> </ul> <h2> User Tooling </h2> <p> Add option to allow setting of mount port number for nfs. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0e8a36a2ab12"> <code> 0e8a36a2ab12 mount_nfs.c: Add an NFS mount option to set a port# for Mount </code> </a> </li> </ul> <h2> Other stuff </h2> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=35623ccc3758"> <code> 35623ccc3758 release: Standardize on *-${FS}.* VM image naming </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6dafe8c1e46e"> <code> 6dafe8c1e46e Clean pkg cache in release media </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> This is the 12th Network status report and the final one for 2024.I have enjoyed writing these and plan to pick them up again in the New Year. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00341Fri, 13 Dec 2024 00:00:00 +0000 FreeBSD Network Status Week 03 2025https://adventurist.me/posts/00347<p> Happy New Year and welcome back to FreeBSD Network Status Reports. I hope you had a great time over the Winter Pause (if you did pause) and are ready for another great year of improvements to FreeBSD. </p> <p> I have opted to do a mega report, there have been 705 commits to FreeBSD main since my last update so we should get going before any more sneak in. </p> <h2> Goings on </h2> <h3> BSD Devroom at FOSDEM 2024 </h3> <p> The Devroom program <a href="https://fosdem.org/2025/schedule/track/bsd/"> is available here </a> . I am speaking about writing these reports and staffing the Project/Foundation table the rest of the time. I could do with help covering the table (which must always be staffed) for the weekend. If you want to help send me an email (thj@freebsd.org) </p> <h2> Transport </h2> <p> In RACK and BBR there have been a bunch of tidy up changes simplifying code. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e7fbf52a3e38"> <code> e7fbf52a3e38 TCP BBR: remove dead code </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4c89d59e0cda"> <code> 4c89d59e0cda TCP RACK: don't log an uninitialized value </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e8ec28047df5"> <code> e8ec28047df5 TCP RACK: fix TCP_RACK_PACING_BETA socket option </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=061727efe1e3"> <code> 061727efe1e3 TCP BBR: remove dead code </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c28fefe1dc44"> <code> c28fefe1dc44 TCP BBR: remove dead code </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bb9525f30214"> <code> bb9525f30214 TCP RACK: fix TCP fast open </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=84e894ce1309"> <code> 84e894ce1309 TCP RACK: remove variable with is only initialized and not changed </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4bce1a19fcfa"> <code> 4bce1a19fcfa TCP BBR: remove code which is not needed </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=305c40dc552f"> <code> 305c40dc552f TCP BBR: simplify expression </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=41af5eeefc2c"> <code> 41af5eeefc2c TCP RACK: remove code that cannot be reached </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=88766e7af52b"> <code> 88766e7af52b TCP BBR: fix integer overflow </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4173a3a009a4"> <code> 4173a3a009a4 TCP BBR: simplify expression </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=deb4252e9e7c"> <code> deb4252e9e7c TCP RACK: remove un-needed assignment </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8471791eb6ee"> <code> 8471791eb6ee TCP RACK: simplify condition </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c7e81cc04369"> <code> c7e81cc04369 TCP BBR: do not log an uninitialized value </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3b9da3dcd11f"> <code> 3b9da3dcd11f TCP RACK: avoid using uninitialized tot_idle variable </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1781324db2bc"> <code> 1781324db2bc TCP BBR: remove code which is never executed </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5ec914e06c96"> <code> 5ec914e06c96 TCP BBR: fix condition when sending a tail loss probe </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0ce13b1d580f"> <code> 0ce13b1d580f TCP RACK: add comment </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b47dcb4b1ff1"> <code> b47dcb4b1ff1 TCP BBR: fix getsockopt() for TCP_BBR_USEDEL_RATE </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4f3a0c719780"> <code> 4f3a0c719780 TCP RACK: don't use an uninitialized variable </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4940584bbf0b"> <code> 4940584bbf0b TCP RACK, BBR: cleanup of ctf_process_inbound_raw() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b5739c8b1222"> <code> b5739c8b1222 TCP RACK, BBR: ensure return value is always ininitialized </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=16e8e99f1d41"> <code> 16e8e99f1d41 TCP RACK: remove redundant check </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=895347fc10c5"> <code> 895347fc10c5 TCP BBR: remove assignments without effect </code> </a> </li> </ul> <p> I think the other TCP changes fall under maintenance and general code quality. The "don't send beyond advertised window" change is an indicator of how complex TCP is to work on. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2cadbe468a8e"> <code> 2cadbe468a8e tcp_wrappers: Use default C standard version </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3604a050eedb"> <code> 3604a050eedb tcp_hpts: refactor the per tcpcb call to either input/output method </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1043b36b2054"> <code> 1043b36b2054 tcp: don't send beyond receivers advertised window </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b84f41b4e82d"> <code> b84f41b4e82d tcp: properly reset sackhint values when SACK recovery is done </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=72c11c40ab5b"> <code> 72c11c40ab5b tcp: make sack_rxmit in tcp_output() a bool </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=31034044ff27"> <code> 31034044ff27 tcp: cleanup of nits after use of accessor tcp_get_flags </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c91dd7a054b3"> <code> c91dd7a054b3 tcp: remove unused variable from tcp_usr_disconnect() </code> </a> </li> </ul> <h2> Network Stack </h2> <p> Better MTU selection when using ipsec. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f87074000873"> <code> f87074000873 ip6_output(): if mtu is not yet computed for ipsec hook, use ifp mtu </code> </a> </li> </ul> <p> Changes in VNET, more socket sysctl parameters are virtualised and there have been some fixes. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=38d947b53cbc"> <code> 38d947b53cbc netisr: fix compilation without VIMAGE </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4c0e435bfbad"> <code> 4c0e435bfbad unix: avoid VNET recursion in unp_connectat() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a1be7978f187"> <code> a1be7978f187 netisr: avoid VNET recursion warning in netisr_register() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1e9bca400b9c"> <code> 1e9bca400b9c sockets: assert VNET set in sopeeraddr() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=59498e099cc0"> <code> 59498e099cc0 sockets: virtualize kern.ipc.numopensockets </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4155be454c46"> <code> 4155be454c46 sockets: virtualize kern.ipc.soacceptqueue </code> </a> </li> </ul> <p> Several commits to netlink. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=90b1df4f4df9"> <code> 90b1df4f4df9 netlink: small cleanup of generic snl(3) </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c3df2fa9a755"> <code> c3df2fa9a755 netlink: snl_create_msg_request() may fail due to ENOMEM </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3ce003c8b615"> <code> 3ce003c8b615 netlink: restore the ability to delete PINNED routes </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6ed3486980c9"> <code> 6ed3486980c9 netlink: avoid underflow of groups bitset index </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=926d2eadcb67"> <code> 926d2eadcb67 netlink: some refactoring of NETLINK_GENERIC layer </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=26d1ad5a44e1"> <code> 26d1ad5a44e1 netlink: snl_create_genl_msg_request() may fail due to ENOMEM </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bbe6559cf958"> <code> bbe6559cf958 netlink: fix size comparison </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8a8d095718cb"> <code> 8a8d095718cb netlink: add snl(3) primitive to obtain group ID </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0fda4ffd6905"> <code> 0fda4ffd6905 netlink: augment group writer with priv(9) argument </code> </a> </li> </ul> <h2> Netdev </h2> <p> Some fixes to mlx5 in SRIOV. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b762b199afc6"> <code> b762b199afc6 mlx5: Eliminate the use of mlx5_rule_fwd_action </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2fb2c0351237"> <code> 2fb2c0351237 mlx5_core: fix "no space" error on sriov enablement </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=29a9d7c6ce78"> <code> 29a9d7c6ce78 mlx5_core: fix panic on sriov enablement </code> </a> </li> </ul> <p> An update for the Cisco Virtual Interface Card driver to better handle MTU changes. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0acab8b3d133"> <code> 0acab8b3d133 enic(4): fix down/up, MTU changes and more </code> </a> </li> </ul> <h2> Wireless </h2> <p> adrian@ has been working on rtwn and it is growing into the WiFi device with the best support. IF you have supported USB hardware and want to try higher rates then testing CURRENT now would be appreciated. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8896f36587f4"> <code> 8896f36587f4 rtwn: allow firmware rate control to be enabled for rtl8192cu </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ce7fca19287c"> <code> ce7fca19287c rtwn: refactor out the r92c path protection decision / configuration </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ea347b7fda20"> <code> ea347b7fda20 rtwn: refactor out datarate and short preamble setup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f45f66fadacc"> <code> f45f66fadacc rtwn: explicitly configure RTS based on basic rates </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f167ba73574a"> <code> f167ba73574a rtwn: fix RTWN_RIDX_VHT_MCS() macro </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ec07af2a3d49"> <code> ec07af2a3d49 rtwn: announce VHT support for RTL8812AU/RTL8821AU. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=82182587bcc3"> <code> 82182587bcc3 rtwn: add VHT20/VHT40/VHT80 bandwidth configuration for transmit. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=dd58d03a2a46"> <code> dd58d03a2a46 rtwn: set the maximum A-MPDU size correctly for RTL8812AU/RTL8821AU </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d82bfe73a3f4"> <code> d82bfe73a3f4 rtwn: don't set the RTS/CTS primary channel field for RTL8812AU/RTL8821AU </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=93411b39fff2"> <code> 93411b39fff2 rtwn: calculate control rate for VHT rate frames </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=64ecfc27dbd4"> <code> 64ecfc27dbd4 rtwn: add forcerate flag to TX descriptor setup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2be951a526cb"> <code> 2be951a526cb rtwn: enable VHT if it's configured in the device </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cbc331d153cf"> <code> cbc331d153cf rtwn: fix builds on non-x86 platforms </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=aa178783710f"> <code> aa178783710f rtwn: print out the firmware file being loaded </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=06b7335701fa"> <code> 06b7335701fa rtwn: add rtwn_ctl_vhtrate(), some cleanups </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=307f9c351588"> <code> 307f9c351588 rtwn: only set INIRATE if we're not doing firmware rate control. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=af2e102c4065"> <code> af2e102c4065 rtwn: enable periodic TX reporting support on RTL8188EU NICs. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7ddf19492cd9"> <code> 7ddf19492cd9 rtwn: add support for register IO debugging </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4fad98b5c8d7"> <code> 4fad98b5c8d7 rtwn: remove SEQ_SEL, replace with a QOS bit </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=791170aaf7ef"> <code> 791170aaf7ef rtwn: make sure RCR_APPFCS stays set in monitor mode / mode changes. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9efd215411bb"> <code> 9efd215411bb rtwn: create a new HAL routine for enabling STA mode beacon processing </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=300c843b075c"> <code> 300c843b075c rtwn: bring the r92c rate control setup selection in line with tx descriptors </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=eb6314510c88"> <code> eb6314510c88 rtwn: disable a workaround introduced earlier for RTL8192CU TX performance </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=aaaca5f288fa"> <code> aaaca5f288fa rtwn: add a default OFDM / CCK rate for self-generated frames </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4e2bd8cf08f4"> <code> 4e2bd8cf08f4 rtwn: set the shortgi flag in the RTL8192C rate control setup message </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=371a4ee9a384"> <code> 371a4ee9a384 rtwn: add SGI flag for the rate control message </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=745a85824748"> <code> 745a85824748 rtwn: update rtwn_get_rates() to separate out the CCK/OFDM and HT rates </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=638fcd53db7d"> <code> 638fcd53db7d rtwn: bump up the RX USB buffers </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0ea7f8ca66f3"> <code> 0ea7f8ca66f3 rtwn: try enforcing net80211 regulatory / txpower limits for 11n chips </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6858c6b1e1a9"> <code> 6858c6b1e1a9 rtwn: refactor out the TX power register power dump, condense output </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b71805e991fb"> <code> b71805e991fb rtwn: add APIs for setting transmit power </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cf6b389f7c48"> <code> cf6b389f7c48 rtwn: add tx power training for RTL8812/RTL8821 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=35e63136a8c2"> <code> 35e63136a8c2 rtwn: add a register value for R92C_FPGA0_POWER_SAVE, and other bits </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7b71689c9ccd"> <code> 7b71689c9ccd rtwn: update RTL8812AU/RTL8821AU receive path to include VHT info </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7722d5e21477"> <code> 7722d5e21477 rtwn: add RTL8812/RTL8821 VHT80 channel programming, spur management </code> </a> </li> </ul> <p> Changes in net80211 and LinuxKPI to support HT and VHT rates. We are getting closer to the Linux KPI drivers having reasonably modern throughputs. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2c8b0d6205f6"> <code> 2c8b0d6205f6 net80211 / LinuxKPI 802.11: correct enum ieee80211_sta_rx_bw </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5fdc4824a5e2"> <code> 5fdc4824a5e2 net80211: (v)ht: use macros at hand </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a3a308f0f29b"> <code> a3a308f0f29b lib80211: regdomain: add the two other 160MHz bands </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1832eb102e10"> <code> 1832eb102e10 net80211: add missing 80Mhz and 160Mhz channel ranges </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=054c5ddf587a"> <code> 054c5ddf587a net80211: add IEEE80211_IS_LOCKED() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=912a05670ed9"> <code> 912a05670ed9 net80211: add helper functions for VHT transmit </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=42410c6d682c"> <code> 42410c6d682c ifconfig: make -vht work </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=07f6575585bf"> <code> 07f6575585bf LinuxKPI: 802.11: turn on debugfs for iwlwifi and rtw88 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e6d40f90110a"> <code> e6d40f90110a net80211: correct typo s/Insure/Ensure/ </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cf71349a23f0"> <code> cf71349a23f0 ifconfig: 802.11: fix indentation of a line </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f1aeb5d850cf"> <code> f1aeb5d850cf LinuxKPI: 802.11: add a print mask for ieee80211_rx_status_flags bits </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=91a4107d6d30"> <code> 91a4107d6d30 ifconfig: remove debug printfs from set80211vhtconf() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2372f8cc640c"> <code> 2372f8cc640c LinuxKPI 802.11 / rtw88: make packets flow again </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=95a7aa800987"> <code> 95a7aa800987 LinuxKPI: 802.11: implement wiphy_{,un}lock() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5d09d1070737"> <code> 5d09d1070737 iwlwifi: add missing blank, unwrap line </code> </a> </li> </ul> <p> I think from the rtwn stuff some longer standing issues in ath were fixed. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cc3b7b7e715d"> <code> cc3b7b7e715d ath_hal_ar9300: implement the TX/RX chainmask override for AR9300 HAL </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=18fabd338ce7"> <code> 18fabd338ce7 ath_hal_ar9300: quick refactor of tx/rx chain handling </code> </a> </li> </ul> <p> gavin@ has started poking on the Broadcom NICs you might see in old MacBooks. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6ea1ce222c7c"> <code> 6ea1ce222c7c bhnd: Fix a few use after frees when releasing resources </code> </a> </li> </ul> <h2> Firewalls </h2> <p> Much has happened in PF in the last month. OpenBSD's NAT rewrite support has been partially imported, with accommodation for FreeBSD's existing rule syntax. SCTP support has been expanded and is growing towards TCP support in PF. </p> <p> There have been test, documentation support and bug fixes to help the NAT write and SCTP handling. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=886396f1b1a7"> <code> 886396f1b1a7 pf: Force logging if pf_create_state() fails </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2d2481c35f5a"> <code> 2d2481c35f5a pf: add extra SCTP multihoming probe points </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d90854a60a91"> <code> d90854a60a91 pf: reset index if it's outside the table </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3b79f6d2d394"> <code> 3b79f6d2d394 pf: do not keep state when dropping overlapping IPv6 fragments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1941d370bf89"> <code> 1941d370bf89 pf: pass struct pf_pdesc to pf_walk_option6() and pf_walk_header6() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0300b49ac821"> <code> 0300b49ac821 pf.conf.5: fix description for tcp.opening timeout </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a8136ab47c97"> <code> a8136ab47c97 pfctl: convert an snprintf to strlcpy </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6a3266f72e43"> <code> 6a3266f72e43 pf: drop IPv6 packets built from overlapping fragments in pf reassembly </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b6a5e2213938"> <code> b6a5e2213938 pf.conf.5: make "self" a bit more visible </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=481374d5f7b0"> <code> 481374d5f7b0 pf: remove pf_remove_fragment() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f2a1e40bb19b"> <code> f2a1e40bb19b pf: simplify state key setup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=37101926c920"> <code> 37101926c920 pf improve the icmp direction check </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0d68985b0170"> <code> 0d68985b0170 pfctl: unbreak rule optimizer </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f88019e8a35c"> <code> f88019e8a35c pf: fixup af-to regression with match rules </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4aafc73d1255"> <code> 4aafc73d1255 pfctl: pfctl_set_hostid always returns 0 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=441d489493e8"> <code> 441d489493e8 pf: convert DIOCRCLRTABLES to netlink </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7d5e02b01577"> <code> 7d5e02b01577 pf: allow ICMP messages related to an SCTP state to pass </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e9255dafa1ef"> <code> e9255dafa1ef pf: netlink KPI use cleanup </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4be8e29e776b"> <code> 4be8e29e776b pf: initialise addresses in pf_get_transaddr_af() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=07579e2110b3"> <code> 07579e2110b3 pf: sprinkle const over function arguments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=54ead732cf08"> <code> 54ead732cf08 pf: deduplicate IPPROTO_ICMPV6 and IPPROTO_ICMP handling </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ec30ca2e13ae"> <code> ec30ca2e13ae pf: remove impossible condition </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f25d7ff3037e"> <code> f25d7ff3037e pf: SCTP abort messages fully close the connection </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=01eb1261443d"> <code> 01eb1261443d pf: fix double free in pf_state_key_attach() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5d1219378dd5"> <code> 5d1219378dd5 pf: teach nat64 to handle 0 UDP checksums </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=32cac604487b"> <code> 32cac604487b pf tests: test dummynet on nat64 rules </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=706b42cc4bd9"> <code> 706b42cc4bd9 pf: give the correct address family to dummynet after nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=08a512019ccb"> <code> 08a512019ccb pf: fix dummynet + route-to for IPv6 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7f3d159b9ff2"> <code> 7f3d159b9ff2 pf tests: test using an address range inside a table for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bdb583afa198"> <code> bdb583afa198 pf tests: test address range as nat64 from address </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e0dcc51ddb43"> <code> e0dcc51ddb43 pfctl: do not allow af-to tables without round-robin </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b0e3fb7e65c3"> <code> b0e3fb7e65c3 pf: fix nat64 round-robin addresses from a table </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=9e039875cb40"> <code> 9e039875cb40 pf tests: verify pool use for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=125e395278cf"> <code> 125e395278cf pf tests: test not having an IPv4 address to nat64 to </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=27fca15016a9"> <code> 27fca15016a9 pf tests: validate ToS translation with nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=1df79d81343d"> <code> 1df79d81343d pf: preserve TOS with nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e128e988a26a"> <code> e128e988a26a pf tests: check packet reassembly with nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7cae58a44955"> <code> 7cae58a44955 pf: handle fragmentation for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6c5c91a039c7"> <code> 6c5c91a039c7 pf: update pd-&gt;tot_len after reassembly </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b717c67686c0"> <code> b717c67686c0 pf tests: verify that we preserve the hop limit/TTL for ICMP errors </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=c6210cfd58f6"> <code> c6210cfd58f6 pf: fix if-bound with nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d7e9df4fc67f"> <code> d7e9df4fc67f pfctl: print_rule: rename opts -&gt; ropts </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f1ddd7f1dae6"> <code> f1ddd7f1dae6 pf: add forgotten fixup for icmp6 id's when translating </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=373d6dbf34a8"> <code> 373d6dbf34a8 pf tests: verify that ICMP destination unreachable makes it through NAT64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=bc66cb3bfa9b"> <code> bc66cb3bfa9b pf tests: verify that ICMP port unreachable makes it through NAT64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a4e040329525"> <code> a4e040329525 pf tests: verify that TCP RST makes it through NAT64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=86bcaedd35f4"> <code> 86bcaedd35f4 pfctl: basic nat64 parser test </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=a43589dcbf8b"> <code> a43589dcbf8b pf tests: add an SCTP test case for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7e309356b009"> <code> 7e309356b009 pf tests: add a UDP test case for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=22c634905bd4"> <code> 22c634905bd4 pf tests: add a TCP test case for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0656a680567a"> <code> 0656a680567a pf tests: basic nat64 test case </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0749d8134300"> <code> 0749d8134300 pf tests: check cleared time when zeroing stats for table addresses </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=eaf484fdb70d"> <code> eaf484fdb70d pf.conf.5: document af-to (aka nat64) </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=aa69fdf1542d"> <code> aa69fdf1542d pfctl: change for af-to / NAT64 support. </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b8e538443882"> <code> b8e538443882 pf: drop packets if they fail nat64 translation </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d89a5d853e2b"> <code> d89a5d853e2b pf: support nat64 for SCTP </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ea9113be3f19"> <code> ea9113be3f19 pf: extra route lookup in pf_route(6)() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ebe11b46988e"> <code> ebe11b46988e pf: fix state export in the face of NAT64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=fcdb520c1b4e"> <code> fcdb520c1b4e pf: nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e4e0f497429c"> <code> e4e0f497429c in: add in_mask2len() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2d7e68d5cd76"> <code> 2d7e68d5cd76 pf: add post-NAT src/dst address/port to pf_pdesc </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=e11dacbf8484"> <code> e11dacbf8484 pf: partially import OpenBSD's NAT rewrite </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=85570785b9ce"> <code> 85570785b9ce pf: remove unused variable from pf_pdesc </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=67b655980885"> <code> 67b655980885 pf: fix address range handling in pfr_pool_get() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=358c5f5c0899"> <code> 358c5f5c0899 pf: fix cleanup deadlock </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=725003da5302"> <code> 725003da5302 pf.conf.5: Fix endpoint-independent description </code> </a> </li> </ul> <h2> User Tooling </h2> <p> A fix in ping for minimum packet for ping sweeps and better error messages. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8408510c7769"> <code> 8408510c7769 ping: adjust error messages and comments for -gGh flags </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=39d3c81c43c7"> <code> 39d3c81c43c7 ping: correct minimal payload size for the sweep ping </code> </a> </li> </ul> <h2> Other stuff </h2> <p> This is kind of a WiFi change, but it is important for how FreeBSD deals with firmware. Historically firmware was loaded as a kernel module and then requested by a driver, getting a opaque blob to send to the device. For CVS(?) it has to be uuencoded, which wasn't a real problem for a long time. From 15 firmware can just be loaded from disk as a blob, this frees up drivers a bit certainly making development easier, but it makes it more difficult for things like loader to load kernel modules and know that firmware will be there. Expect some churn. while thinks improve. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=af0a81b6470a"> <code> af0a81b6470a iwm: Stop shipping firmware as kernel module </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=11f3da565519"> <code> 11f3da565519 pkgbase: Remove /boot/firmware from bootloader package </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> There was a lot of stuff in the last month, but I decided to trim out most of the picked commits rather than make a lot of "small improvement" comments on huge series of changes. It is good to see the number of changes that pf gets every week and occasional bursts in other areas. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00347Fri, 17 Jan 2025 00:00:00 +0000 FreeBSD Network Status Report 2025 Week 04https://adventurist.me/posts/00349<h2> Goings on </h2> <p> FOSDEM 2025 is next weekend and we are fortunate this year to once again be running the BSD Devroom. <a href="https://fosdem.org/2025/schedule/track/bsd/"> The program is on the schedule </a> </p> <p> I need help staffing the Project/Foundation table at FOSDEM, if you want to help send me an email (thj@freebsd.org). </p> <h2> 13.5 code slush in effect </h2> <p> The schedule currently looks like this: </p> <pre><code>ports quarterly branch: January 1, 2025 reminder email: January 13, 2025 stable/13 slush: January 24, 2025 doc/ tree slush: January 31, 2025 releng/13.5 branch: February 7, 2025 BETA1 build starts: February 7, 2025 BETA2 build starts: February 14, 2025 doc/ tree tag: February 14, 2025 BETA3 build starts: February 21, 2025 ports package builds: TBD (Between February 14 and 28) RC1 build starts: February 28, 2025 RELEASE build starts: March 7, 2025 RELEASE announcement: March 11, 2025 13.4-RELEASE EoL: June 30, 2025 13.5-RELEASE EoL: April 30, 2026 Branch EoL: April 30, 2026 </code></pre> <p> You can find the current issues for the release on this wiki page <a href="https://wiki.freebsd.org/Releng/13.5ISSUES"> https://wiki.freebsd.org/Releng/13.5ISSUES </a> . </p> <p> This is the final release in the 13 cycle. </p> <h2> Network Stack </h2> <p> Previously this would always increment the first counter in the array. Accounting is really difficult! But good accounting can help you <a href="https://en.wikipedia.org/wiki/The_Cuckoo%27s_Egg_(book)"> find interesting bugs </a> . </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ce52baebd3b3"> <code> ce52baebd3b3 icmp6: Fix ICMP6 message type counters </code> </a> </li> </ul> <p> The netlink API is getting more attention. I think we will see more network subsystems move towards netlink in the future so improvements here are always good. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d521362f8f7e"> <code> d521362f8f7e netlink: fix build </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ddc7fd6641c3"> <code> ddc7fd6641c3 netlink: provide snl_clone() to create a secondary snl state </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f2a4eed3e13b"> <code> f2a4eed3e13b netlink: underscore snl_get_genl_family_info() to discourage its use </code> </a> </li> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=fb63082c0cc6"> <code> fb63082c0cc6 netlink: provide snl(3) API for variable length raw data attribute </code> </a> </p> <p> "A GARP is always transmitted when an IPv4 address is added to an interface." </p> </li> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=b4bd97ec168e"> <code> b4bd97ec168e netinet tests: basic garp test </code> </a> </p> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=38fdcca05d09"> <code> 38fdcca05d09 netinet: enter epoch in garp_rexmit() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=013784c967f9"> <code> 013784c967f9 netinet: virtualize net.link.ether.inet.garp_rexmit_count </code> </a> </li> </ul> <h2> Netdev </h2> <p> After a short 5 years (!!!) in review we have a new network adapter in USB <code> umb(4) </code> . This gives us support for cellular modems and makes fail over setups on FreeBSD possible. These are normally just data modems so we don't have a FreeBSD phone (yet). </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0f1bf1c22a0c"> <code> 0f1bf1c22a0c umb: Introduce the USB umb(4) network driver </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=86bfbaf1002c"> <code> 86bfbaf1002c sys: add MBIM (mobile broadband interface module) interface type. </code> </a> </li> </ul> <p> markj@ is continuing fixing races in inpcb. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7cbb6b6e28db"> <code> 7cbb6b6e28db inpcb: Close some SO_REUSEPORT_LB races, part 2 </code> </a> </li> </ul> <h2> Wireless </h2> <p> adrian@ has continued his long series of changes to improve rtwn, if you want easy wifi in a random machine picking up a usb wifi device and testing it would help make this even better. More so if you work or visit somewhere with an interesting network like a huge campus or a University. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=043d6a24b290"> <code> 043d6a24b290 rtwn: add workaround sleep in r92e_set_chan() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5f9a2eec337c"> <code> 5f9a2eec337c rtwn: bring the RTL8192EU RF read/write routines in line with rtl8xxxu </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=40fc36ff2c1d"> <code> 40fc36ff2c1d rtwn: fix RTL8192EU power-down / power-up hanging </code> </a> </li> </ul> <p> Improvements to handling of bluetooth firmwarein iwm WiFi devices. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=d7df65349960"> <code> d7df65349960 iwm: add sku_cap_mimo_disable; populate sku_cap_11n_enable </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=31a8b9782dc3"> <code> 31a8b9782dc3 iwm: update rate tables from OpenBSD </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=b8cdbe1852ef"> <code> b8cdbe1852ef iwmbtfw: Check firmware exists before trying to upload it </code> </a> </li> </ul> <h2> Firewalls </h2> <p> More work on NAT in pf and supporting tests. The pace of pf development is incredible. </p> <p> <strong> UPDATE: </strong> kp@ told me I missed the point of these changes the message should be something more like: </p> <pre><code>Ported OpenBSD's NAT64 pf implementation, extended it to support SCTP, dummynet and if-bound mode. As a bonus added test cases. "Don't send bug reports to kp@" </code></pre> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3bf6554017b7"> <code> 3bf6554017b7 pf: remove PFLOGIFS_MAX </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=06a6ec55fbd0"> <code> 06a6ec55fbd0 pf: ignore/preserve ECN bits on ToS matching and scrubbing </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7a372bded812"> <code> 7a372bded812 pf: make reply-to work with nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ca0e69345320"> <code> ca0e69345320 pf: cope with route-to on af-to rules </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0972294ef034"> <code> 0972294ef034 pf: add a dedicated pf pool for route options </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=899e79760dcc"> <code> 899e79760dcc pfctl: allow an implicit address family for af-to rules </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3331975ab18f"> <code> 3331975ab18f pf: check rather than assert pool type </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=697c1568b75a"> <code> 697c1568b75a pf: fix IPv6 route lookup for nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7f846fc0e7ce"> <code> 7f846fc0e7ce pf tests: reproduce use-after-free in fragment reassembly </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5d28f4cab8d5"> <code> 5d28f4cab8d5 pf: clean up mbuf passing for reassembly </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5cb08fddef99"> <code> 5cb08fddef99 pfctl: improve NAT pool handling </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=096efeb658b5"> <code> 096efeb658b5 pfctl: follow rpool -&gt; rdr rename </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=af33f86e6aef"> <code> af33f86e6aef carp: don't unintentionally revert to multicast mode </code> </a> </li> </ul> <h2> User Tooling </h2> <p> Did you know that you can boot over http using the efi loader? </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=2f35419fb26d"> <code> 2f35419fb26d stand/efihttp: Add device type check to efihttp_fs_open() </code> </a> </li> </ul> <h2> Other stuff </h2> <p> Wider address space support on arm64, I can't find evidence of any hardware supporting this, but you can test in qemu or the arm simulator. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3041b636463d"> <code> 3041b636463d arm64: Support mapping a 52-bit physical adddress </code> </a> K </li> </ul> <p> Sad news for the few keeping PowerMacs alive (but probably not surprising), Add a depreciation notice for firewire. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cda74c35cb37"> <code> cda74c35cb37 firewire: Add deprecation notice </code> </a> </li> </ul> <h2> Please Send Feedback </h2> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00349Fri, 24 Jan 2025 00:00:00 +0000 FreeBSD Network Status 2025 Week 05https://adventurist.me/posts/00351<p> Here we are 8% of the way through the year and the end of January. Perfect time to check in with what is going on in FreeBSD. </p> <h2> Goings on </h2> <h3> BSD Devroom at FOSDEM 2024 </h3> <p> I'm writing today above the North Sea on my flight to AMS on the way to Brussels for FOSDEM. The BSD Devroom is running tomorrow (Saturday the 1st of Feb) and there is a great line up of talks. If you are within a reasonable travel distance head over, its a free event and there is a ton of stuff going on. </p> <p> Beyond the talks there will be a FreeBSD table for the project and the foundation. We have stickers and I'll be there if you want to chat about goings on in the project or to complain about some of the bugs I've written recently. </p> <h3> Stab week </h3> <p> This was the first stab week of the year and two regressions were picked up through repeatided stabbings: </p> <ul> <li> Compilation failure on 32-bit platforms. Fix [5289625dfecb] (https://cgit.freebsd.org/src/commit/?id=5289625dfecb) </li> <li> Instant panic with <code> SO_REUSEPORT_LB </code> and nginx. Fix <a href="https://cgit.freebsd.org/src/commit/?id=06bf119f265c"> 06bf119f265c </a> </li> </ul> <p> glebius@ is adding scripts to make it easier to know when it is time to stab. I'm hoping more tooling involves and we start getting more testing in the stab weeks. The work Netflix is doing here is incredibly helpful for the quality of FreeBSD, but other workloads should also be represented. </p> <h2> Network Stack </h2> <p> Caught in stab week was a regression in the TCP listen operation when it is called multiple times on a socket. This was harmless generating multiple TCP state changes until last week after a clean up fixing races where started to call <code> LIST_REMOVE() </code> twice on the same entry. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=63efd7f5ac66"> <code> 63efd7f5ac66 socket tests: Add a test which calls listen() twice on an lb socket </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=06bf119f265c"> <code> 06bf119f265c sockets/tcp: quick fix for regression with SO_REUSEPORT_LB </code> </a> </li> </ul> <p> Style and small fixes for netlink and netlink/route support. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=cdacb12065e4"> <code> cdacb12065e4 netlink/route: validate family attribute </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=031fbf8dc962"> <code> 031fbf8dc962 netlink/route: fix fib number validation in old Linux compat mode </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=49a6e213416b"> <code> 49a6e213416b netlink/route: fix nlattr_get_multipath() to check length </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=876b88a44829"> <code> 876b88a44829 netlink: consistently use unsigned types in the parser </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=810c122695d7"> <code> 810c122695d7 netlink: use u_int as argument for ifnet_byindex() </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=8b094a9801ed"> <code> 8b094a9801ed netlink: style(9) pass over message parsing code </code> </a> </li> </ul> <p> <code> ip6addrctl </code> manages address selection policy for outgoing packets. With some improvements teach it how to run in a jail. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=6dcdd79a251b"> <code> 6dcdd79a251b ip6addrctl(8): Teach ip6addrctl to attach and run itself in a jail </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=13ce55b66fad"> <code> 13ce55b66fad ip6addrctl(8): Strictly check the number of arguments </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7bb9ba61d357"> <code> 7bb9ba61d357 ip6addrctl(8): Use static initializer </code> </a> </li> </ul> <h2> Netdev </h2> <p> Replace the single global admin taskqueue with a per interface admin taskqueue. This should resolve timeouts when long operations are performed without using too much more in resources. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3ad01642fe9e"> <code> 3ad01642fe9e iflib(4): Replace admin taskqueue group with per-interface taskqueues </code> </a> </li> </ul> <p> Add a device id to ure, otherwise it will use the CDC mode driver. If you have issues with USB Ethernet you might want to look to see if moving from the CDC driver will help. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=dc273058cb0b"> <code> dc273058cb0b ure(4): Add support for ELECOM EDC-QUA3C </code> </a> </li> </ul> <h2> Wireless </h2> <p> Some further fixes around firmware loading for <code> iwm </code> and its integrated bluetooth controller. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0feaf865ce8e"> <code> 0feaf865ce8e iwmbtfw(8): fix getopt flags, unify usage()/manual page contents </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ff4116313eb4"> <code> ff4116313eb4 iwmbtfw(8): don't program hardware without existing firmware image </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=06969db31202"> <code> 06969db31202 Refactor iwmbtfw: modularize and de-constify </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=f466ba4ca479"> <code> f466ba4ca479 Refactor iwmbtfw: set default firmware_dir after argument parsing </code> </a> </li> </ul> <p> Add support for Blueooth Secure Simple Pairing - which I didn't manage to look up before getting on a plane. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=4ae0fa8a2f8b"> <code> 4ae0fa8a2f8b ng_hci: add support for Bluetooth Secure Simple Pairing </code> </a> </li> </ul> <h2> Firewalls </h2> <p> This is the third week of changes adding support for NAT64 with some more changes coming in via OpenBSD. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3bf6554017b7"> <code> 3bf6554017b7 pf: remove PFLOGIFS_MAX </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=06a6ec55fbd0"> <code> 06a6ec55fbd0 pf: ignore/preserve ECN bits on ToS matching and scrubbing </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=7a372bded812"> <code> 7a372bded812 pf: make reply-to work with nat64 </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=ca0e69345320"> <code> ca0e69345320 pf: cope with route-to on af-to rules </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=0972294ef034"> <code> 0972294ef034 pf: add a dedicated pf pool for route options </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=899e79760dcc"> <code> 899e79760dcc pfctl: allow an implicit address family for af-to rules </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=3331975ab18f"> <code> 3331975ab18f pf: check rather than assert pool type </code> </a> </li> <li> <a href="https://cgit.freebsd.org/src/commit/?id=5cb08fddef99"> <code> 5cb08fddef99 pfctl: improve NAT pool handling </code> </a> </li> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=096efeb658b5"> <code> 096efeb658b5 pfctl: follow rpool -&gt; rdr rename </code> </a> </p> </li> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=af33f86e6aef"> <code> af33f86e6aef carp: don't unintentionally revert to multicast mode </code> </a> </p> </li> </ul> <h2> User Tooling </h2> <p> Netcat is the network swiss army knife, an incredibly useful and flexible tool for doing stuff that requires you to put packets onto the network. It is great exemplar of how to use networking options and used more and more by network tests. There was an issue in this stab period around <code> SO_REUSEPORT_LB </code> , making testing more practical helps catch issues closer to their introduction. </p> <ul> <li> <a href="https://cgit.freebsd.org/src/commit/?id=04a3ca71ead6"> <code> 04a3ca71ead6 netcat: Add a flag to enable the use of SO_REUSEPORT_LB </code> </a> </li> </ul> <h2> Other stuff </h2> <p> Nice fix from mckusick@ to UFS1 file system helping with the inevitable passage of time. </p> <ul> <li> <p> <a href="https://cgit.freebsd.org/src/commit/?id=1111a44301da"> <code> 1111a44301da Defer the January 19, 2038 date limit in UFS1 filesystems to February 7, 2106 </code> </a> </p> <p> Defer the January 19, 2038 date limit in UFS1 filesystems to February 7, 2106 </p> <p> UFS1 uses a signed 32-bit value for its times. Zero is January 1, 1970 UTC. Negative values of 32-bit time predate January 1, 1970 back to December 13, 1901. The maximum positive value for 32-bit time is on January 19, 2038 (my 84th birthday). On that date, time will go negative and start registering from December 13, 1901. Note that this issue only affects UFS1 filesystems since UFS2 has 64-bit times. This fix changes UFS1 times from signed to unsigned 32-bit values. With this change it will no longer be possible to represent time from before January 1, 1970, but it will accurately track time until February 7, 2106. Hopefully there will not be any FreeBSD systems using UFS1 still in existence by that time (and by then I will have been dead long enough that no-one will know at whom to yell :-). </p> <p> It is possible that some existing UFS1 systems will have set times predating January 1, 1970. With this commit they will appear as later than the current time. This commit checks inode times when they are read into memory and if they are greater than the current time resets them to the current time. By default this reset happens silently, but setting the sysctl vfs.ffs.prttimechgs=1 will cause console messages to be printed whenever a future time is changed. </p> </li> </ul> <h2> Please Send Feedback </h2> <p> Smaller report this week. I'm trimming out more "small fixes" style comments. I'm going to play with the format of these posts more over the next few months. I am trying to add value beyond just rewriting commit messages, sometimes it is good to show the continuous on going work, but it will get a bit tedious if that is 60% of the report each week. </p> <p> I'm giving a FOSDEM talk tomorrow on the writing of these reports. </p> <p> 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). </p> <p> If you find a typo or have a correct let me know and I'll thank you at the end here. </p> <p> <a href="https://adventurist.me/tag/networkstatus"> You can see all prior posts here. </a> ( <a href="https://adventurist.me/fbsd-networkstatus.xml"> rss </a> ) </p> <hr/> <p> My work on FreeBSD is supported by the <a href="https://freebsdfoundation.org/"> FreeBSD Foundation </a> , you can contribute to improving FreeBSD with code, documentation or financially by <a href="https://freebsdfoundation.org/donate/"> donating to the FreeBSD Foundation </a> . </p> https://adventurist.me/posts/00351Fri, 31 Jan 2025 00:00:00 +0000