While working with Dell support on an iSCSI storage issue the issue came up of getting the firmware update to date on our hosts to rule out an undocumented bug or interaction related to being approximately a year behind. While skeptical of it actually resolving the issue, I proceeded to do the updates after giving the release notes for the various components a cursory look for any obvious show stoppers. Imagine my surprise when after installing the requisite updated ESXi VIB that my hosts now had FCoE offload functionality that was unexpected and undesired. This wasn't too big of an issue till an issue arose, and I needed to view the logs for the host and they were spammed with impunity by the Broadcom driver with FCoE VLAN discovery failure messages.
Rebooted a host and poked around through BIOS and the Life Cycle Controller, absolutely nothing for disabling FCoE offload without implementing NPAR which isn't a feature desired for our environment. Right clicking the FCoE device under Storage Adapters and selecting remove proved frustratingly fruitless as after a reboot they were still showing up. Dug into the issue more with support, going through syslogs from the impacted hosts and we stumbled upon a script that was running during ESXi's boot process. Said script was triggering a FCoE discovery on the NICs and restoring the functionality we were trying to remove.
After finding the script support took a closer look at the release notes on the Broadcom VIB and found this little tidbit just tossed in.
Problem: After installing the driver, the NIC interface associated with
the FCoE functionality needs to be triggered for discovery. This
is done manually by executing a few commands on the ESX server.
Cause: The bnx2fc is a dependent FCoE solution wherein the NIC interface
is used for part of the slow path processing.
Change: Carry a init script with the driver vib which will be executed
automatically after the driver is deployed, which executes the
required commands on the ESX server.
To resolve this on each host navigate to /etc/rc.local.d/ and remove 99bnx2fc.sh. Then execute the following esxcli commands to disable the FCoE discovery, remove the VIB and reboot. Probably a good idea to also modify VMware's Non-Critical Patch baseline to exclude the bnx2fc VIB to prevent it's accidental reinstallation.
Determine which vmnics have FCoE capability
esxcli fcoe nic list
Replace vmnicX with the output of the above command.
esxcli fcoe nic disable -n vmnicX
You will also need to remove the Broadcom FCoE VIB prior to rebooting.
esxcli software vib remove --vibname=scsi-bnx2fc
And the contents of 99bnx2fc.sh if anyone is interested.
/etc/rc.local.d # cat 99bnx2fc.sh
# QLogic bnx2fc FCoE NIC discovery Script
esxcli fcoe nic list | grep -i "^vmnic" > /scratch/vmnic_fc.txt
count=$(esxcli fcoe nic list | grep -c vmnic)
echo "$count interfaces are FCoE capable"
for i in $(seq 1 1 $count)
vmnic=$(sed -n "$i"p /scratch/vmnic_fc.txt)
ethtool -i $vmnic | grep "bnx2" &> /dev/null
# Only Run the command for Broadcom/QLogic NX-2 adapters
if [ $? -eq 0 ]; then
echo "Broadcom/QLogic Adapter : $vmnic"
echo "esxcli fcoe nic discover -n $vmnic";
esxcli fcoe nic discover -n $vmnic;
rm -f /scratch/vmnic_fc.txt