# Bridge card



## zader (Sep 17, 2021)

Hi All,
I've been trying to find a "supported" fail closed bridge card (card still passes traffic even if the machine is off or not working) .. does anyone have a recommendation?

thanks


----------



## SirDice (Sep 17, 2021)

zader said:


> I've been trying to find a "supported" fail closed bridge card (card still passes traffic even if the machine is off or not working)


You mean a "fail open", a "fail closed" will block traffic if/when things fail (it's "closed" when it fails; hence the name 'fail closed').


----------



## zader (Sep 17, 2021)

oops, other way! haha thanks!  it should still pass traffic becasue you know jimmybob is going to see a shiny plug and unplug it at somepoint


----------



## Phishfry (Sep 17, 2021)

You are using the wrong terminology here.
I am guessing what you want is network bypass card that is supported. Here is one with FreeBSD drivers.








						Silicom Ltd. | PE2G2BPI80 Dual 1Gigabit Bypass Network Interface Card
					

Silicom's Dual 1Gigabit Bypass Ethernet PCI Express Bypass Network Interface Card Intel® 82580DB Based supports Normal, Disconnect and Bypass modes




					www.silicom-usa.com
				



Silicom is an Intel OEM and makes server cards.
Look through the site for a card that interests you and look for FreeBSD drivers.

Bypass cards are specialty items and the vendor has to build a driver to accommodate bypass.
I have a Lanner box where two of the interfaces are bypass. They do not work at all because the FreeBSD driver does not support them. For these devices to work there is some special sauce where it has a watchdog on the ethernet and fails open on power loss or lockup. Some devices have the bypass settings in the BIOS.
The Silicom cards use a utility to switch modes and is found with the drivers.


----------



## zader (Sep 17, 2021)

hum, yes.. so it needs to be able to pass traffic even if the machine is totally off. this way if the actual box fails there would be no interruption to the traffic.
not looking good for driver, I guess this is why I haven’t been able to find much on a card ..

thanks


----------



## Phishfry (Sep 17, 2021)

Well that card I posted is one one I experimented with.
It is EOL but here is a newer version.








						Silicom Ltd. | PE2G4BPFI35A Gigabit Ethernet Bypass Card
					

Silicom Quad Port Fiber Gigabit Ethernet Bypass Card Intel® i350AM4 Based In Disconnect mode, the adapter simulates switch / rout cable disconnection. In By




					www.silicom-usa.com
				




Go to drivers click FreeBSD.
Download zipfile and unzip. In the file you have bp-ctl.gz. uncompress that.
Now you have the driver source and the utility directories along with readme.

These Silicom cards can be found on ebay for cheap.
You just need to do your homework and know what to do with them.

Lanner on the other-hand offers no FreeBSD driver for their bypass implementation.
They too use Intel interfaces but not much for drivers let alone source code.
They play the OEM game. Got to sign up to get access.


----------



## zader (Sep 17, 2021)

cool thanks, I can work with that!


----------



## gmarco (Jan 8, 2022)

Hi all,
someone is succeded in compiling these on a recent FreeBSD 13 ?

I got these errors using:
FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
Target: x86_64-unknown-freebsd13.0
Thread model: posix
InstalledDir: /usr/bin



```
-MD  -MF.depend.bp_mod.o -MTbp_mod.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length   -mno-aes -mno-avx  -std=iso9899:1999 -c bp_mod.c -o bp_mod.o
In file included from bp_mod.c:74:
./bypass.h:274:27: error: field has incomplete type 'struct callout_handle'
    struct callout_handle bp_timer;
                          ^
./bypass.h:274:12: note: forward declaration of 'struct callout_handle'
    struct callout_handle bp_timer;
           ^
./bypass.h:285:27: error: field has incomplete type 'struct callout_handle'
    struct callout_handle bp_tpl_timer;
                          ^
./bypass.h:274:12: note: forward declaration of 'struct callout_handle'
    struct callout_handle bp_timer;
           ^
bp_mod.c:3200:25: error: implicit declaration of function 'timeout' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                pbpctl_dev->bp_timer= timeout(wd_reset_timer, pbpctl_dev, 1);
                                      ^
bp_mod.c:3207:25: error: implicit declaration of function 'timeout' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                pbpctl_dev->bp_timer= timeout(wd_reset_timer, pbpctl_dev, (pbpctl_dev->reset_time*hz)/1000);
                                      ^
bp_mod.c:4434:3: error: implicit declaration of function 'untimeout' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                untimeout(wd_reset_timer, pbpctl_dev, pbpctl_dev->bp_timer);
                ^
bp_mod.c:5866:29: error: implicit declaration of function 'timeout' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        pbpctl_dev->bp_tpl_timer = timeout(bp_tpl_timer_fn, pbpctl_dev, BP_LINK_MON_DELAY*hz);
                                   ^
bp_mod.c:5876:3: error: implicit declaration of function 'untimeout' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                untimeout(bp_tpl_timer_fn, pbpctl_dev, pbpctl_dev->bp_tpl_timer);
                ^
bp_mod.c:5900:30: error: implicit declaration of function 'timeout' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                        pbpctl_dev->bp_tpl_timer= timeout(bp_tpl_timer_fn, pbpctl_dev, 1);
                                                  ^
8 errors generated.
*** Error code 1
```

I was not also able to compile if I install on a FreeBSD 13 the last gcc10 or gcc48.

They fails with:

```
-MD  -MF.depend.bp_mod.o -MTbp_mod.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error=address -Wno-error=aggressive-loop-optimizations -Wno-error=array-bounds -Wno-error=attributes -Wno-error=cast-qual -Wno-error=enum-compare -Wno-error=inline -Wno-error=maybe-uninitialized -Wno-error=misleading-indentation -Wno-error=nonnull-compare -Wno-error=overflow -Wno-error=sequence-point -Wno-error=shift-overflow -Wno-error=tautological-compare -Wno-unused-but-set-variable -Wno-format-zero-length   -finline-limit=8000 -fms-extensions --param inline-unit-growth=100 --param large-function-growth=1000  -std=iso9899:1999 -c bp_mod.c -o bp_mod.o
gcc48: error: unrecognized command line option '-fformat-extensions'
*** Error code 1

Stop.
make[1]: stopped in /usr/home/gmarco/bp_ctl-4.0.2/driver
*** Error code 1

Stop.
make: stopped in /usr/home/gmarco/bp_ctl-4.0.2
```

Probably here the error is this ?
https://lists.freebsd.org/pipermail/freebsd-ports/2013-May/083387.html

But I was able to compile the code on an old FreeBSD 7.4-STABLE i386 with:

```
/home/gmarco/bp_ctl-4.0.2# gcc -v
Using built-in specs.
Target: i386-undermydesk-freebsd
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070831 patched [FreeBSD]
```

Someone can give some advice or helps?
Thanks

P.s
Reading the readme.txt shows this note ...  it is only old or what it says is true :/ ?


```
Drivers support:
================

Intel based bypass product currently support the following OS:
Linux kernel 2.4.x & 2.6.x & 3.x, 4.x
FreeBSD 4.7, 4.9, 4.11, 5.3, 5.4, 6.x, 7.x, 8x, 9.x
Windows 2008 and Windows 2003
VMware ESX_4_0, ESXi_4_0, ESX_i_4_1, ESX_4_1, ESXi_5_0, ESXi_5_1, ESXi_5_5, ESXi_6_0, ESXi 6_5
Citrix XenServer 5.6 FP 1 (2.6.32.12)
```


----------



## Phishfry (Jan 8, 2022)

gmarco said:


> it is only old


Yes that would be my guess. The releases of bp-ctl are rather frequent. So this program looks active.

I did not compile this when I made the comments. I did download the source to confirm it still exists.
The last time I actually experimented with this was 3 years ago.
So I went ahead and compiled it for you on FreeBSD 12.2 to see if it works.


```
objcopy --strip-debug bpmod.ko
===> util (all)
cc -O2 -pipe  bpctl_util.c  -o bpctl_util
bpctl_util.c:1160:20: warning: format string is not a string literal
      (potentially insecure) [-Wformat-security]
            printf(bp_cap_array[i].desc);
                   ^~~~~~~~~~~~~~~~~~~~
bpctl_util.c:1160:20: note: treat the string as an argument to avoid this
            printf(bp_cap_array[i].desc);
                   ^
                   "%s",
1 warning generated.
```

I am pretty sure this warning is not a dealbreaker. Everything was built.


----------



## Phishfry (Jan 8, 2022)

Looking for the files I see bpctl_util is built

`:~/Silicom/FreeBSD/BP_Control/bp_ctl-4.0.2/util # ./bpctl_util
Can't open device file: bpmod`

Looks like the module is the issue.


----------



## gmarco (Jan 8, 2022)

Phishfry said:


> Yes that would be my guess. The releases of bp-ctl are rather frequent. So this program looks active.
> 
> I did not compile this when I made the comments. I did download the source to confirm it still exists.
> The last time I actually experimented with this was 3 years ago.
> ...



Hi,
thanks so much for your kind reply.

Have you tried with version "bp_ctl-4.0.2" (in the link that you post of 17.09.2021), and default compiler shipped with FreeBSD 12.2 ?
Because I get, as you see in my above msg , different output of the compiler.

Perhaps I am trying to compile an older version of the driver ... 

Thanks.


----------



## gmarco (Jan 8, 2022)

Phishfry said:


> Looking for the files I see bpctl_util is built
> 
> `:~/Silicom/FreeBSD/BP_Control/bp_ctl-4.0.2/util # ./bpctl_util
> Can't open device file: bpmod`
> ...



I got the same result ...
:/



```
root@sily:/home/gmarco# kldload /boot/modules/bpmod.ko
kldload: an error occurred while loading module /boot/modules/bpmod.ko. Please check dmesg(8) for more details.

root@sily:/home/gmarco# kldstat
Id Refs Address                Size Name
 1   10 0xffffffff80200000  1f11f28 kernel
 2    2 0xffffffff82113000     8178 bridgestp.ko
 3    1 0xffffffff8211c000     fc48 if_bridge.ko
 4    1 0xffffffff82320000     3250 ichsmb.ko
 5    1 0xffffffff82324000     2180 smbus.ko

root@sily:/home/gmarco# tail -f /var/log/messages
Jan  8 19:20:17 sily kernel: Silicom Bypass Control driver v4.0.3
Jan  8 19:20:17 sily kernel: No such device
Jan  8 19:20:17 sily kernel: module_register_init: MOD_LOAD (bpmod, 0xffffffff8232cdc0, 0) error 19
```

Ignore the 4.03 versioning ... it is the different files we changed to make it compile on 13.0-RELEASE, but basically it is the same 4.0.2 .
Don't know why the mod don't find the card. It should be on the board of the appliance. Silicom staff send us the driver :/


----------



## Phishfry (Jan 8, 2022)

The module is present on my build system it just needs to be loaded.
`kldload bpmod.ko`


```
:~ # cc -v
FreeBSD clang version 10.0.1 (git@github.com:llvm/llvm-project.git llvmorg-10.0.1-0-gef32c611aa2)
Target: x86_64-unknown-freebsd12.2
Thread model: posix
InstalledDir: /usr/bin
```


```
:~/Silicom/FreeBSD/BP_Control/bp_ctl-4.0.2 # make
===> driver (all)
machine -> /usr/src/sys/amd64/include
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
:> opt_bdg.h
Warning: Object directory not changed from original /Silicom/FreeBSD/BP_Control/bp_ctl-4.0.2/driver
cc  -O2 -pipe  -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc   -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include -fdebug-prefix-map=./x86=/usr/src/sys/x86/include   -MD  -MF.depend.bp_mod.o -MTbp_mod.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-address-of-packed-member  -mno-aes -mno-avx  -std=iso9899:1999 -c bp_mod.c -o bp_mod.o
ld -m elf_x86_64_fbsd -d -warn-common --build-id=sha1 -r -d -o bpmod.ko bp_mod.o
:> export_syms
awk -f /usr/src/sys/conf/kmod_syms.awk bpmod.ko  export_syms | xargs -J% objcopy % bpmod.ko
objcopy --strip-debug bpmod.ko
===> util (all)
cc -O2 -pipe  bpctl_util.c  -o bpctl_util
bpctl_util.c:1160:20: warning: format string is not a string literal (potentially insecure)
      [-Wformat-security]
            printf(bp_cap_array[i].desc);
                   ^~~~~~~~~~~~~~~~~~~~
bpctl_util.c:1160:20: note: treat the string as an argument to avoid this
            printf(bp_cap_array[i].desc);
                   ^
                   "%s",
1 warning generated.
:~/Silicom/FreeBSD/BP_Control/bp_ctl-4.0.2 #
```


----------



## gmarco (Jan 8, 2022)

This is the appliance we are testing ... the first 2 igb works fine the last 4 nic are seen by FreeBSD 13 as ibg2 - igb5 but by default are in shortcut mode. 
Without the bpctl working we cant use them. I really dont need the heartbit driver I really want only to fix them as normal gigabit ethernet cards.

Thanks for your time.


----------



## Phishfry (Jan 8, 2022)

bpctl_util can do that. You will have to start the module on bootup.

Are you sure this is Silicom gear? Are you trying to shoehorn it for some other gear?
This is niche market features and I dunno if transferable between brands.


----------



## Phishfry (Jan 8, 2022)

gmarco said:


> kldload: an error occurred while loading module /boot/modules/bpmod.ko. Please check dmesg(8) for more details.


This is the same message I get.
I am running this from a laptop. No bypass cards. So I would expect the module to fail and load.
The hardware is not present.
There is probably a sanity check of the board.
When I tested this earlier you can actually hear relays clicking when you switch mode.
It is apparent when listening it is working.


----------



## Phishfry (Jan 8, 2022)

gmarco said:


> Silicom staff send us the driver :


My bad. I missed this.
It is nice to have the source too. Should make debugging easier.


----------



## Phishfry (Jan 8, 2022)

If I were OEM shopping I would seriously inquire to Silicom about UEFI payload for the ethernet bypass switch.
The Lanner with the BIOS settings is ideal. No messy software to deal with.
UEFI would be more modern approach. They might already have something similar.
UEFI BIOS allows expansion via payloads.
Contract manufacturer charges you slightly more for expanded UEFI options with payloads.
Like the Lanner BIOS approach you can have dev boxes with open access to to the switch settings, While the end appliance could be stripped of the extra payload for software control.

Surely there must be a manufacturing option for what you want. All ports open is not unreasonable.


----------



## gmarco (Jan 9, 2022)

Phishfry said:


> My bad. I missed this.
> It is nice to have the source too. Should make debugging easier.



Hi,
just for complete informations the appliance is this:
https://www.silicom-usa.com/pr/edge-networking-solutions/edge-cpes/rcc-ve-cpe-desktop-appliance/

Silicom staff is so no present, they sent us that file after a lot of emails (and then I discover by your link it was published in other part of their website too), they don't answer to the errors we sent to them (like the posts here) about the problems on compiling on a recent FreeBSD and so on. They dont send the doc of mainboard either. Perhaps could exists a jumper on it to set the nics ... 
And this is a pity because the box works really well with FreeBSD 13. 

Btw we'll continue to try to fix the driver for a recent FreeBSD version but I don't know if it is enough.
Because now it compiles, but the mod doesn't see the the nics either.
I presume this happens because something is changed in the kernel from the versions they (Silicom) tested to the kernel versions we are trying right now.

I'll post here if I have any news or if Silicom staff let us know something.

Thanks for your replies.
They are really appreciated.


----------



## covacat (Jan 9, 2022)

try to boot the appliance with a freebsd 9 image/usb stick
build/load the driver and see if it works
from what i've seen the mod uses some kernel api's that were removed in freebsd 10
if it works with freebsd 9 then it means some other apis it uses have changed and you need to debug/patch it further

the exit error you get is because it does not recognise any of the supported boards pci ids


----------



## gmarco (Jan 9, 2022)

I am confident that it should work till FreeBSD 12.x

https://www.freebsd.org/cgi/man.cgi...=FreeBSD+13.0-stable&arch=default&format=html

The function *timeout is missing in 13.0 *but it still exists in 12.x .

Infact it compile with only a little warning.


```
$ make
===> driver (all)
machine -> /usr/src/sys/amd64/include
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/pci/pci_if.m -h
😆 opt_bdg.h
Warning: Object directory not changed from original /usr/home/deri/gianmarco/bp_ctl-4.0.2/driver
make[1]: /usr/home/deri/gianmarco/bp_ctl-4.0.2/driver/.depend.bp_mod.o, 62: ignoring stale .depend for machine/pcpu_aux.h
cc  -O2 -pipe  -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc   -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer   -MD  -MF.depend.bp_mod.o -MTbp_mod.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-address-of-packed-member  -mno-aes -mno-avx  -std=iso9899:1999 -c bp_mod.c -o bp_mod.o
ld -m elf_x86_64_fbsd -d -warn-common --build-id=sha1 -r -d -o bpmod.ko bp_mod.o
😆 export_syms
awk -f /usr/src/sys/conf/kmod_syms.awk bpmod.ko  export_syms | xargs -J% objcopy % bpmod.ko
objcopy --strip-debug bpmod.ko
===> util (all)
cc -O2 -pipe  bpctl_util.c  -o bpctl_util
bpctl_util.c:1160:20: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
            printf(bp_cap_array[i].desc);
                   ^~~~~~~~~~~~~~~~~~~~
bpctl_util.c:1160:20: note: treat the string as an argument to avoid this
            printf(bp_cap_array[i].desc);
                   ^
                   "%s",
1 warning generated.
```


So now I try to reinstall a 12.3 or 12.2 on the box and to check if it works ... 
We have also written these things to Silicom pointing out these errors on FreeBSD 13 hoping they can make some fix to the driver.

Thanks all for the replies.


----------



## covacat (Jan 9, 2022)

I saw now that they are still in 12 but they were marked as legacy in 10. 
Look at /usr/src/sys/dev/hpt27xx/ there are some #if (__FreeBSD_version >= 1000510) and timeout/untimeout are replaced with other functions for version newer than 1000510.


----------



## gmarco (Jan 9, 2022)

Hi all,
to complete the story I'd like to tell that under FreeBSD 12.3 the driver compiles fine but it is unable to find the cards.


```
root@sily:/usr/home/gmarco/drivers/bp_ctl-4.0.2# freebsd-version -kru
12.3-RELEASE
12.3-RELEASE
12.3-RELEASE

root@sily:/usr/home/gmarco/drivers/bp_ctl-4.0.2# make
===> driver (all)
machine -> /usr/src/sys/amd64/include
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
[...]
===> util (all)
cc -O2 -pipe  bpctl_util.c  -o bpctl_util
bpctl_util.c:1160:20: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
            printf(bp_cap_array[i].desc);
                   ^~~~~~~~~~~~~~~~~~~~
bpctl_util.c:1160:20: note: treat the string as an argument to avoid this
            printf(bp_cap_array[i].desc);
                   ^
                   "%s",
1 warning generated.

root@sily:/usr/home/gmarco/drivers/bp_ctl-4.0.2# make install
===> driver (install)
install -T release -o root -g wheel -m 555   bpmod.ko /boot/modules/
kldxref /boot/modules
===> util (install)
install bpctl_util /bin

root@sily:/usr/home/gmarco/drivers/bp_ctl-4.0.2# kldload /boot/modules/bpmod.ko
kldload: an error occurred while loading module /boot/modules/bpmod.ko. Please check dmesg(8) for more details.

root@sily:/usr/home/gmarco/drivers/bp_ctl-4.0.2# tail -3 /var/log/messages
Jan  9 17:52:48 sily kernel: Silicom Bypass Control driver v4.0.2
Jan  9 17:52:48 sily kernel: No such device
Jan  9 17:52:48 sily kernel: module_register_init: MOD_LOAD (bpmod, 0xffffffff82726d10, 0) error 19
```

Probably the driver is not able to find the nics:


```
root@sily:/usr/home/gmarco/drivers/bp_ctl-4.0.2# pciconf -vl | grep -A4 igb
igb2@pci0:0:20:0:       class=0x020000 card=0x1f418086 chip=0x1f418086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection I354'
    class      = network
    subclass   = ethernet
igb3@pci0:0:20:1:       class=0x020000 card=0x1f418086 chip=0x1f418086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection I354'
    class      = network
    subclass   = ethernet
igb4@pci0:0:20:2:       class=0x020000 card=0x1f418086 chip=0x1f418086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection I354'
    class      = network
    subclass   = ethernet
igb5@pci0:0:20:3:       class=0x020000 card=0x1f418086 chip=0x1f418086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Ethernet Connection I354'
    class      = network
    subclass   = ethernet

igb0@pci0:3:0:0:        class=0x020000 card=0x00008086 chip=0x15398086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'I211 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
igb1@pci0:4:0:0:        class=0x020000 card=0x00008086 chip=0x15398086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'I211 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
```

Let's try to contact Silicom again to see if they can help here.

Thanks for attention and patience.


----------

