Driver Cmdlets for Intel(R) Ethernet
====================================

June 15, 2021


Contents
--------
- Overview
- Prerequisites
- Installation
- Help
- Usage
- Recommended Configurations


Overview
========
This download contains cmdlets for Microsoft* Windows* for PowerShell*, for use with debugging Intel(R) Ethernet 800 Series devices. Not all hardware and operating systems support all cmdlets.

In Windows, you use PowerShell and Ethernet driver cmdlets to set the configuration for firmware logs and generate the logs. 

Firmware logs are generated in a binary format and have to be decoded by Customer Support. Information collected is related only to firmware and hardware for debug purposes.


Prerequisites
=============
You must have the latest base driver and NVM installed.


Installation
============
1. Download the zip file with the driver cmdlets from the Intel Download Center.
2. Save the zip file to the system you're trying to debug. 
3. Extract files from the zip file.
4. In the extracted files, double-click on PROSet_Driver_Cmdlets.exe.

The cmdlets will automatically install to the current user's PowerShell module directory (for example, to C:\Users\Administrator\Documents\WindowsPowerShell\Modules\IntelNetCmdlets).

After installation, you can use the cmdlets without manually importing the module.


Help
====
For detailed usage information of the cmdlets available in this download, type the following at the PowerShell prompt:

  PS C:\> get-help <cmdlet_name> -full

For example:

  PS C:\> get-help Get-IntelNetAdapterLogConfig -full
  PS C:\> get-help Set-IntelNetAdapterLogConfig -full


Usage
=====
To capture a firmware log, you must do the following:
- Set the configuration for the firmware log.
- Use logman to capture the firmware log. 
- Work with Customer Support to debug your issue.

NOTE:  
- Both the device and the driver need to support firmware logging for the functionality to work. If you are not able to set the configuration and the problem persists, reinstall the driver.
- Firmware logging events and levels are device-wide settings. Changing the log configuration on one port will apply it to all ports on a device. 


Setting the configuration of firmware logs
------------------------------------------
Use the Set-IntelNetAdapterLogConfig cmdlet provided in this download to change the configuration of firmware logs.

You can change the verbosity level of the logs for different categories of events (called "modules"). You can set only one log level per module. 

To view the available modules for firmware logs, run the following in PowerShell and look at the list of available modules returned:

	PS C:/> Get-IntelNetAdapterLogConfig

Refer to the Get-IntelNetAdapterLogConfig and Set-IntelNetAdapterLogConfig cmdlet help in PowerShell for more information.


Generating a firmware log
-------------------------
To generate a firmware log for your issue, do the following:

1. In PowerShell, use the Set-IntelNetAdapterLogConfig cmdlet to set the logging level for your desired module(s). For example:

	PS C:/> Set-IntelNetAdapterLogConfig -Name "Intel(R) Ethernet Network Adapter E810-C-Q2" -Module "Link Management" -Level "Verbose"

2. From the PowerShell prompt, enter the following command to start collecting data and output it to a log file: 

	PS C:/> logman start <session name> -ets -o <file location\filename> -p "{BDD04ED8-F4BB-4B36-BB76-D2FFC123EC67}" 0xFFFF 4

For example:

	PS C:/> logman start E810_Logging -ets -o "C:\Users\Administrator\Desktop\FW logs\E810_log.etl" -p "{BDD04ED8-F4BB-4B36-BB76-D2FFC123EC67}" 0xFFFF 4

NOTE:  
- This command is only supported on Intel Ethernet E810 Series devices. 
- The driver must be running and enabled. The system will not start capturing firmware logs until you issue the logman command above. 
- You must enclose strings containing spaces, such as the file path, in quotation marks.

3. Perform the event that would cause the logging event.

4. From the PowerShell prompt, use the following to stop the logman session: 

	PS C:/> logman stop <session name> -ets

5. Contact Customer Support for your device, for assistance with filing an issue. Provide driver information and attach the logs to your issue.


Recommended Configurations
==========================
The NVM sets default verbosity levels for different modules. In general, set the logging level to Verbose only for the module(s) you need to debug. Setting too many modules to Verbose can overrun the buffer.

The table below shows possible modules to set, depending on the type of issue you're trying to debug. If you see errors or suspect the issue could fall into the below categories, setting these modules will provide more information in the firmware log. The right column shows the Module values to enter in the Set-IntelNetAdapterLogConfig cmdlet.

Category of Error to Debug      Module to Set
==========================      =============
Initialization                  Control
--------------------------------------------------------
NVM                             NVM 
                                Authentication
                                VPD
--------------------------------------------------------
Input/Output (I/O)              I2C
                                SDP
                                MDIO
--------------------------------------------------------
Link Management                 Link Management
                                Link Control Technology
                                Link Topology Detection
--------------------------------------------------------
Receive (Rx)                    Parser
                                Switch
                                ACL
                                Post
--------------------------------------------------------
Transmit (Tx)                   Scheduler
                                Tx Queue Management
--------------------------------------------------------
Admin Queue Interface           Admin Queue
                                HDMA
--------------------------------------------------------
Manageability                   Manageability
--------------------------------------------------------
Protocols                       LLDP
                                DCBx
--------------------------------------------------------
Firmware Internals              Watchdog
                                Task Dispatcher
                                General
                                IOSF
                                PF Registration 
                                Module Versions
--------------------------------------------------------
Function-Level Resets           XLR
--------------------------------------------------------
Quality of Service (QoS)        DCB
--------------------------------------------------------
Diagnostics                     SyncE
                                Health
--------------------------------------------------------
Time Sync                       Time Sync

========================================================


Legal / Disclaimers
===================

Copyright (C) 2021 Intel Corporation

This software and the related documents are Intel copyrighted materials, and your use of them is governed by the express license under which they were provided to you ("License"). Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, disclose or transmit this software or the related documents without Intel's prior written permission.

This software and the related documents are provided as is, with no express or implied warranties, other than those that are expressly stated in the License.

Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others. 