LAN NIC Dual SFP+ Broadcome BCM57810S

Started by forum111, December 13, 2023, 08:36:40 AM

Previous topic - Next topic
10G SFP+ BCM57810S + lattes version of Opensence and ESXi.
Do you now which driver and configuration to use?
Any recommendation?

Look here for ESXi: https://www.vmware.com/resources/compatibility/search.php

It only lists BCM57810, don't know what the difference is to BCM57810S. Probably the same.

Same with FreeBSD, only BCM57810 is listed: https://man.freebsd.org/cgi/man.cgi?query=bxe&sektion=4

10GB dual nic is acting as 1GB after iperf3 speed test. This is strange. I will try to describe some information what I have find.

1. One user mention that dual 10GB SFP+, only one port is 10GB and the second one is 1GB. May be it is manifacture problem?

2. Other user speak about hardware checksum offloading need to me disable (check) for ESXi virtual interfaces.

3. The 3th user info... pass-throwght must be disable in ESXi

4. Configurations must be do also

Network adapter 2   
Network   VMF Network2 10G (Connected)
MAC address   00:0c:29:bd:ba:33
Pass-through (Direct-path I/O)   Yes


QLogic 57810 10Gigabit Ethernet Adapter
ID: 0000:01:00.1
ID: 0000:01:00.0


82579LM Gigabit Network Connection
ID: 0000:00:19.0
Device ID: 0x1502


Disable Passthrough:
esxcli hardware pci passthrough device list
esxcli hardware pci passthrough device set --device <device_ID> --passthrough-enabled false
esxcli hardware pci passthrough device set --device=device_ID --passthrough-enabled=false


esxcli hardware pci pcipassthru set -a -d 0000:06:00.0 -e TRUE

esxcli hardware pci pcipassthru set -d 0000:01:00.1 --enable=false --apply-now
esxcli hardware pci pcipassthru set -d 0000:01:00.0 --enable=false --apply-now



hardware pci pcipassthru   list
hardware pci pcipassthru   set   

#!/bin/bash

# PCI ID of the device to disable passthrough for
PCI_ID_TO_DISABLE="your_pci_id_here"

# List PCI passthrough configurations
esxcli hardware pci pcipassthru list

# Disable PCI passthrough for the specified device
esxcli hardware pci pcipassthru set --device $PCI_ID_TO_DISABLE --passthrough-enabled false





Disable Passthrough Mode for PCI Device on ESXi
vi /etc/vmware/esx.conf
Find /device/<$PCI_ID>/owner = "passthru".
Replace passthru with vmkernel.
Reboot ESXi



| #  | Setting                        | 1-Core OPNsense              | 4-Core OPNsense               |
|----|--------------------------------|------------------------------|-------------------------------|
| 1  | hw.ibrs_disable                | 1                            | 1                             |
| 2  | vm.pmap.pti                    | 0                            | 0                             |
| 3  | net.isr.maxthreads             | -1                           | -1                            |
| 4  | net.isr.bindthreads            | 1                            | 1                             |
| 5  | net.isr.dispatch               | deferred                     | deferred                      |
| 6  | net.inet.rss.enabled           | 0 (disabled)                 | 1 (enabled)                   |
| 7  | net.inet.rss.bits              | N/A                          | Scaled automatically          |
| 8  | kern.ipc.maxsockbuf            | 16777216 (for 10Gbps)        | 33554432 (for 10Gbps)         |
| 9  | net.inet.tcp.recvbuf_max       | 4194304                       | To be adjusted                |
| 10 | net.inet.tcp.recvspace         | 65536                        | To be adjusted                |
| 11 | net.inet.tcp.sendbuf_inc       | 65536                        | To be adjusted                |
| 12 | net.inet.tcp.sendbuf_max       | 4194304                       | To be adjusted                |
| 13 | net.inet.tcp.sendspace         | 65536                        | To be adjusted                |
| 14 | net.inet.tcp.soreceive_stream  | 0 (disabled)                 | 1 (enabled)                   |
| 15 | net.pf.source_nodes_hashsize   | 32768                        | To be adjusted                |
| 16 | net.inet.tcp.mssdflt           | 1240                         | To be adjusted                |
| 17 | net.inet.tcp.abc_l_var         | 52                           | To be adjusted                |
| 18 | net.inet.tcp.minmss            | 536                          | To be adjusted                |
| 19 | kern.random.fortuna.minpoolsize | 128                         | To be adjusted                |
| 20 | net.isr.defaultqlimit          | 2048                         | To be adjusted                |
| 21 | vm.kmem_size                   | -                            | 1G                            |
| 22 | kern.maxfilesperproc           | -                            | 32768                         |
| 23 | kern.maxfiles                  | -                            | 262144                        |
| 24 | net.isr.defaultqlimit          | 2048                         | To be adjusted                |
| 25 | net.inet.tcp.soreceive_stream  | 0 (disabled)                 | 1 (enabled)                   |
| 26 | vm.kmem_size                   | -                            | 1G                            |
| 27 | kern.random.fortuna.minpoolsize | 128                         | To be adjusted                |
| 28 | net.isr.defaultqlimit          | 2048                         | To be adjusted                |


| #  | Setting                                 | 1-Core OPNsense                  | 4-Core OPNsense                |
|----|-----------------------------------------|----------------------------------|--------------------------------|
| 1  | hw.ibrs_disable                         | 1                                | 1                              |
| 2  | vm.pmap.pti                             | 0                                | 0                              |
| 3  | net.isr.maxthreads                      | -1                               | -1                             |
| 4  | net.isr.bindthreads                     | 1                                | 1                              |
| 5  | net.isr.dispatch                        | deferred                         | deferred                       |
| 6  | net.inet.rss.enabled                    | 0 (disabled)                     | 1 (enabled)                    |
| 7  | net.inet.rss.bits                       | N/A                              | Scaled automatically           |
| 8  | kern.ipc.maxsockbuf                     | 16777216 (for 10Gbps)            | 33554432 (for 10Gbps)          |
| 9  | net.inet.tcp.recvbuf_max                | 4194304                          | To be adjusted                 |
| 10 | net.inet.tcp.recvspace                  | 65536                            | To be adjusted                 |
| 11 | net.inet.tcp.sendbuf_inc                | 65536                            | To be adjusted                 |
| 12 | net.inet.tcp.sendbuf_max                | 4194304                          | To be adjusted                 |
| 13 | net.inet.tcp.sendspace                  | 65536                            | To be adjusted                 |
| 14 | net.inet.tcp.soreceive_stream           | 0 (disabled)                     | 1 (enabled)                    |
| 15 | net.pf.source_nodes_hashsize            | 32768                            | To be adjusted                 |
| 16 | net.inet.tcp.mssdflt                    | 1240                             | To be adjusted                 |
| 17 | net.inet.tcp.abc_l_var                  | 52                               | To be adjusted                 |
| 18 | net.inet.tcp.minmss                     | 536                              | To be adjusted                 |
| 19 | kern.random.fortuna.minpoolsize         | 128                              | To be adjusted                 |
| 20 | net.isr.defaultqlimit                   | 2048                             | To be adjusted                 |
| 21 | vm.kmem_size


| deferred                         | deferred                       |
| 6  | net.inet.rss.enabled                  | 0 (disabled)                     | 1 (enabled)                    |
| 7  | net.inet.rss.bits                     | N/A                              | Scaled automatically           |
| 8  | kern.ipc.maxsockbuf                   | 16777216 (for 10Gbps)            | 33554432 (for 10Gbps)          |
| 9  | net.inet.tcp.recvbuf_max              | 4194304                          | To be adjusted                 |
| 10 | net.inet.tcp.recvspace                | 65536                            | To be adjusted                 |
| 11 | net.inet.tcp.sendbuf_inc              | 65536                            | To be adjusted                 |
| 12 | net.inet.tcp.sendbuf_max              | 4194304                          | To be adjusted                 |
| 13 | net.inet.tcp.sendspace                | 65536                            | To be adjusted                 |
| 14 | net.inet.tcp.soreceive_stream         | 0 (disabled)                     | 1 (enabled)                    |
| 15 | net.pf.source_nodes_hashsize          | 32768                            | To be adjusted                 |
| 16 | net.inet.tcp.mssdflt                  | 1240                             | To be adjusted                 |
| 17 | net.inet.tcp.abc_l_var                | 52                               | To be adjusted                 |
| 18 | net.inet.tcp.minmss                   | 536                              | To be adjusted                 |
| 19 | kern.random.fortuna.minpoolsize       | 128                              | To be adjusted                 |
| 20 | net.isr.defaultqlimit                 | 2048                             | To be adjusted                 |
| 21 | vm.kmem_size                          | -                                | 1G                             |
| 22 | kern.maxfilesperproc                  | -                                | 32768                          |
| 23 | kern.maxfiles                         | -                                | 262144                         |
| 24 | net.isr.defaultqlimit                 | 2048                             | To be adjusted                 |
| 25 | net.inet.tcp.soreceive_stream         | 0 (disabled)                     | 1 (enabled)                    |
| 26 | vm.kmem_size                          | -                                | 1G                             |
| 27 | kern.random.fortuna.minpoolsize       | 128                              | To be adjusted                 |
| 28 | net.isr.defaultqlimit                 | 2048                             | To be adjusted                 |
| 29 | Disable hardware checksum             | To be configured                 | To be configured               |
| 30 | Disable hardware TCP segmentation      | To be configured                 | To be configured               |
| 31 | Disable hardware LRO                   | To be configured                 | To be configured               |
| 32 | Disable VLAN hardware filtering        | To be configured                 | To be configured               |
| 33 | Increased the number of vCPUs to 16    | 16                               | 16                             |



That is for now. I am continuing to investigate and I will try soon to let you know what the results after all this thing are are done.