Passthrough of NIC as a pcie device

Hi All, I am on Electric Eel and is exploring the deployment of VMs. I had the intention to run an openwrt instance as a VM, to utilise the network ports of x10sdv-tln2f motherboard (as a switch, not router). While I have successfully tested the bridging function in Truenas scale without issues, I am keen to run various built-in packages in OpenWrt to maintain my workflow.

There are 2x 10gbe ports built-in (x552/x557-AT), and I have an additional 10g SFP+ network card based on the aquantia AQN100 chipset that connects to another 10g SFP+ switch connected to my main workstation. The SFP+ ports serve as the management console port.

  1. I created a bridge br0 for the SFP+ NIC and I added this port as VirtIO into the OpenWrt VM, no issues here. I verified that VirtIO is working very well and I could get ~9gbps when I run iperf3 with my workstation downstream.
  2. I also passthrough the other 2 built-in ports using passthrough of PCIE device into the VM, the ports also appear fine in OpenWrt, but I am getting less than 4gbps in iperf3 with the upstream server.
  3. For testing, I added the 2 built-in ports using VirtIO, as such I needed to create individual bridges for each NIC and passthrough the NIC to the VM. Surprised that I get higher speeds with upstream server as compared to (2).

This is just odd to me as I have expectations that a full passthrough of PCIE device should give me better results, relying only on OpenWrt’s drivers. If anyone can highlight if there are any steps that I have done wrong or I am missing something here please?

Thank you.