You can use the following commands for host-level debugging:
Check ESXi version
#vmware -vl
Check BIOS version
#smbiosDump | grep -A 4 'BIOS Info' | grep -v Info | grep -v Size
Check E810 Firmware version
#esxcli network nic get -n vmnicX
Check E810 icen driver version
#esxcli network nic get -n vmnicX
Check PTP packets are coming on an interface.
#pktcap-uw --uplink vmnicX --ethtype 0x88f7
Capture ESXi level details and PTP packets of an interface:
system_info.sh
Sample output:
# Copyright (c) 2023 VMware, Inc. All rights reserved. #set -x # Check if interface and timeout value are provided as arguments if [ $# -ne 2 ]; then echo "Usage: $0 <interface> <timeout in seconds>" exit 1 fi interface=$1 timeout=$2 # Create a directory to store output files outdir="esx_logs_$(date +%Y%m%d_%H%M%S)" mkdir $outdir cd $outdir # Output file name output_file="system_info_$hostname_$(date +%Y-%m-%d_%H-%M-%S).txt" tcpdump_file="pkt_cap_${interface}_$(date +%Y-%m-%d_%H-%M-%S).pcap" LOCALCLI="/sbin/localcli" ETHTOOL="/sbin/ethtool" VSISH="/bin/vsish" echo "============================================================" >> "$output_file" echo -e "ESXi version\n" >> "$output_file" vmware -vl >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "BIOS Info\n" >> "$output_file" smbiosDump | grep -A 4 'BIOS Info' | grep -v Info | grep -v Size >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "Sytem Info\n" >> "$output_file" smbiosDump |grep -A 5 'System Info' | grep -v Info >> "$output_file" echo -e "\n============================================================">> "$output_file" echo -e "Processor Information\n" >> "$output_file" vim-cmd hostsvc/hostsummary | grep cpuModel | cut -d '"' -f2 >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "CPU Information\n" >> "$output_file" $LOCALCLI hardware cpu global get >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "Memory Information\n" >> "$output_file" $LOCALCLI hardware memory get | grep -v Reliable >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "List Device information for Network Interface Cards\n" >> "$output_file" vmkchdev -l | grep -i vmnic >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "Network Interface Cards Information\n" >> "$output_file" $LOCALCLI network nic list >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "SRIOV Enabled - Network Interface Cards\n" >> "$output_file" $LOCALCLI network sriovnic list >> "$output_file" echo -e "\n============================================================" >> "$output_file" echo -e "VF information for SRIOV Enabled - Network Interface Cards\n" >> "$output_file" $LOCALCLI --format-param=show-header=false network sriovnic list | while read line do nic=`echo $line | awk '{print $1}'` >> "$output_file" $LOCALCLI network sriovnic vf list -n $nic >> "$output_file" echo >> "$output_file" done $LOCALCLI --format-param=show-header=false network nic list | while read line do mod=`echo $line | awk '{print $3}'` >> "$output_file" nic=`echo $line | awk '{print $1}'` >> "$output_file" echo "NIC: $nic" >> "$output_file" echo $line | sed 's/^/ /' >> "$output_file" echo >> "$output_file" # Show generic and driver information $LOCALCLI network nic get --nic-name=$nic | sed 's/^/ /' >> "$output_file" echo >> "$output_file" # show NIC statistics $LOCALCLI network nic stats get -n $nic | sed 's/^/ /' >> "$output_file" done echo -e "\n============================================================" >> "$output_file" # Run tcpdump for the specified timeout period to capture network traffic on the specified interface echo "$(date +"%Y-%m-%d %T") - Running pktcap-uw to capture PTP traffic on $interface interface for $timeout seconds..." >> "$output_file" timeout -t $timeout pktcap-uw --uplink "$interface" --ethtype 0x88f7 --outfile "$tcpdump_file" echo "$(date +"%Y-%m-%d %T") - Completed tcpdump capture." >> "$output_file" echo -e "\n============================================================" >> "$output_file" # Create a tar file of the output directory tar_file="system_logs_$(date +%Y-%m-%d_%H-%M-%S).tar.gz" echo -e "Creating tar file $tar_file of the artifacts collected" cd .. tar -czvf $tar_file $outdir # Remove the output directory rm -rf $outdir
Known Issue: When you configure a PTP interface on a card that does not have GNSS capability, the error occurs in the ESX vmkernel.log and dmesg log on the VM/Worker node.
Solution: Ensure that the first card you deploy on the server is a GNSS capable card.
ESX vmkernel.log:
2023-12-11T21:45:23.206Z Wa(180) vmkwarning: cpu63:2097858)WARNING: icen: icen_PtpVerifyPinCfg:2445: 0000:10:00.0: Configuration of GNSS (Global Navigation Satellite System) pin is not supported 2023-12-11T21:45:23.206Z Wa(180) vmkwarning: cpu63:2097858)WARNING: icen: indrv_VfPtpSetPinCfg:3566: 0000:10:00.0: VF 4: PTP pin configuration is incorrect 2023-12-11T21:45:23.206Z Wa(180) vmkwarning: cpu63:2097858)WARNING: icen: indrv_SendMsgToVf:600: 0000:10:00.0: VF 4: Failed opcode 69, Error -5
dmesg log:
[ 5673.675595] driver cannot use function 1 on pin 0 [ 5674.678220] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5674.678231] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5674.678236] driver cannot use function 1 on pin 0 [ 5675.686363] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5675.686373] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5675.686379] driver cannot use function 1 on pin 0 [ 5676.689304] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5676.689314] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5676.689320] driver cannot use function 1 on pin 0 [ 5677.691970] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5677.702482] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5677.702489] driver cannot use function 1 on pin 0 [ 5678.712826] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5678.721720] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5678.721728] driver cannot use function 1 on pin 0 [ 5679.725352] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5679.725362] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5679.725368] driver cannot use function 1 on pin 0 [ 5680.791689] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5680.791700] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5680.791702] driver cannot use function 1 on pin 0 [ 5681.975351] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5681.975363] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5681.975370] driver cannot use function 1 on pin 0 [ 5683.049558] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5683.049567] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5683.049572] driver cannot use function 1 on pin 0 [ 5684.053158] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 5684.053169] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 5684.053173] driver cannot use function 1 on pin 0 [ 6676.163030] iavf 0000:23:00.0: Failed to configure PHC GPIO pin, error VIRTCHNL_STATUS_ERR_PARAM [ 6676.163040] iavf 0000:23:00.0: Pin assignment is invalid, error VIRTCHNL_STATUS_ERR_PARAM (-5) [ 6676.163042] driver cannot use function 1 on pin 0