Is the Broadcom BCM957414A4142CC (BCM57414) 25G NIC supported?
-
@heper Thanks for your fast reply!
Do you know how I can commit this patch https://cgit.freebsd.org/src/commit/?id=5acfa48bb2585adfb8ceeacb695c6e6cc660894d to my pfSense 2.6?
-
@heper said in Is the Broadcom BCM957414A4142CC (BCM57414) 25G NIC supported?:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236983
That bug seems to be that VLAN traffic is not passed. Though it's not entirely clear because the example they give is vlan1 (the worst possible example!). Are you seeing just that or that all traffic stops passing?
You might try enabling promiscuous mode on the NIC and see if that then starts passing traffic.
To actually include that patch you would need to recompile the driver against FreeBSD 12-stable with the code included. Then copy the module across.
Steve
-
@stephenw10 Thanks a lot for your quick repsone ;-)
If I run following two commands it kills all communication also on untagged traffic from bnxt0
ifconfig vlan50 create ifconfig vlan50 vlan 50 vlandev bnxt0
Everything goes DARK!
ifconfig bnxt0 promisc
We are BACK online.
So the big question is. What is the disadvantage of running ifconfig bnxt0 promisc? And of course I will always need to run that command after a reboot (of course u can script it, I know).
There was a way to fix the gateway monitoring and services on the interface thru System -> Patches -> and Adding a New Patch. Would that not be possible with this issue as well? Because "recompiling a driver against FreeBSD 12-stable" sounds like something I am not able to do to be honest :-( well I could try?!
-
System Patches can only address run-time scripts they cannot change compiled binaries, like drivers.
Running in promiscuous mode is probably not going to make much difference in general use. The problem will be if you apply something that unintentionally takes it out of promisc mode...Steve
-
@stephenw10 Ah okay... Can I as a FreeBSD noob "recompiling a driver against FreeBSD 12-stable" or should I ask on a freelancer plattform for someone who does it for me? Is there like a tutorial on this?
-
It's certainly possible to try it. Install FreeBSD 12-stable with the build tools. Apply that patch to the bnxt driver code. Run 'make' to build the driver module. Copy the result across into pfSense and load it.
Of course things become more complex if the patch doesn't apply or the result fails to build...
It's been a while since I've done that so the precise details are no longer with me.Steve
-
@stephenw10 btw. should this not be against freebsd 12.3 stable? since pfsense 2.6 is running 12.3?
-
It shows as 12.3 because 12.4 has not been branched from it but it's 12-stable. Though I'd expect either to work. If it will work at all!
Steve
-
@stephenw10 Okay, I have a VM with FreeBSD 12-stable up and running. Now I need to figure out what to do :-) I will make a tutorial for anyone later.
-
@stephenw10 okay... so I am compiling now. changes worked well. but am i correct to assume that if I run kldstat -v | grep bnxt and it says "94 pci/bnxt" that the bnxt driver is inside of the kernel? so I don't have to replace only the driver for the bnxt. i have to replace the whole kernel?
okay... i guess i just figured out that the compiled network modules are located in /boot/kernel so I need to replace the if_bnxt.ko with the new one :-)
-
No you can probably load the module in preference to the in kerne driver. Most drivers allow that.
Create /boot/loader.conf.local and add to it:if_bnxt_load="YES" if_bnxt_name="/path/to/module/if_bnxt.ko"
Recompiling a kernel to use in pfSense is a lot more involved. You need to build against the full pfSense sources.
Steve
-
Recompiling a kernel to use in pfSense is a lot more involved. You need to build against the full pfSense sources.
Steve
yeah this is where i would have given up. but if i can just replace the module. i am very happy :-) to try that out and make a small "idiot" tutorial after
-
@stephenw10 said in Is the Broadcom BCM957414A4142CC (BCM57414) 25G NIC supported?:
No you can probably load the module in preference to the in kerne driver. Most drivers allow that.
Create /boot/loader.conf.local and add to it:if_bnxt_load="YES" if_bnxt_name="/path/to/module/if_bnxt.ko"
Recompiling a kernel to use in pfSense is a lot more involved. You need to build against the full pfSense sources.
Steve
so if I understand you correctly I should not replace the if_bnxt.ko in /boot/kernel... I should put the new .ko file somewhere and tell the loader.conf (i don't have a loader.conf.local) to load this new driver?
-
Create loader.conf.local and use that. It won't be overwritten by other config changes.
You can either replace the existing module or put it somewhere else and give it the path. I prefer the latter.
Steve
-
@stephenw10 Okay, I have done it the quick and dirty way. Just name the existing if_bnxt.ko to if_bnxt.ko.old and insert the newly compiled into /boot/kernel/if_bnxt.ko. I still had to run ifconfig bnxt0 promisc to make the system work again :-( can I somehow check what pfSense loaded? Maybe it ignored if_bnxt.ko and it is somehow in the kernel after all?
-
@yves_ update! replacing does not work... because the module is built into /boot/kernel/kernel
Now I tried to load it with kldload /boot/kernel/if_bnxt.ko
KLD if_bnxt.ko: depends on kernel - not available or version mismatch linker_load_file: /boot/kernel/if_bnxt.ko - unsupported file type
I guess back to squer one ;-)
-
At the console you should see it report that loading at boot before the kernel boots. Or an error if it can't load. You might also try changing a description line in the driver so you can see that in thr boot logs or sysctls where it reports it.
-
Ah, yes, like that!
Mmm, definitely not a 32bit module?
-
@stephenw10 well I used FreeBSD 12.3 Stable amd64 should I use FreeBSD 12.0 i386?
-
No, it should be 64bit but if you'd accidentally used 32bit it would have presented similarly to that.
Try building against 12.3-release instead, assuming you are running 2.6?
Or update to a 2.7 snapshot and try the 12-stable module there.
Steve