OPNsense Forum

English Forums => Hardware and Performance => Topic started by: jacker on July 25, 2025, 01:51:31 AM

Title: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: jacker on July 25, 2025, 01:51:31 AM
Dear OPNsense Team,

I am a long-time user and admirer of your firewall project. Recently, I purchased a network device that includes a Marvell AQC113C-B1-C 10GbE network controller. Unfortunately, I noticed that this chip is currently not supported in OPNsense.

As I understand that OPNsense relies on FreeBSD's network stack, I would like to ask if there are any plans — or possibility — to support this chip in future releases, should FreeBSD include support. According to community sources, this chip is already supported in Linux but not yet in FreeBSD.

If there's anything the community can do (e.g., testing, submitting requests upstream to FreeBSD, or encouraging Marvell to release a driver), I'd be glad to help.

Thank you for your continued work on this amazing project.

Best regards, 
Jacker
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: pfry on July 25, 2025, 03:18:36 AM
Well that's sad. I saw a very minimalistic port of the Linux driver some years back, but this was right in the middle of the Marvell purchase. The code review was pretty sad, too - just "what is an Aquantia?" and complaints about formatting. The driver (https://github.com/Aquantia/aqtion-freebsd (https://github.com/Aquantia/aqtion-freebsd)) appears to have advanced little. I'd hesitate to even try to make a plugin driver like the Realtek. Perhaps a (re-?) port of the NetBSD or OpenBSD drivers...?
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Lion on July 27, 2025, 06:31:10 AM
I second that motion!
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Mr. Me on October 03, 2025, 04:57:10 PM
Have you tried fetching the driver and installing the driver from freebsd.org?

It has been working fine for my AQC107 NIC.

Try this driver:

Download driver
fetch https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/aquantia-atlantic-kmod-0.0.5.1402000_3.pkg
Install driver
pkg install aquantia-atlantic-kmod-0.0.5.1402000_3.pkg
List your available interfaces. Aquantia Atlantic (Marvell) AQtion interface should be listed as aq0.
ifconfig
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: patient0 on October 03, 2025, 05:35:34 PM
A feature request does already exist for FreeBSD https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282805. It is not worked on though.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: FraLem on October 04, 2025, 09:34:34 AM
Would running Opnsense on a VM (Linux Hipervisor) work for you?
 
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: patient0 on October 04, 2025, 10:31:02 AM
Quote from: jacker on July 25, 2025, 01:51:31 AMIf there's anything the community can do (e.g., testing, submitting requests upstream to FreeBSD, or encouraging Marvell to release a driver),
I have added the device IDs and the speed init of AQC113/113C/113CA/113CS to the 14.3-RELEASE port of the driver (taken from OpenBSD, not more :)). Would you happen to be able to test it on a basic FreeBSD 14.3-RELEASE installation. Or of course if are able to, compile it yourself for a 14.3-RELEASE based installation.
The module doesn't compile for FreeBSD 15+, there are open tickets for it.

As usual: be careful installing stuff from the internet, don't put it on your prod machine.

The code/diff and the PKG file can be found: https://git.sr.ht/~patient0/FreeBSD-ports/refs/AQC113
Direct link to PKG file :https://git.sr.ht/~patient0/FreeBSD-ports/refs/download/AQC113/aquantia-atlantic-kmod-0.0.5.1403000_4.pkg

Edit: typo and extend to mention that if can of course compiled by the user itself.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: OPNenthu on December 23, 2025, 12:06:05 AM
Sadly, the AQC113 doesn't yet fully behave under Linux either.  I got an integrated one with the UGREEN DXP4800+ but it doesn't work with virtual interfaces.  I lost connectivity when I tried to bond it in primary/failover with the 2.5GbE interface and it did the same when I tried to add a VLAN in TrueNAS.  Some users over at Proxmox report similar things: https://forum.proxmox.com/threads/unable-to-reach-10gbps.148878/

It might work as a physical NIC only without layering, but it seems 10G line rate is not guaranteed.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: pfry on December 23, 2025, 01:59:42 AM
I suppose I should dig into this before asking, but: Have you got the latest firmware? I don't know if the Linux driver (or packages) includes it. The OpenWRT instructions for the Linksys MX8500 included the firmware upgrade (the firmware in that case being loaded under U-Boot, IIRC). The Marvell flash utility is Windows only.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: OPNenthu on December 23, 2025, 02:10:44 AM
It's possible that UGREEN include an updated driver on their NAS OS (or they just don't test advanced networking functions), but AFAIK it's not possible to update it in TrueNAS unless/until they ship an updated kernel with upstream fixes.  IIRC, I had come across some comments that the driver is not well maintained or was never completed since Marvell acquired Aquantia... but I really don't know.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: OPNenthu on December 23, 2025, 02:23:04 AM
Sorry, you asked about firmware. No I haven't yet come across an update package for that.  I probably also don't have access to UEFI updates because UGREEN doesn't publish them; at least not that I could find.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: OPNenthu on December 29, 2025, 11:41:26 PM
I think I was premature with my observation because of a routing issue that @Patrick M. Hausen has clarified for me.  I now have the AQC113 working in a layered setup under a Linux machine.  Hopefully the FreeBSD support will also be in a good place.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Seimus on January 01, 2026, 01:38:25 PM
The AQC113C works in Linux but with caveats, however it gets improved. It would work fine as an access port. VLANs, Bonding and RSS had problems. But as for Linux it will get fixed fast compared to FBSD.

For FBSD, well thats another story. There is an official request to have these NICs working on FBSD, even an early implementation of the driver. But it does not work on FBSD 14. And on the driver no work was done for some time from FBSD. So it integration is very very very slow.

The only positive thing about these NICs and FBSD is, we could say, people starting noticing it and would like to have them in a workable state on FBSD.

Regards,
S.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: albb0920 on February 15, 2026, 12:09:55 PM
I've been working on adding aq2 (e.g. aqc113c) support to the abandoned FreeBSD driver.
https://github.com/albb0920/aqtion-freebsd-aq2

The patches are mostly written by LLMs, but it is already quite functional.

If anyone is interested in testing this, here's a guide on how to install on OPNsense
https://github.com/albb0920/aqtion-freebsd-aq2/wiki/OPNsense-Installation-Guide
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Seimus on February 15, 2026, 01:03:00 PM
Quote from: albb0920 on February 15, 2026, 12:09:55 PMI've been working on adding aq2 (e.g. aqc113c) support to the abandoned FreeBSD driver.
https://github.com/albb0920/aqtion-freebsd-aq2

The patches are mostly written by LLMs, but it is already quite functional.

If anyone is interested in testing this, here's a guide on how to install on OPNsense
https://github.com/albb0920/aqtion-freebsd-aq2/wiki/OPNsense-Installation-Guide

Firstly thank you for your work! Much appreciated you did pick it up.

I am already running that driver on my OPN LAB device, which contains the aqc113c.
So far all looks working surprisingly well.
I plan to put the device into PROD by next week and test PROD traffic on it with various combinations.

- LAGGs
- VLANs
- Netmap
- RSS
- Offloading

One funny thing about this driver is it supports already more features than its cousin counterpart on Linux. Which made me laugh.

If you are working on the driver may I ask for a Feature?
Would it be possible to add this function to the driver?

These NIC have DOM, they can measure Temps directly on them.
Linux drivers have these temp measurements.

Device-1: Aquantia AQC113C NBase-T/IEEE 802.3an Ethernet [Marvell Scalable
mGig] driver: atlantic v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 2
port: N/A bus-ID: 01:00.0 chip-ID: 1d6a:14c0 class-ID: 0200
temp: 43.0 C

Device-2: Aquantia AQC113C NBase-T/IEEE 802.3an Ethernet [Marvell
Scalable mGig] driver: atlantic v: kernel pcie: gen: 3 speed: 8 GT/s
lanes: 2 port: N/A bus-ID: 02:00.0 chip-ID: 1d6a:14c0 class-ID: 0200
temp: 41.0 C

Regards,
S.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: albb0920 on February 15, 2026, 03:33:44 PM
Quote from: Seimus on February 15, 2026, 01:03:00 PMWould it be possible to add this function to the driver?

These NIC have DOM, they can measure Temps directly on them.
Linux drivers have these temp measurements.

Thanks for testing it!

I hope I understood your question correctly.
Temperature sensor measurements are exposed through sysctl,
I haven't figured out how these can be wired to OPNsense dashboard though.

Quoteroot@usb:~ # sysctl -a | grep aq | grep phy_temperature
dev.aq.1.phy_temperature: 46
dev.aq.0.phy_temperature: 42
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Seimus on February 15, 2026, 04:24:03 PM
Quote from: albb0920 on February 15, 2026, 03:33:44 PMI hope I understood your question correctly.
Temperature sensor measurements are exposed through sysctl,
I haven't figured out how these can be wired to OPNsense dashboard though.

Quoteroot@usb:~ # sysctl -a | grep aq | grep phy_temperature
dev.aq.1.phy_temperature: 46
dev.aq.0.phy_temperature: 42

Oh shoot! I totally forgot to check via sysctl. So its already there and working! Awesome <3

To show it on the GUI there are several ways but both of them need manual intervention.
1. Widget - but this would have to be created
2. RRD graphs, you can add custom graphs but you will need to manually configure them

Have a look at already created ones for RRD
https://github.com/opnsense/core/blob/master/src/opnsense/scripts/health/library/OPNsense/RRD/Types/Temperature.php
https://github.com/opnsense/core/blob/master/src/opnsense/scripts/health/library/OPNsense/RRD/Stats/Temperature.php

Regards,
S.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Seimus on February 21, 2026, 06:31:27 PM
I put my my LAB device into PROD to test it. I wanted to test on my deployment that has LAGGs as well netmap usage.

I found few critical things that are not working. Here are my findings

The working part:

    AQ driver loads after boot
    NICs get proper MACs
    LLDP works per port, properly sending packets
    LACP/LAGG can be established, all LACP based flags are properly exchanged and peers are established

The not working part:

    When setting VLAN over the LAGG created on AQ no traffic passes

Looks like for some reason when configuring a VLAN over a LAGG created on the AQs traffic is not being passed. I tried with mixed LAGG (intel + AQ) as well non-mixed LAGG (only AQ).

Regards,
S.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: pfry on February 22, 2026, 01:23:35 AM
I don't see a firmware blob. Any idea of the version on your device? The driver has:

aq_log("MAC F/W version is %d.%d.%d",
        hw->fw_version.major_version, hw->fw_version.minor_version,
        hw->fw_version.build_number);

...but I didn't look at where aq_log logs. I have a Linksys appliance (MX8500) with an AQC113 (I believe), and OpenWRT includes (instruction to acquire) a firmware blob (loaded by U-Boot), v5.6.5. I also didn't see a firmware loader offhand; I didn't check the OpenBSD or Linux drivers.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Seimus on February 22, 2026, 02:00:37 AM
You can get it from pciconf

# pciconf -llcvVBa aq1 | grep Version
    VPD ro V1  = 'Bundle Version: 1.3.37'
    VPD ro V2  = 'Fw Version: 1.0.124'

# pciconf -llcvVBa aq0 | grep Version
    VPD ro V1  = 'Bundle Version: 1.3.37'
    VPD ro V2  = 'Fw Version: 1.0.124'
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: pfry on February 22, 2026, 04:01:51 PM
...And I was wrong about the MX8500. It has an AQR114C, a transceiver without MAC. (I guess the IPQ8072A has at least one big MAC.) Not precisely comparable. The Marvell linux driver package does not seem to have binary blobs, either. Crud - driver firmware load would be nice (given the availability of the updater).
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: Seimus on February 25, 2026, 06:34:56 PM
I found for the AQC113C instructions how to upgrade the firmware. However I didn't try this out yet.

https://gist.github.com/coronas2k/c7d3a37ca04da2f15783da3cc8cf3702

Maybe you could see if the same process is working as well for the 114C.

Regards,
S.
Title: Re: Adapts to Marvell AQC113C-B1-C 10GbE network controller.
Post by: albb0920 on March 16, 2026, 04:23:49 PM
Quote from: pfry on February 22, 2026, 04:01:51 PMdriver firmware load would be nice (given the availability of the updater).

I've implemented host boot in my fork.
You'll first need to customize the firmware to have MAC/PHY suitable for your board.
(This is more or less trial and error, unless you're lucky that your board is in the updatedata.xml distributed in OEM firmware update package)
https://gitlab.com/-/snippets/5969424

Then it's quite straight forward (Details in README (https://github.com/albb0920/aqtion-freebsd-aq2/blob/master/README.md#host-boot))
* Package the firmware as a KLD
* Install it
* Enable forced host boot

This is in deed quite a nice feature, as it eliminate the risk of bricking NICs with bad firmware
My NIC came with 1.5.42 which I don't have any problem with though.