1*702cac6cSKevin BowlingFreeBSD* Driver for Intel(R) Ethernet 2*702cac6cSKevin Bowling===================================== 38cfa0ad2SJack F Vogel 4*702cac6cSKevin BowlingAugust 7, 2019 58cfa0ad2SJack F Vogel 68cfa0ad2SJack F VogelContents 78cfa0ad2SJack F Vogel======== 88cfa0ad2SJack F Vogel 98cfa0ad2SJack F Vogel- Overview 108cfa0ad2SJack F Vogel- Identifying Your Adapter 118cfa0ad2SJack F Vogel- Building and Installation 12*702cac6cSKevin Bowling- Additional Features and Configurations 13*702cac6cSKevin Bowling- Known Issues/Troubleshooting 148cfa0ad2SJack F Vogel- Support 158cfa0ad2SJack F Vogel- License 168cfa0ad2SJack F Vogel 178cfa0ad2SJack F Vogel 188cfa0ad2SJack F VogelOverview 198cfa0ad2SJack F Vogel======== 20*702cac6cSKevin BowlingThis file describes the FreeBSD* driver for Intel(R) Ethernet. This driver has 21*702cac6cSKevin Bowlingbeen developed for use with all community-supported versions of FreeBSD. 228cfa0ad2SJack F Vogel 238cfa0ad2SJack F VogelFor questions related to hardware requirements, refer to the documentation 24*702cac6cSKevin Bowlingsupplied with your Intel Ethernet Adapter. All hardware requirements listed 258cfa0ad2SJack F Vogelapply to use with FreeBSD. 268cfa0ad2SJack F Vogel 278cfa0ad2SJack F Vogel 288cfa0ad2SJack F VogelIdentifying Your Adapter 298cfa0ad2SJack F Vogel======================== 30*702cac6cSKevin BowlingThis release includes two gigabit FreeBSD base Drivers for Intel(R) Ethernet. 31*702cac6cSKevin BowlingThese drivers are em and igb. 328cfa0ad2SJack F Vogel 33*702cac6cSKevin Bowling- The igb driver supports all 82575 and 82576-based gigabit network connections. 34*702cac6cSKevin Bowling- The em driver supports all other gigabit network connections. 35*702cac6cSKevin Bowling- Gigabit devices base on the Intel(R) Ethernet Controller X722 are supported by 36*702cac6cSKevin Bowling the ixl driver. 378cfa0ad2SJack F Vogel 388cfa0ad2SJack F VogelNOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 398cfa0ad2SJack F Vogelsupport. 408cfa0ad2SJack F Vogel 41*702cac6cSKevin BowlingFor information on how to identify your adapter, and for the latest Intel 42*702cac6cSKevin Bowlingnetwork drivers, refer to the Intel Support website: 43*702cac6cSKevin Bowlinghttp://www.intel.com/support 44*702cac6cSKevin Bowling 45*702cac6cSKevin Bowling 468cfa0ad2SJack F VogelBuilding and Installation 478cfa0ad2SJack F Vogel========================= 48*702cac6cSKevin BowlingNOTE: This driver package is to be used only as a standalone archive and the 49*702cac6cSKevin Bowlinguser should not attempt to incorporate it into the kernel source tree. 508cfa0ad2SJack F Vogel 51*702cac6cSKevin BowlingIn the instructions below, x.x.x is the driver version as indicated in the name 52*702cac6cSKevin Bowlingof the driver tar file. 538cfa0ad2SJack F Vogel 548cfa0ad2SJack F Vogel1. Move the base driver tar file to the directory of your choice. For 558cfa0ad2SJack F Vogel example, use /home/username/em or /usr/local/src/em. 568cfa0ad2SJack F Vogel 578cfa0ad2SJack F Vogel2. Untar/unzip the archive: 588cfa0ad2SJack F Vogel 59*702cac6cSKevin Bowling # tar xzf em-x.x.x.tar.gz 608cfa0ad2SJack F Vogel 61*702cac6cSKevin BowlingThis will create the em-x.x.x directory. 628cfa0ad2SJack F Vogel 63*702cac6cSKevin Bowling3. To install man page: 648cfa0ad2SJack F Vogel 65*702cac6cSKevin Bowling # cd em-x.x.x 66*702cac6cSKevin Bowling # gzip -c em.4 > /usr/share/man/man4/em.4.gz 678cfa0ad2SJack F Vogel 68*702cac6cSKevin Bowling4. To load the driver onto a running system: 698cfa0ad2SJack F Vogel 70*702cac6cSKevin Bowling # cd em-x.x.x/src 71*702cac6cSKevin Bowling # make 72*702cac6cSKevin Bowling # kldload ./if_em.ko 738cfa0ad2SJack F Vogel 748cfa0ad2SJack F Vogel5. To assign an IP address to the interface, enter the following: 758cfa0ad2SJack F Vogel 76*702cac6cSKevin Bowling # ifconfig em<interface_num> <IP_address> 778cfa0ad2SJack F Vogel 788cfa0ad2SJack F Vogel6. Verify that the interface works. Enter the following, where <IP_address> 798cfa0ad2SJack F Vogel is the IP address for another machine on the same subnet as the interface 808cfa0ad2SJack F Vogel that is being tested: 818cfa0ad2SJack F Vogel 82*702cac6cSKevin Bowling # ping <IP_address> 838cfa0ad2SJack F Vogel 84*702cac6cSKevin Bowling7. If you want the driver to load automatically when the system is booted: 85*702cac6cSKevin Bowling 86*702cac6cSKevin Bowling # cd em-x.x.x/src 87*702cac6cSKevin Bowling # make 88*702cac6cSKevin Bowling # make install 89*702cac6cSKevin Bowling 90*702cac6cSKevin BowlingEdit /boot/loader.conf, and add the following line: 91*702cac6cSKevin Bowling if_em_load="YES" 92*702cac6cSKevin Bowling 93*702cac6cSKevin BowlingEdit /etc/rc.conf, and create the appropriate ifconfig_em<interface_num> entry: 948cfa0ad2SJack F Vogel 958cfa0ad2SJack F Vogel ifconfig_em<interface_num>="<ifconfig_settings>" 968cfa0ad2SJack F Vogel 978cfa0ad2SJack F VogelExample usage: 988cfa0ad2SJack F Vogel ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 998cfa0ad2SJack F Vogel 1008cfa0ad2SJack F Vogel NOTE: For assistance, see the ifconfig man page. 1018cfa0ad2SJack F Vogel 1028cfa0ad2SJack F Vogel 103*702cac6cSKevin BowlingAdditional Features and Configurations 104*702cac6cSKevin Bowling====================================== 105*702cac6cSKevin Bowling 1068cfa0ad2SJack F VogelSpeed and Duplex Configuration 107*702cac6cSKevin Bowling------------------------------ 108*702cac6cSKevin BowlingIn addressing speed and duplex configuration issues, you need to distinguish 109*702cac6cSKevin Bowlingbetween copper-based adapters and fiber-based adapters. 1108cfa0ad2SJack F Vogel 111*702cac6cSKevin BowlingIn the default mode, an Intel(R) Ethernet Network Adapter using copper 112*702cac6cSKevin Bowlingconnections will attempt to auto-negotiate with its link partner to determine 113*702cac6cSKevin Bowlingthe best setting. If the adapter cannot establish link with the link partner 114*702cac6cSKevin Bowlingusing auto-negotiation, you may need to manually configure the adapter and link 115*702cac6cSKevin Bowlingpartner to identical settings to establish link and pass packets. This should 116*702cac6cSKevin Bowlingonly be needed when attempting to link with an older switch that does not 117*702cac6cSKevin Bowlingsupport auto-negotiation or one that has been forced to a specific speed or 118*702cac6cSKevin Bowlingduplex mode. Your link partner must match the setting you choose. 1 Gbps speeds 119*702cac6cSKevin Bowlingand higher cannot be forced. Use the autonegotiation advertising setting to 120*702cac6cSKevin Bowlingmanually set devices for 1 Gbps and higher. 1218cfa0ad2SJack F Vogel 122*702cac6cSKevin BowlingCaution: Only experienced network administrators should force speed and duplex 123*702cac6cSKevin Bowlingor change autonegotiation advertising manually. The settings at the switch must 124*702cac6cSKevin Bowlingalways match the adapter settings. Adapter performance may suffer or your 125*702cac6cSKevin Bowlingadapter may not operate if you configure the adapter differently from your 126*702cac6cSKevin Bowlingswitch. 1278cfa0ad2SJack F Vogel 128*702cac6cSKevin BowlingAn Intel(R) Ethernet Network Adapter using fiber-based connections, however, 129*702cac6cSKevin Bowlingwill not attempt to auto-negotiate with its link partner since those adapters 130*702cac6cSKevin Bowlingoperate only in full duplex and only at their native speed. 1318cfa0ad2SJack F Vogel 132*702cac6cSKevin BowlingBy default, the adapter auto-negotiates the speed and duplex of the connection. 133*702cac6cSKevin BowlingIf there is a specific need, the ifconfig utility can be used to configure the 134*702cac6cSKevin Bowlingspeed and duplex settings on the adapter. 1358cfa0ad2SJack F Vogel 136*702cac6cSKevin BowlingExample usage: 1378cfa0ad2SJack F Vogel 138*702cac6cSKevin Bowling# ifconfig emX <IP_address> media 100baseTX mediaopt full-duplex 139*702cac6cSKevin Bowling 140*702cac6cSKevin BowlingNOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is not 141*702cac6cSKevin Bowlingspecified and you are not running at gigabit speed, the driver defaults to 142*702cac6cSKevin Bowlinghalf-duplex. 143*702cac6cSKevin Bowling 144*702cac6cSKevin BowlingIf the interface is currently forced to 100 full duplex, you must use this 145*702cac6cSKevin Bowlingcommand to change to half duplex: 146*702cac6cSKevin Bowling 147*702cac6cSKevin Bowling# ifconfig emX <IP_address> media 100baseTX -mediaopt full-duplex 1488cfa0ad2SJack F Vogel 1498cfa0ad2SJack F VogelThis driver supports the following media type options: 1508cfa0ad2SJack F Vogel 151*702cac6cSKevin BowlingMedia Type Description 152*702cac6cSKevin Bowling---------- ----------- 153*702cac6cSKevin Bowlingautoselect Enables auto-negotiation for speed and duplex. 154*702cac6cSKevin Bowling10baseT/UTP Sets speed to 10 Mbps. Use the ifconfig mediaopt 1558cfa0ad2SJack F Vogel option to select full-duplex mode. 156*702cac6cSKevin Bowling100baseTX Sets speed to 100 Mbps. Use the ifconfig mediaopt 1578cfa0ad2SJack F Vogel option to select full-duplex mode. 158*702cac6cSKevin Bowling1000baseTX Sets speed to 1000 Mbps. In this case, the driver 1598cfa0ad2SJack F Vogel supports only full-duplex mode. 160*702cac6cSKevin Bowling1000baseSX Sets speed to 1000 Mbps. In this case, the driver 1618cfa0ad2SJack F Vogel supports only full-duplex mode. 1628cfa0ad2SJack F Vogel 1638cfa0ad2SJack F VogelFor more information on the ifconfig utility, see the ifconfig man page. 1648cfa0ad2SJack F Vogel 1658cfa0ad2SJack F VogelJumbo Frames 1668cfa0ad2SJack F Vogel------------ 167*702cac6cSKevin BowlingJumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) 168*702cac6cSKevin Bowlingto a value larger than the default value of 1500. 1698cfa0ad2SJack F Vogel 170*702cac6cSKevin BowlingUse the ifconfig command to increase the MTU size. For example, enter the 171*702cac6cSKevin Bowlingfollowing where X is the interface number: 1728cfa0ad2SJack F Vogel 173*702cac6cSKevin Bowling# ifconfig emX mtu 9000 174*702cac6cSKevin Bowling 175*702cac6cSKevin BowlingTo confirm an interface's MTU value, use the ifconfig command. 1768cfa0ad2SJack F Vogel 1778cfa0ad2SJack F VogelTo confirm the MTU used between two specific devices, use: 1788cfa0ad2SJack F Vogel 179*702cac6cSKevin Bowling# route get <destination_IP_address> 1808cfa0ad2SJack F Vogel 181*702cac6cSKevin BowlingNOTE: The maximum MTU setting for Jumbo Frames is 16110. This value coincides 182*702cac6cSKevin Bowlingwith the maximum Jumbo Frames size of 16132 bytes. 1838cfa0ad2SJack F Vogel 184*702cac6cSKevin BowlingNOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in 185*702cac6cSKevin Bowlingpoor performance or loss of link. 1868cfa0ad2SJack F Vogel 187*702cac6cSKevin BowlingNOTE: Packet loss may have a greater impact on throughput when you use jumbo 188*702cac6cSKevin Bowlingframes. If you observe a drop in performance after enabling jumbo frames, 189*702cac6cSKevin Bowlingenabling flow control may mitigate the issue. 1908cfa0ad2SJack F Vogel 191*702cac6cSKevin BowlingNOTE: Some Intel gigabit adapters that support Jumbo Frames have a frame size 192*702cac6cSKevin Bowlinglimit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. The 193*702cac6cSKevin Bowlingadapters with this limitation are based on the Intel(R) 82571EB, 82572EI, 194*702cac6cSKevin Bowling82573L, 82566, 82562, and 80003ES2LAN controller. These correspond to the 195*702cac6cSKevin Bowlingfollowing product names: 1968cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Server Adapter 1978cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Desktop Adapter 1988cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Network Connection 1998cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Dual Port Server Adapter 2008cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Dual Port Network Connection 2018cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Quad Port Server Adapter 2028cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Quad Port Server Adapter 2038cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Server Adapter 2048cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Network Connection 2058cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Dual Port Server Adapter 2068cfa0ad2SJack F Vogel Intel(R) PRO/1000 PB Server Connection 2078cfa0ad2SJack F Vogel Intel(R) PRO/1000 PL Network Connection 2088cfa0ad2SJack F Vogel Intel(R) PRO/1000 EB Network Connection with I/O Acceleration 2098cfa0ad2SJack F Vogel Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration 2108cfa0ad2SJack F Vogel Intel(R) 82566DM-2 Gigabit Network Connection 211*702cac6cSKevin Bowling Intel(R) 82574L Gigabit Network Connection 212*702cac6cSKevin Bowling Intel(R) Gigabit CT Desktop Adapter 213*702cac6cSKevin Bowling Intel(R) 82567LM-4 Gigabit Network Connection 214*702cac6cSKevin Bowling Intel(R) 82567LM-3 Gigabit Network Connection 215*702cac6cSKevin Bowling Intel(R) 82567LF-3 Gigabit Network Connection 2168cfa0ad2SJack F Vogel 217*702cac6cSKevin BowlingNOTE: The following adapters limit Jumbo Frames sized packets to a maximum of 218*702cac6cSKevin Bowling4088 bytes: 219*702cac6cSKevin Bowling - Intel(R) 82578DM Gigabit Network Connection 220*702cac6cSKevin Bowling - Intel(R) 82577LM Gigabit Network Connection 2218cfa0ad2SJack F Vogel- The following adapters do not support Jumbo Frames: 222*702cac6cSKevin Bowling - Intel(R) PRO/1000 Gigabit Server Adapter 223*702cac6cSKevin Bowling - Intel(R) PRO/1000 PM Network Connection 224*702cac6cSKevin Bowling - Intel(R) 82562G 10/100 Network Connection 225*702cac6cSKevin Bowling - Intel(R) 82562G-2 10/100 Network Connection 226*702cac6cSKevin Bowling - Intel(R) 82562GT 10/100 Network Connection 227*702cac6cSKevin Bowling - Intel(R) 82562GT-2 10/100 Network Connection 228*702cac6cSKevin Bowling - Intel(R) 82562V 10/100 Network Connection 229*702cac6cSKevin Bowling - Intel(R) 82562V-2 10/100 Network Connection 230*702cac6cSKevin Bowling - Intel(R) 82566DC Gigabit Network Connection 231*702cac6cSKevin Bowling - Intel(R) 82566DC-2 Gigabit Network Connection 232*702cac6cSKevin Bowling - Intel(R) 82566DM Gigabit Network Connection 233*702cac6cSKevin Bowling - Intel(R) 82566MC Gigabit Network Connection 234*702cac6cSKevin Bowling - Intel(R) 82566MM Gigabit Network Connection 235*702cac6cSKevin Bowling - Intel(R) 82567V-3 Gigabit Network Connection 236*702cac6cSKevin Bowling - Intel(R) 82577LC Gigabit Network Connection 237*702cac6cSKevin Bowling - Intel(R) 82578DC Gigabit Network Connection 238*702cac6cSKevin Bowling- Jumbo Frames cannot be configured on an 82579-based Network device if 239*702cac6cSKevin Bowling MACSec is enabled on the system. 2408cfa0ad2SJack F Vogel 241*702cac6cSKevin Bowling 242*702cac6cSKevin BowlingVLANS 2438cfa0ad2SJack F Vogel----- 2448cfa0ad2SJack F VogelTo create a new VLAN interface: 2458cfa0ad2SJack F Vogel 246*702cac6cSKevin Bowling# ifconfig <vlan_name> create 2478cfa0ad2SJack F Vogel 248*702cac6cSKevin BowlingTo associate the VLAN interface with a physical interface and assign a VLAN ID, 249*702cac6cSKevin BowlingIP address, and netmask: 2508cfa0ad2SJack F Vogel 251*702cac6cSKevin Bowling# ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan <vlan_id> 252*702cac6cSKevin Bowlingvlandev <physical_interface> 2538cfa0ad2SJack F Vogel 2548cfa0ad2SJack F VogelExample: 2558cfa0ad2SJack F Vogel 256*702cac6cSKevin Bowling# ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0 2578cfa0ad2SJack F Vogel 258*702cac6cSKevin BowlingIn this example, all packets will be marked on egress with 802.1Q VLAN tags, 259*702cac6cSKevin Bowlingspecifying a VLAN ID of 10. 2608cfa0ad2SJack F Vogel 2618cfa0ad2SJack F VogelTo remove a VLAN interface: 2628cfa0ad2SJack F Vogel 263*702cac6cSKevin Bowling# ifconfig <vlan_name> destroy 2648cfa0ad2SJack F Vogel 2658cfa0ad2SJack F Vogel 2668cfa0ad2SJack F VogelPolling 2678cfa0ad2SJack F Vogel------- 268*702cac6cSKevin BowlingNOTES: 269*702cac6cSKevin Bowling- Device Polling is only valid for non-SMP kernels. 270*702cac6cSKevin Bowling- The driver has to be built into the kernel for Device Polling to be 271*702cac6cSKevin Bowling enabled in the driver. 2728cfa0ad2SJack F Vogel 2738cfa0ad2SJack F VogelTo enable polling in the driver, add the following options to the kernel 2748cfa0ad2SJack F Vogelconfiguration, and then recompile the kernel: 2758cfa0ad2SJack F Vogel 2768cfa0ad2SJack F Vogel options DEVICE_POLLING 2778cfa0ad2SJack F Vogel options HZ=1000 2788cfa0ad2SJack F Vogel 2798cfa0ad2SJack F VogelAt runtime use: 2808cfa0ad2SJack F Vogel ifconfig emX polling (to turn polling on) 2818cfa0ad2SJack F Vogeland: 2828cfa0ad2SJack F Vogel ifconfig emX -polling (to turn it off) 2838cfa0ad2SJack F Vogel 2848cfa0ad2SJack F Vogel 2858cfa0ad2SJack F VogelChecksum Offload 2868cfa0ad2SJack F Vogel---------------- 2878cfa0ad2SJack F VogelChecksum offloading is not supported on 82542 Gigabit adapters. 2888cfa0ad2SJack F Vogel 289*702cac6cSKevin BowlingChecksum offloading supports both TCP and UDP packets and is supported for both 290*702cac6cSKevin Bowlingtransmit and receive. 2918cfa0ad2SJack F Vogel 292*702cac6cSKevin BowlingChecksum offloading can be enabled or disabled using ifconfig. Both transmit 293*702cac6cSKevin Bowlingand receive offloading will be either enabled or disabled together. You cannot 294*702cac6cSKevin Bowlingenable/disable one without the other. 2958cfa0ad2SJack F Vogel 2968cfa0ad2SJack F VogelTo enable checksum offloading: 2978cfa0ad2SJack F Vogel 298*702cac6cSKevin Bowling# ifconfig emX rxcsum 2998cfa0ad2SJack F Vogel 3008cfa0ad2SJack F VogelTo disable checksum offloading: 3018cfa0ad2SJack F Vogel 302*702cac6cSKevin Bowling# ifconfig emX -rxcsum 3038cfa0ad2SJack F Vogel 3048cfa0ad2SJack F VogelTo confirm the current setting: 3058cfa0ad2SJack F Vogel 306*702cac6cSKevin Bowling# ifconfig emX 3078cfa0ad2SJack F Vogel 3088cfa0ad2SJack F VogelLook for the presence or absence of the following line: 3098cfa0ad2SJack F Vogel options=3 <RXCSUM,TXCSUM> 3108cfa0ad2SJack F Vogel 3118cfa0ad2SJack F VogelSee the ifconfig man page for further information. 3128cfa0ad2SJack F Vogel 3138cfa0ad2SJack F Vogel 3148cfa0ad2SJack F VogelTSO 3158cfa0ad2SJack F Vogel--- 316*702cac6cSKevin BowlingTSO (TCP Segmentation Offload) supports both IPv4 and IPv6. TSO can be disabled 317*702cac6cSKevin Bowlingand enabled using the ifconfig utility or sysctl. 3188cfa0ad2SJack F Vogel 319*702cac6cSKevin BowlingNOTE: TSO requires Tx checksum, if Tx checksum is disabled, TSO will also be 320*702cac6cSKevin Bowlingdisabled. 3218cfa0ad2SJack F Vogel 322*702cac6cSKevin BowlingNOTE: By default only PCI-Express adapters are ENABLED to do TSO. Others can be 323*702cac6cSKevin Bowlingenabled by the user at their own risk. TSO is not supported on 82547 or 324*702cac6cSKevin Bowling82544-based adapters, as well as older adapters. 3258cfa0ad2SJack F Vogel 326*702cac6cSKevin BowlingTo enable/disable TSO in the stack: 3278cfa0ad2SJack F Vogel 328*702cac6cSKevin Bowling# sysctl net.inet.tcp.tso=0 (or 1 to enable it) 3298cfa0ad2SJack F Vogel 330*702cac6cSKevin BowlingDoing this disables/enables TSO in the stack and affects all installed adapters. 3318cfa0ad2SJack F Vogel 332*702cac6cSKevin BowlingTo disable BOTH TSO IPv4 and IPv6: 3338cfa0ad2SJack F Vogel 334*702cac6cSKevin Bowling# ifconfig em<interface_num> -tso 3358cfa0ad2SJack F Vogel 336*702cac6cSKevin BowlingTo enable BOTH TSO IPv4 and IPv6: 337*702cac6cSKevin Bowling 338*702cac6cSKevin Bowling# ifconfig em<interface_num> tso 339*702cac6cSKevin Bowling 340*702cac6cSKevin BowlingYou can also enable/disable IPv4 TSO or IPv6 TSO individually. Simply replace 341*702cac6cSKevin Bowlingtso|-tso in the above command with tso4 or tso6. For example, to disable 342*702cac6cSKevin BowlingTSO IPv4: 343*702cac6cSKevin Bowling 344*702cac6cSKevin Bowling# ifconfig em<interface_num> -tso4 345*702cac6cSKevin Bowling 346*702cac6cSKevin BowlingTo disable TSO IPv6: 347*702cac6cSKevin Bowling 348*702cac6cSKevin Bowling# ifconfig em<interface_num> -tso6 3498cfa0ad2SJack F Vogel 3508cfa0ad2SJack F Vogel 351*702cac6cSKevin BowlingMSI-X 352*702cac6cSKevin Bowling----- 353*702cac6cSKevin BowlingMSI or MSI-X can be turned off by an entry in /etc/sysctl.conf 354*702cac6cSKevin Bowling 355*702cac6cSKevin Bowling hw.em.enable_msi=0 356*702cac6cSKevin Bowling 357*702cac6cSKevin BowlingUnload and reload the driver. 358*702cac6cSKevin Bowling 359*702cac6cSKevin Bowling 360*702cac6cSKevin BowlingKnown Issues/Troubleshooting 361*702cac6cSKevin Bowling============================ 3628cfa0ad2SJack F Vogel 3638cfa0ad2SJack F VogelDetected Tx Unit Hang in Quad Port Adapters 3648cfa0ad2SJack F Vogel------------------------------------------- 365*702cac6cSKevin BowlingIn some cases ports 3 and 4 don't pass traffic and report 'Detected Tx Unit 366*702cac6cSKevin BowlingHang' followed by 'NETDEV WATCHDOG: emX: transmit timed out' errors. Ports 1 367*702cac6cSKevin Bowlingand 2 do not show any errors and will pass traffic. 3688cfa0ad2SJack F Vogel 369*702cac6cSKevin BowlingThis issue may be resolved by updating to the latest kernel and BIOS. You 370*702cac6cSKevin Bowlingshould use an OS that fully supports Message Signaled Interrupts (MSI) and make 371*702cac6cSKevin Bowlingsure that MSI is enabled in your system's BIOS. 3728cfa0ad2SJack F Vogel 3738cfa0ad2SJack F Vogel 3748cfa0ad2SJack F VogelThere are known performance issues with this driver when running UDP traffic 3758cfa0ad2SJack F Vogelwith Jumbo Frames. 3768cfa0ad2SJack F Vogel---------------------------------------------------------------------------- 3778cfa0ad2SJack F Vogel 378*702cac6cSKevin Bowling 3798cfa0ad2SJack F Vogel82541/82547 can't link or is slow to link with some link partners 3808cfa0ad2SJack F Vogel----------------------------------------------------------------- 3818cfa0ad2SJack F VogelThere is a known compatibility issue where time to link is slow or link is not 3828cfa0ad2SJack F Vogelestablished between 82541/82547 controllers and some switches. Known switches 3838cfa0ad2SJack F Vogelinclude: 3848cfa0ad2SJack F Vogel Planex FXG-08TE 3858cfa0ad2SJack F Vogel I-O Data ETG-SH8 3868cfa0ad2SJack F Vogel 3878cfa0ad2SJack F VogelThe driver can be compiled with the following changes: 3888cfa0ad2SJack F Vogel 3898cfa0ad2SJack F Vogel Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE 390*702cac6cSKevin Bowling 3918cfa0ad2SJack F VogelFor example, change from: 3928cfa0ad2SJack F Vogel 3938cfa0ad2SJack F Vogel #define EM_MASTER_SLAVE e1000_ms_hw_default 394*702cac6cSKevin Bowling 3958cfa0ad2SJack F Vogelto: 396*702cac6cSKevin Bowling 3978cfa0ad2SJack F Vogel #define EM_MASTER_SLAVE 2 3988cfa0ad2SJack F Vogel 3998cfa0ad2SJack F VogelUse one of the following options: 4008cfa0ad2SJack F Vogel 1 = Master mode 4018cfa0ad2SJack F Vogel 2 = Slave mode 4028cfa0ad2SJack F Vogel 3 = Auto master/slave 4038cfa0ad2SJack F VogelSetting 2 is recommended. 4048cfa0ad2SJack F Vogel 4058cfa0ad2SJack F VogelRecompile the module: 4068cfa0ad2SJack F Vogel a. To compile the module 4078cfa0ad2SJack F Vogel cd em-x.x.x 4088cfa0ad2SJack F Vogel make clean 4098cfa0ad2SJack F Vogel make 4108cfa0ad2SJack F Vogel b. To install the compiled module in system directory: 4118cfa0ad2SJack F Vogel make install 4128cfa0ad2SJack F Vogel 4138cfa0ad2SJack F Vogel 4148cfa0ad2SJack F VogelSupport 4158cfa0ad2SJack F Vogel======= 416*702cac6cSKevin BowlingFor general information, go to the Intel support website at: 417*702cac6cSKevin Bowlinghttp://www.intel.com/support/ 4188cfa0ad2SJack F Vogel 419*702cac6cSKevin BowlingIf an issue is identified with the released source code on a supported kernel 420*702cac6cSKevin Bowlingwith a supported adapter, email the specific information related to the issue 421*702cac6cSKevin Bowlingto freebsd@intel.com 4228cfa0ad2SJack F Vogel 4238cfa0ad2SJack F Vogel 424*702cac6cSKevin BowlingCopyright(c) 1999-2019 Intel Corporation. 4258cfa0ad2SJack F Vogel 426*702cac6cSKevin Bowling 427*702cac6cSKevin BowlingTrademarks 428*702cac6cSKevin Bowling========== 429*702cac6cSKevin BowlingIntel is a trademark or registered trademark of Intel Corporation or its 430*702cac6cSKevin Bowlingsubsidiaries in the United States and/or other countries. 4318cfa0ad2SJack F Vogel 4328cfa0ad2SJack F Vogel* Other names and brands may be claimed as the property of others. 433