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