Page 1
Huawei IN200 NIC User Guide Issue Date 2019-07-27 HUAWEI TECHNOLOGIES CO., LTD.
Page 2
Notice The purchased products, services and features are stipulated by the contract made between Huawei and the customer. All or part of the products, services and features described in this document may not be within the purchase scope or the usage scope. Unless otherwise specified in the contract, all statements, information, and recommendations in this document are provided "AS IS"...
User Guide About This Document About This Document Purpose This document describes the IN200 PCIe NIC physical structure, features, specifications, and installation and management methods, as well as how to install and use management tools of the IN200. Intended Audience...
2.2.2 Installing the Driver..............................12 2.2.3 Upgrading the Driver..............................15 2.2.4 Uninstalling the Driver.............................. 17 2.3 Maintaining the RoCE Driver............................19 2.3.1 Preparing OSs Supported by Huawei In-House OFED.....................19 2.3.2 Installing the Driver..............................19 2.3.3 Upgrading the Driver..............................23 2.3.4 Uninstalling the Driver.............................. 26 2.4 Upgrading the IN200 Firmware........................... 27 3 Configuring SR-IOV........................29...
1.5 System Requirements 1.1 Overview The IN200 Ethernet NIC (IN200 for short) is a PCIe card for Huawei servers. It supports four 25GE SFP28 optical ports as external service ports. The IN200 is a PCIe card based on the Huawei HiSilicon Hi1822 NIC chip. It supports PCIe 3.0 x16 and Inter-integrated Circuit (I...
Huawei IN200 NIC User Guide 1 Getting to Know the IN200 1.2 Physical Structure Components Figure 1-2 shows the components of the IN200. Figure 1-2 IN200 components Bracket PCIe connector Hi1822+heat sink Mainboard Table 1-1 describes the components of the IN200.
Page 12
SFP28 optical port 2 SFP28 optical port 3 SFP28 optical port 4 Active/Link indicator Speed indicator Indicators The indicators display the working status of the IN200. Table 1-2 describes the indicators on the IN200 panel. Table 1-2 Indicator description Indicator...
Half-height half-length PCIe x16 card with a half-height or full-height bracket, applicable for various application scenarios. Huawei HiSilicon Hi1822 NIC chip, up to four 25GE SFP28 ports, and excellent compatibility with the x86 architecture. Supports 25GE, 10GE, and GE modes.
Supports Ethernet port auto-negotiation. NOTE l The IN200 supports the Legacy and UEFI modes. The PXE is not supported in Legacy mode. l The GE mode supports only GE optical modules, basic packet receiving and sending, and stateless offload, and does not support features such as SR-IOV, DPDK, and RoCE.
Page 15
Huawei IN200 NIC User Guide 1 Getting to Know the IN200 Software Requirements Table 1-4 lists the OSs supported by the IN200 NIC. Table 1-4 Supported OSs by the IN200 NIC x86 version ARM version BCLinux CentOS 6.8/6.9/6.10/7.0/7.1/7.2/7.3/7.4/7.5/7.6 7.4/7.5/7.6 Citrix 7.1/7.2/7.3/7.4/7.5/7.6...
Page 16
Huawei IN200 NIC User Guide 1 Getting to Know the IN200 x86 version ARM version EulerOS V2.0 SP3 V2.0 SP3/V2.0 SP8 V2R5/V3R0 V2R5 NOTE The preceding OSs are for reference only. For details about the OSs that can be purchased, see the Intelligent Computing Compatibility Checker or consult the local Huawei sales representatives.
2 Installation and Maintenance Installation and Maintenance The IN200 is a standard PCIe card. Its hardware installation method is the same as that of a common NIC. For details about how to install the IN200, see the user guide of the target server.
Boot mode) and gpg public key of the installation package. (Optional) Importing the SUSE PLDP Certificate Before installing the IN200 driver on the server in the BIOS UEFI safe mode, import the SUSE PLDP UEFI certificate in the BIOS to support the certificated IN200 driver.
2 Installation and Maintenance 2.2.2 Installing the Driver Prerequisites The driver package of the IN200 has been downloaded. The NIC driver package is included in the IN200 software package. For details about how to obtain the IN200 package, see 2.1 Obtaining Software Packages.
Page 23
– If no command output is displayed, the driver has not taken effect, and you need to perform the operation again. – If the command output about the IN200 driver is displayed, the driver has taken effect. Run the version command to query the current driver version using hinicadm tool.
The driver of the IN200 already exists in the server OS. The driver package of the IN200 has been downloaded. The NIC driver is included in the IN200 software package. For details about how to obtain the IN200 package, see 2.1 Obtaining Software...
Page 25
Run the reboot command on the OS. Method 2: Check that the current IN200 program has stopped. Run the rmmod hinic on the OS to install the existing driver. Run the modprobe hinic command on the OS to load the new driver.
After the driver is installed, you can run the version command to query the current driver version using hinicadm tool. 2.2.4 Uninstalling the Driver Prerequisites The driver of the IN200 already exists on the OS. To upgrade the driver corresponding to SUSE Linux, ensure that the preparations are ready. For details, see 2.2.1 Preparations (SUSE Linux).
2.3 Maintaining the RoCE Driver 2.3.1 Preparing OSs Supported by Huawei In-House OFED Before running RDMA over Converged Ethernet (RoCE) services on the IN200, you need to install the OpenFabrics Enterprise Distribution (OFED) and RoCE drivers in advance. OFED software packages are classified into Huawei in-house and non-Huawei OFED software packages.
Page 29
OFED package of a different version) has been installed on the server, you need to uninstall the existing OFED package and then install the OFA OFED 4.8-2 package and IN200 RoCE driver before using the IN200 RoCE function (the unistallation and installation operations do not conflict with the IN200 NIC functions).
Page 31
This method takes effect temporarily. If you require the OS to automatically load the driver upon startup, add the preceding two commands to the automatic startup script of the OS. ----End On the OS Supported by Non-Huawei OFED Step 1 Log in to the OS of the standby server. For details, see 7.1 Logging In to the Real-Time Server...
– If no command output is displayed, the driver has not taken effect. Reinstall the driver. – If the command output about the IN200 driver is displayed, the driver has taken effect. Run the hiroce gids command, view the command output, and check whether the driver takes effect.
Page 33
The upgrade process cannot be interrupted. During the upgrade, the OS cannot be restarted. Otherwise, the OS may be abnormal or cannot be started. On the OS Supported by Huawei In-House OFED Step 1 Log in to the server OS.
Page 34
This method takes effect temporarily. If you require the OS to automatically load the driver upon startup, add the preceding two commands to the automatic startup script of the OS. ----End On the OS Supported by Non-Huawei OFED Step 1 Log in to the OS of the standby server. For details, see 7.1 Logging In to the Real-Time Server...
On the OS supported by Huawei in-house OFED, run the bash uninstall.sh command to uninstall the OFED driver. On the OS supported by non-Huawei OFED, run the rpm -e X or dpkg -r X command to uninstall the OFED driver.
Huawei IN200 NIC User Guide 3 Configuring SR-IOV Configuring SR-IOV When the IN200 works in an SR-IOV environment, enable SR-IOV in the kernel to ensure good performance. 3.1 x86 Version 3.2 ARM Version 3.1 x86 Version 3.1.1 Configuring the Server BIOSs The following uses the BIOS of the 2288H V5 as an example to describe how to enable the SR-IOV function in the BIOS.
4.2 Configuring Flow Control 4.1 Overview of Flow Control IN200 flow control is enabled by default. You can run the ethtool -a DEV_NAME command to query the status of flow control. Enabling PFC disables flow control. The QoS can be configured only when the RoCE driver is used.
Management Tools 6.1 Customized Management Tool - hinicadm 6.2 Standard Management Tools 6.1 Customized Management Tool - hinicadm The hinicadm is a management tool customized for the IN200. You can use this tool to manage the IN200. 6.1.1 Installing hinicadm Prerequisites The hinicadm installation package has been downloaded.
Example: hinic0 and IN200 to be queried in the hinic1 system. Usage Instruction None Example # Query information about all the IN200 cards in the server. [root@localhost tool]# hinicadm info Hi1822 device Information Card PCIe Function |---- hinic0(ETH) |------------ 08:00.0 (NIC:eth5) |------------ 08:00.1 (NIC:eth6)
Example: hinic0 and IN200 to be queried in the hinic1 system. Usage Instruction None Example # Query all logs on a specified IN200. [root@localhost tool]# hinicadm log -i hinic0 -a /opt/hinic/fwlog/ucode_flash_hinic0_2018_01_15_17_05_41.log create succeed. /opt/hinic/fwlog/ucode_ram_hinic0_2018_01_15_17_05_41.log create succeed. /opt/hinic/fwlog/ucode_lastword_flash_hinic0_2018_01_15_17_05_41.log create succeed. /opt/hinic/fwlog/up_lastword_flash_hinic0_2018_01_15_17_05_41.log create succeed.
4: indicates the last words of the firmware and microcode. Usage Instruction None Example # Query the firmware logs in the flash memory on a specified IN200. [root@localhost tool]# hinicadm log -i hinic0 -t 1 /opt/hinic/fwlog/ up_flash_hinic0_2018_01_15_17_05_41.log create succeed. 6.1.4.3.3 Parsing Run Logs Offline (-o1) Function The log -o1 command is used to parse firmware and microcode run logs offline and save the parsing results to /opt/hinic/fwlog in the tool installation directory.
Indicates the name of the log file to be parsed. Example: err_log.bin NOTE This file is the out-of-band run log file of the IN200 obtained using the one-click information collection function of the iBMC. For details about the file obtaining method and save path, see the iBMC User Guide.
Indicates the name of the last-word file to be parsed. Example: last_word.bin NOTE This file is the out-of-band last-word file of the IN200 obtained using the one-click information collection function of the iBMC. For details about the file obtaining method and save path, see the iBMC User Guide.
-i <devicename> -f <fwfile> Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 to be upgraded in the hinic1 system. fwfile Indicates the path to the Format: Path/Upgrade firmware upgrade package. package name...
Huawei IN200 NIC User Guide 6 Management Tools NOTE Currently, the IN200 firmware is upgraded as a whole. Therefore, do not use this command for the upgrade. To perform the upgrade, see Cold-Upgrading All Firmware (-f). Format hinicadm updatefw -i <devicename> -f <fwfile> -c <configfile>...
If the command does not contain -t, all firmware is activated. Usage Instruction None Example # Upgrade abd activate the IN200 firmware. [root@localhost tool]#hinicadm updatefw -i hinic0 -f ./Hi1822_nic_std_4_25G.bin - a now Please do not remove driver or network device. Loading...
Parameter Description Value devicename Indicates the name Example: hinic0 and hinic1 of the IN200 to be upgraded in the system. Usage Instruction Before running this command, ensure that hot-upgraded firmware that has not been activated exists in the system. Example # Activate firmware.
Page 71
127 mag:err_mag_rf_lf: 252 mag:err_mag_linkdown: 250 mag:err_mag_linkup: 127 …… # Query the microcode statistics of the IN200. [root@localhost tool]# hinicadm counter -i hinic0 -t 1 uCode Statistics: NIC MIB TX UC Counter: func1:tx_uc: 0x00000193b7694888 00000000197c70de func76:tx_uc: 0x0000000002e9c940 00000000000b4b76...
User Guide 6 Management Tools func76:tx_mc: 0x00000000000001b6 0000000000000005 …… # Query the statistics of a specified sequence of the microcode type of the IN200. [root@localhost tool]# hinicadm counter -i hinic0 -t 1 -x 1 uCode Statistics: NIC MIB TX BC Counter:...
Page 73
If the value of tabletype is 4, the value of tableindex ranges from 0 to 4095. Usage Instruction None Example # Query information about the linear table of the IN200. [root@localhost tool]# hinicadm table -i hinic0 -t 0 static er_id vlan_id forward_type...
Example: hinic0 and IN200 to be queried in the hinic1 system. Usage Instruction None Example # Query the MAC address of the IN200. [root@localhost tool]# hinicadm mac -i hinic0 mac[0]: 00:02:03:04:05:06 mac[1]: 00:02:03:04:05:07 mac[2]: 00:02:03:04:05:08 mac[3]: 00:02:03:04:05:09 mac[4]: 00:02:03:04:05:10 mac[5]: 00:02:03:04:05:11...
Usage Instruction None Example # Query the FEC mode of port 0 of the IN200. [root@localhost tool]# hinicadm fec -i hinic0 -p 0 Port0 FEC mode: nofec 6.1.4.8.2 Setting the Port FEC Mode (-p -m)
FEC mode is install; otherwise, the original mode is used. Example # Set the FEC mode of port 0 of the IN200 to rsfec and use persistent configurations. [root@localhost tool]# hinicadm nic_fec -i hinic0 -p 0 -m rsfec -d Set default FEC mode succeed.
Parameter Description Value devicename Indicates the name of the Example: eth0 and eth1 IN200 port to be set or queried in the system. limitvalue Indicates the percentage of the An integer ranging from 1 actual transmit rate to the to 100 maximum rate of the port.
IN200 to be queried in the hinic1 system. Usage Instruction None Example # Query the chip and optical module temperatures of the IN200. [root@localhost tool]# hinicadm temperature -i hinic0 current temperature (unit: degree centigrade) controller: 55 sfp1: 59 sfp2: absent...
IN200 to be queried in the hinic1 system. Usage Instruction None Example # Query asynchronous event statistics of the IN200. [root@localhost tool]# hinicadm event -i hinic0 SDK Statistics: Heartbeat Lost Counter: heartbeat lost: 0 CQM Counter: cqm cmd alloc: 0...
# Clear the asynchronous event statistics of the IN200. [root@localhost]# hinicadm clear -i hinic0 -t 0 Clear event stats succeed. # Clear the I/O statistics of the eth0 port on the IN200. [root@localhost]# hinicadm clear -i eth0 -t 2 Clear driver stats succeed.
Usage Instruction None Example # Set the user priority of the IN200 to 6 5 3 0. [root@localhost tool]# hinicadm qos -i hinic0 -c 6530 Set cos2up succeed. # Query the user priority of the IN200. Issue 06 (2019-07-27)
-i <devicename> -t <registertype> -a <address> [-n <num>] [-c <channel>] Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 to be queried in the hinic1 system. registertype Indicates the type of the l 0: mag register register to be queried l 1: read register...
Usage Instruction None Example # Set the auto-negotiation mode of port 1 on the IN200 to ieee. [root@localhost tool]# hinicadm autoneg -i hinic0 -p 1 -m ieee Set port1 auto-negotiation mode to ieee mode succeed. # Query the auto-negotiation mode of port 1 on the IN200.
[root@localhost tool]# hinicadm mode -i hinic0 -m ovs Set work mode to ovs succeed. Please reboot OS for the new mode to take effect. # Query the IN200 work mode. [root@localhost tool]# hinicadm mode -i hinic0 Current work mode: NIC Work mode in permanent configuration: OVS 6.1.4.18 Querying FE Error Information (fe_epc)
Usage Instruction The -b is used to display all abnormal records. Example # Query all the error information about history FE threads of the IN200. [root@localhost tool]# hinicadm fe_epc -i hinic0 show -b index: 192 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00...
Usage Instruction If the command contains -a, all the threads are triggered. Example # Query all the error information about all FE threads of the IN200. [root@localhost tool]# hinicadm fe_epc -i hinic0 -a index: 192 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00...
-i <devicename> -p <portid> Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be queried in the system. portid Indicates the number of a port to be queried. Usage Instruction None Example # Queries basic information of port 0.
-i <devicename> -p <portid> Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be queried in the system. portid Indicates the number of a port to be queried. Usage Instruction None Example # Query statistics of port 0.
6 Management Tools Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be queried in the system. portid Indicates the port number to be queried. Usage Instruction None Example # Queries information about the an_train register numbered 0.
-i <devicename> -p <portid> Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be configured in the system. portid Indicates the number of the port to be set. Usage Instruction None Example # Query the transmission rate of port 0.
-i <devicename> -p <portid> -s <speed> [-d] Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be configured in the system. portid Indicates the number of the port to be set. speed Indicates the port rate 10 or 25 when the auto-negotiation mode is disabled.
6 Management Tools Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be configured in the system. portid Indicates the number of the port to be set. l on state Indicates whether the...
1: hi16 or hi30 macro Indicates the macro digit. Usage Instruction If the value of ethdevicename is an IN200 name, this command queies serdes information of all ports of the NIC. Example # Queries serdes information of the hinic0 port.
Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be queried in the system. portid Indicates the number of a port This parameter takes effect when type is to be queried. set to 1.
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and hinic1 IN200 to be queried or set in the system. portid Indicates the number of the port to be queried or set in the system. sriov Indicates the status of the l enable virtualization control mode.
Pf3 restore factory settings succeed. Please reboot OS to take effect. 6.1.4.28 Querying Chip Back Pressure Information (bp) Function The bp command is used to query chip back pressure information of the IN200. Format hinicadm bp -i <devicename> Issue 06 (2019-07-27)
Example: hinic0 and hinic1 target IN200 in the system. Usage Instruction None Example # Query chip back pressure information of the IN200. [root@localhost tool]#hinicadm bp -i hinic0 ===[ Hi1822 backpressure info]=== ********** Hi1822 TX bp history counter ********** *** TX link level ***...
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and hinic1 target IN200 in the system. Usage Instruction None Example # Query the status of microcode threads. [root@localhost tool]#hinicadm tile_io -i hinic0 *************** tile IO status ***************...
Parameter Description Value devicename Indicates the name of the Example: hinic0 and hinic1 target IN200 in the system. Usage Instruction None Example # Query the usage of chip CPB cells. [root@localhost tool]#hinicadm cpb -i hinic0 ****** CPB CELL NUM STATIC ******...
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and hinic1 target IN200 in the system. module name Module type. cpb, ipsurx, ipsutx, qu, pe, esch, mqm, lcam, sml0, sml1, smf, tile0, ppe0, tile1, or ppe1 address...
Usage Instruction Stop the services before running this command. Do not run this command twice on the same IN200. When this command is run, the registers of the chip cannot be read or written. Example # Read and save the register values of the hinic0 chip in batches.
Description Value devicename Indicates the name of the Example: hinic0 and hinic1 IN200 whose FEC mode is to be queried in the system. module name Indicates the resource type. all, glb, pg, tx, rx, yzone, rzone, nport, ncos, host, hsrv, hport, hpri, hep, or...
Description Value devicename Indicates the name of the Example: hinic0 and hinic1 IN200 whose FEC mode is to be queried in the system. module name Indicates the resource type. all, glb, pg, tx, rx, yzone, rzone, nport, ncos, host, hsrv, hport, hpri, hep, or...
Parameter Description Value devicename Indicates the name of the Example: hinic0 and hinic1 IN200 whose FEC mode is to be queried in the system. Usage Instruction None Example # Display the interrupt information reported by the hinic0 hardware module. [root@localhost ~]# hinicadm fm_show -i hinic0 ********no fm info!******** 6.1.4.37 Querying and Setting the Status of the Port Auto-adaptation Mode...
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be queried in the system. Usage Instruction None Example # Query the LRO coalesce time. [root@localhost tool]# hinicadm lro -i hinic0 LRO coalesce time: 10us.
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be set in the system. lro coalesce time Indicates the coalesce time. The value is an integer Unit: us ranging from 1 to 1024.
<usecs_low>] [-pl <pend_low>] [-rh <rate_high>] [-uh <usecs_high>] [-ph <pend_high>] Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 or hinic1 IN200 to be queried in the system. coal_timer Indicates the coalescence time. pend_limit Indicates the number of coalescence packets. rate_low Indicates the lower threshold of the packet rate.
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be queried in the system. Usage Instruction None Example # Query the SDI card mode. linux-EXvCVE:~ # hinicadm sdi_mode -i hinic0...
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be set in the system. mode Indicates the SDI card mode. l vm: virtual machine mode l bm: bare-metal mode...
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be queried in the system. Usage Instruction None Example # Query the configured management VLAN. linux-xvUVkf:~ # hinicadm sdi_cfg -i hinic0 -t cpath_vlan None control path vlan configured.
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be set in the system. vlan Indicates the VLAN ID. It is an integer ranging from 0 to 4095. Usage Instruction...
Parameters Parameter Description Value devicename Indicates the name of the IN200 Example: hinic0 and hinic1 whose FEC mode is to be set in the system. cir,cbs,pir,pbs Indicates the TX rate limit. l The unit of cir and pir is kbit/s.
Parameters Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be set in the system. Usage Instruction None Example # Delete the TX rate limit of a specified eth4 device.
Parameter Description Value devicename Indicates the name of the Example: hinic0 and IN200 whose FEC mode is to hinic1 be set in the system. cir,cbs Indicates the TX rate limit. l The unit of cir is kbit/s. l The unit of cbs is kbit.
Description Value devicename Indicates the name of the Example: hinic0 and hinic1 IN200 whose FEC mode is to be queried in the system. mode Reads packet data to be sent l read: obtains packet data to be sent from the NIC, or writes data from the NIC and saves the data to the to the NIC.
Parameters Parameter Description Value devicename Indicates the name of the For example, the value can IN200 to be queried and set in be enp6s0 or enp7s0. the system. mode Enables or disables the DCB l 1: Enables the DCB function.
Parameters Parameter Description Value devicename Indicates the name of the For example, the value can IN200 to be queried and set in be enp6s0 or enp7s0. the system. l 1: Enables PFC. mode Enables or disables the PFC function. l 0: Disables PFC.
Parameters Parameter Description Value devicename Indicates the name of the For example, the value can IN200 to be queried and set in be enp6s0 or enp7s0. the system. mode Enables or disables the ETS l 1: enables ETS. function. l 0: disables ETS.
Parameters Parameter Description Value devicename Indicates the name of the For example, the value can IN200 to be queried and set in be enp6s0 or enp7s0. the system. mode Enables or disables the ETS l 1: enables ETS. function. l 0: disables ETS.
6.2 Standard Management Tools The ethtool, ifconfig, ip link, vconfig, and dcbtool tools are standard NIC management tools delivered with the Linux system. They can be used to configure and manage the IN200 because the IN200 is a standard PCIe card.
Page 126
-L ethx Configures the number of queues. Some ethtool standard commands are not applicable to an IN200, and their functions are substituted by hinicadm. For example: l ethtool -e: provides the eeprom burning function, which is used in NIC firmware update.
Page 127
Sets the link status of the virtual network port. <staus> Table 6-5 lists the common vconfig commands supported by the IN200 and their functions. For details about how to use the commands, see the help information provided on the CLI. Table 6-5 Common vconfig commands...