18cfa0ad2SJack F Vogel$FreeBSD$ 2*702cac6cSKevin BowlingFreeBSD* Driver for Intel(R) Ethernet 3*702cac6cSKevin Bowling===================================== 48cfa0ad2SJack F Vogel 5*702cac6cSKevin BowlingAugust 7, 2019 68cfa0ad2SJack F Vogel 78cfa0ad2SJack F VogelContents 88cfa0ad2SJack F Vogel======== 98cfa0ad2SJack F Vogel 108cfa0ad2SJack F Vogel- Overview 118cfa0ad2SJack F Vogel- Identifying Your Adapter 128cfa0ad2SJack F Vogel- Building and Installation 13*702cac6cSKevin Bowling- Additional Features and Configurations 14*702cac6cSKevin Bowling- Known Issues/Troubleshooting 158cfa0ad2SJack F Vogel- Support 168cfa0ad2SJack F Vogel- License 178cfa0ad2SJack F Vogel 188cfa0ad2SJack F Vogel 198cfa0ad2SJack F VogelOverview 208cfa0ad2SJack F Vogel======== 21*702cac6cSKevin BowlingThis file describes the FreeBSD* driver for Intel(R) Ethernet. This driver has 22*702cac6cSKevin Bowlingbeen developed for use with all community-supported versions of FreeBSD. 238cfa0ad2SJack F Vogel 248cfa0ad2SJack F VogelFor questions related to hardware requirements, refer to the documentation 25*702cac6cSKevin Bowlingsupplied with your Intel Ethernet Adapter. All hardware requirements listed 268cfa0ad2SJack F Vogelapply to use with FreeBSD. 278cfa0ad2SJack F Vogel 288cfa0ad2SJack F Vogel 298cfa0ad2SJack F VogelIdentifying Your Adapter 308cfa0ad2SJack F Vogel======================== 31*702cac6cSKevin BowlingThis release includes two gigabit FreeBSD base Drivers for Intel(R) Ethernet. 32*702cac6cSKevin BowlingThese drivers are em and igb. 338cfa0ad2SJack F Vogel 34*702cac6cSKevin Bowling- The igb driver supports all 82575 and 82576-based gigabit network connections. 35*702cac6cSKevin Bowling- The em driver supports all other gigabit network connections. 36*702cac6cSKevin Bowling- Gigabit devices base on the Intel(R) Ethernet Controller X722 are supported by 37*702cac6cSKevin Bowling the ixl driver. 388cfa0ad2SJack F Vogel 398cfa0ad2SJack F VogelNOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100 408cfa0ad2SJack F Vogelsupport. 418cfa0ad2SJack F Vogel 42*702cac6cSKevin BowlingFor information on how to identify your adapter, and for the latest Intel 43*702cac6cSKevin Bowlingnetwork drivers, refer to the Intel Support website: 44*702cac6cSKevin Bowlinghttp://www.intel.com/support 45*702cac6cSKevin Bowling 46*702cac6cSKevin Bowling 478cfa0ad2SJack F VogelBuilding and Installation 488cfa0ad2SJack F Vogel========================= 49*702cac6cSKevin BowlingNOTE: This driver package is to be used only as a standalone archive and the 50*702cac6cSKevin Bowlinguser should not attempt to incorporate it into the kernel source tree. 518cfa0ad2SJack F Vogel 52*702cac6cSKevin BowlingIn the instructions below, x.x.x is the driver version as indicated in the name 53*702cac6cSKevin Bowlingof the driver tar file. 548cfa0ad2SJack F Vogel 558cfa0ad2SJack F Vogel1. Move the base driver tar file to the directory of your choice. For 568cfa0ad2SJack F Vogel example, use /home/username/em or /usr/local/src/em. 578cfa0ad2SJack F Vogel 588cfa0ad2SJack F Vogel2. Untar/unzip the archive: 598cfa0ad2SJack F Vogel 60*702cac6cSKevin Bowling # tar xzf em-x.x.x.tar.gz 618cfa0ad2SJack F Vogel 62*702cac6cSKevin BowlingThis will create the em-x.x.x directory. 638cfa0ad2SJack F Vogel 64*702cac6cSKevin Bowling3. To install man page: 658cfa0ad2SJack F Vogel 66*702cac6cSKevin Bowling # cd em-x.x.x 67*702cac6cSKevin Bowling # gzip -c em.4 > /usr/share/man/man4/em.4.gz 688cfa0ad2SJack F Vogel 69*702cac6cSKevin Bowling4. To load the driver onto a running system: 708cfa0ad2SJack F Vogel 71*702cac6cSKevin Bowling # cd em-x.x.x/src 72*702cac6cSKevin Bowling # make 73*702cac6cSKevin Bowling # kldload ./if_em.ko 748cfa0ad2SJack F Vogel 758cfa0ad2SJack F Vogel5. To assign an IP address to the interface, enter the following: 768cfa0ad2SJack F Vogel 77*702cac6cSKevin Bowling # ifconfig em<interface_num> <IP_address> 788cfa0ad2SJack F Vogel 798cfa0ad2SJack F Vogel6. Verify that the interface works. Enter the following, where <IP_address> 808cfa0ad2SJack F Vogel is the IP address for another machine on the same subnet as the interface 818cfa0ad2SJack F Vogel that is being tested: 828cfa0ad2SJack F Vogel 83*702cac6cSKevin Bowling # ping <IP_address> 848cfa0ad2SJack F Vogel 85*702cac6cSKevin Bowling7. If you want the driver to load automatically when the system is booted: 86*702cac6cSKevin Bowling 87*702cac6cSKevin Bowling # cd em-x.x.x/src 88*702cac6cSKevin Bowling # make 89*702cac6cSKevin Bowling # make install 90*702cac6cSKevin Bowling 91*702cac6cSKevin BowlingEdit /boot/loader.conf, and add the following line: 92*702cac6cSKevin Bowling if_em_load="YES" 93*702cac6cSKevin Bowling 94*702cac6cSKevin BowlingEdit /etc/rc.conf, and create the appropriate ifconfig_em<interface_num> entry: 958cfa0ad2SJack F Vogel 968cfa0ad2SJack F Vogel ifconfig_em<interface_num>="<ifconfig_settings>" 978cfa0ad2SJack F Vogel 988cfa0ad2SJack F VogelExample usage: 998cfa0ad2SJack F Vogel ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0" 1008cfa0ad2SJack F Vogel 1018cfa0ad2SJack F Vogel NOTE: For assistance, see the ifconfig man page. 1028cfa0ad2SJack F Vogel 1038cfa0ad2SJack F Vogel 104*702cac6cSKevin BowlingAdditional Features and Configurations 105*702cac6cSKevin Bowling====================================== 106*702cac6cSKevin Bowling 1078cfa0ad2SJack F VogelSpeed and Duplex Configuration 108*702cac6cSKevin Bowling------------------------------ 109*702cac6cSKevin BowlingIn addressing speed and duplex configuration issues, you need to distinguish 110*702cac6cSKevin Bowlingbetween copper-based adapters and fiber-based adapters. 1118cfa0ad2SJack F Vogel 112*702cac6cSKevin BowlingIn the default mode, an Intel(R) Ethernet Network Adapter using copper 113*702cac6cSKevin Bowlingconnections will attempt to auto-negotiate with its link partner to determine 114*702cac6cSKevin Bowlingthe best setting. If the adapter cannot establish link with the link partner 115*702cac6cSKevin Bowlingusing auto-negotiation, you may need to manually configure the adapter and link 116*702cac6cSKevin Bowlingpartner to identical settings to establish link and pass packets. This should 117*702cac6cSKevin Bowlingonly be needed when attempting to link with an older switch that does not 118*702cac6cSKevin Bowlingsupport auto-negotiation or one that has been forced to a specific speed or 119*702cac6cSKevin Bowlingduplex mode. Your link partner must match the setting you choose. 1 Gbps speeds 120*702cac6cSKevin Bowlingand higher cannot be forced. Use the autonegotiation advertising setting to 121*702cac6cSKevin Bowlingmanually set devices for 1 Gbps and higher. 1228cfa0ad2SJack F Vogel 123*702cac6cSKevin BowlingCaution: Only experienced network administrators should force speed and duplex 124*702cac6cSKevin Bowlingor change autonegotiation advertising manually. The settings at the switch must 125*702cac6cSKevin Bowlingalways match the adapter settings. Adapter performance may suffer or your 126*702cac6cSKevin Bowlingadapter may not operate if you configure the adapter differently from your 127*702cac6cSKevin Bowlingswitch. 1288cfa0ad2SJack F Vogel 129*702cac6cSKevin BowlingAn Intel(R) Ethernet Network Adapter using fiber-based connections, however, 130*702cac6cSKevin Bowlingwill not attempt to auto-negotiate with its link partner since those adapters 131*702cac6cSKevin Bowlingoperate only in full duplex and only at their native speed. 1328cfa0ad2SJack F Vogel 133*702cac6cSKevin BowlingBy default, the adapter auto-negotiates the speed and duplex of the connection. 134*702cac6cSKevin BowlingIf there is a specific need, the ifconfig utility can be used to configure the 135*702cac6cSKevin Bowlingspeed and duplex settings on the adapter. 1368cfa0ad2SJack F Vogel 137*702cac6cSKevin BowlingExample usage: 1388cfa0ad2SJack F Vogel 139*702cac6cSKevin Bowling# ifconfig emX <IP_address> media 100baseTX mediaopt full-duplex 140*702cac6cSKevin Bowling 141*702cac6cSKevin BowlingNOTE: Only use mediaopt to set the driver to full-duplex. If mediaopt is not 142*702cac6cSKevin Bowlingspecified and you are not running at gigabit speed, the driver defaults to 143*702cac6cSKevin Bowlinghalf-duplex. 144*702cac6cSKevin Bowling 145*702cac6cSKevin BowlingIf the interface is currently forced to 100 full duplex, you must use this 146*702cac6cSKevin Bowlingcommand to change to half duplex: 147*702cac6cSKevin Bowling 148*702cac6cSKevin Bowling# ifconfig emX <IP_address> media 100baseTX -mediaopt full-duplex 1498cfa0ad2SJack F Vogel 1508cfa0ad2SJack F VogelThis driver supports the following media type options: 1518cfa0ad2SJack F Vogel 152*702cac6cSKevin BowlingMedia Type Description 153*702cac6cSKevin Bowling---------- ----------- 154*702cac6cSKevin Bowlingautoselect Enables auto-negotiation for speed and duplex. 155*702cac6cSKevin Bowling10baseT/UTP Sets speed to 10 Mbps. Use the ifconfig mediaopt 1568cfa0ad2SJack F Vogel option to select full-duplex mode. 157*702cac6cSKevin Bowling100baseTX Sets speed to 100 Mbps. Use the ifconfig mediaopt 1588cfa0ad2SJack F Vogel option to select full-duplex mode. 159*702cac6cSKevin Bowling1000baseTX Sets speed to 1000 Mbps. In this case, the driver 1608cfa0ad2SJack F Vogel supports only full-duplex mode. 161*702cac6cSKevin Bowling1000baseSX Sets speed to 1000 Mbps. In this case, the driver 1628cfa0ad2SJack F Vogel supports only full-duplex mode. 1638cfa0ad2SJack F Vogel 1648cfa0ad2SJack F VogelFor more information on the ifconfig utility, see the ifconfig man page. 1658cfa0ad2SJack F Vogel 1668cfa0ad2SJack F VogelJumbo Frames 1678cfa0ad2SJack F Vogel------------ 168*702cac6cSKevin BowlingJumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) 169*702cac6cSKevin Bowlingto a value larger than the default value of 1500. 1708cfa0ad2SJack F Vogel 171*702cac6cSKevin BowlingUse the ifconfig command to increase the MTU size. For example, enter the 172*702cac6cSKevin Bowlingfollowing where X is the interface number: 1738cfa0ad2SJack F Vogel 174*702cac6cSKevin Bowling# ifconfig emX mtu 9000 175*702cac6cSKevin Bowling 176*702cac6cSKevin BowlingTo confirm an interface's MTU value, use the ifconfig command. 1778cfa0ad2SJack F Vogel 1788cfa0ad2SJack F VogelTo confirm the MTU used between two specific devices, use: 1798cfa0ad2SJack F Vogel 180*702cac6cSKevin Bowling# route get <destination_IP_address> 1818cfa0ad2SJack F Vogel 182*702cac6cSKevin BowlingNOTE: The maximum MTU setting for Jumbo Frames is 16110. This value coincides 183*702cac6cSKevin Bowlingwith the maximum Jumbo Frames size of 16132 bytes. 1848cfa0ad2SJack F Vogel 185*702cac6cSKevin BowlingNOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in 186*702cac6cSKevin Bowlingpoor performance or loss of link. 1878cfa0ad2SJack F Vogel 188*702cac6cSKevin BowlingNOTE: Packet loss may have a greater impact on throughput when you use jumbo 189*702cac6cSKevin Bowlingframes. If you observe a drop in performance after enabling jumbo frames, 190*702cac6cSKevin Bowlingenabling flow control may mitigate the issue. 1918cfa0ad2SJack F Vogel 192*702cac6cSKevin BowlingNOTE: Some Intel gigabit adapters that support Jumbo Frames have a frame size 193*702cac6cSKevin Bowlinglimit of 9238 bytes, with a corresponding MTU size limit of 9216 bytes. The 194*702cac6cSKevin Bowlingadapters with this limitation are based on the Intel(R) 82571EB, 82572EI, 195*702cac6cSKevin Bowling82573L, 82566, 82562, and 80003ES2LAN controller. These correspond to the 196*702cac6cSKevin Bowlingfollowing product names: 1978cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Server Adapter 1988cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Desktop Adapter 1998cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Network Connection 2008cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Dual Port Server Adapter 2018cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Dual Port Network Connection 2028cfa0ad2SJack F Vogel Intel(R) PRO/1000 PT Quad Port Server Adapter 2038cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Quad Port Server Adapter 2048cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Server Adapter 2058cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Network Connection 2068cfa0ad2SJack F Vogel Intel(R) PRO/1000 PF Dual Port Server Adapter 2078cfa0ad2SJack F Vogel Intel(R) PRO/1000 PB Server Connection 2088cfa0ad2SJack F Vogel Intel(R) PRO/1000 PL Network Connection 2098cfa0ad2SJack F Vogel Intel(R) PRO/1000 EB Network Connection with I/O Acceleration 2108cfa0ad2SJack F Vogel Intel(R) PRO/1000 EB Backplane Connection with I/O Acceleration 2118cfa0ad2SJack F Vogel Intel(R) 82566DM-2 Gigabit Network Connection 212*702cac6cSKevin Bowling Intel(R) 82574L Gigabit Network Connection 213*702cac6cSKevin Bowling Intel(R) Gigabit CT Desktop Adapter 214*702cac6cSKevin Bowling Intel(R) 82567LM-4 Gigabit Network Connection 215*702cac6cSKevin Bowling Intel(R) 82567LM-3 Gigabit Network Connection 216*702cac6cSKevin Bowling Intel(R) 82567LF-3 Gigabit Network Connection 2178cfa0ad2SJack F Vogel 218*702cac6cSKevin BowlingNOTE: The following adapters limit Jumbo Frames sized packets to a maximum of 219*702cac6cSKevin Bowling4088 bytes: 220*702cac6cSKevin Bowling - Intel(R) 82578DM Gigabit Network Connection 221*702cac6cSKevin Bowling - Intel(R) 82577LM Gigabit Network Connection 2228cfa0ad2SJack F Vogel- The following adapters do not support Jumbo Frames: 223*702cac6cSKevin Bowling - Intel(R) PRO/1000 Gigabit Server Adapter 224*702cac6cSKevin Bowling - Intel(R) PRO/1000 PM Network Connection 225*702cac6cSKevin Bowling - Intel(R) 82562G 10/100 Network Connection 226*702cac6cSKevin Bowling - Intel(R) 82562G-2 10/100 Network Connection 227*702cac6cSKevin Bowling - Intel(R) 82562GT 10/100 Network Connection 228*702cac6cSKevin Bowling - Intel(R) 82562GT-2 10/100 Network Connection 229*702cac6cSKevin Bowling - Intel(R) 82562V 10/100 Network Connection 230*702cac6cSKevin Bowling - Intel(R) 82562V-2 10/100 Network Connection 231*702cac6cSKevin Bowling - Intel(R) 82566DC Gigabit Network Connection 232*702cac6cSKevin Bowling - Intel(R) 82566DC-2 Gigabit Network Connection 233*702cac6cSKevin Bowling - Intel(R) 82566DM Gigabit Network Connection 234*702cac6cSKevin Bowling - Intel(R) 82566MC Gigabit Network Connection 235*702cac6cSKevin Bowling - Intel(R) 82566MM Gigabit Network Connection 236*702cac6cSKevin Bowling - Intel(R) 82567V-3 Gigabit Network Connection 237*702cac6cSKevin Bowling - Intel(R) 82577LC Gigabit Network Connection 238*702cac6cSKevin Bowling - Intel(R) 82578DC Gigabit Network Connection 239*702cac6cSKevin Bowling- Jumbo Frames cannot be configured on an 82579-based Network device if 240*702cac6cSKevin Bowling MACSec is enabled on the system. 2418cfa0ad2SJack F Vogel 242*702cac6cSKevin Bowling 243*702cac6cSKevin BowlingVLANS 2448cfa0ad2SJack F Vogel----- 2458cfa0ad2SJack F VogelTo create a new VLAN interface: 2468cfa0ad2SJack F Vogel 247*702cac6cSKevin Bowling# ifconfig <vlan_name> create 2488cfa0ad2SJack F Vogel 249*702cac6cSKevin BowlingTo associate the VLAN interface with a physical interface and assign a VLAN ID, 250*702cac6cSKevin BowlingIP address, and netmask: 2518cfa0ad2SJack F Vogel 252*702cac6cSKevin Bowling# ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan <vlan_id> 253*702cac6cSKevin Bowlingvlandev <physical_interface> 2548cfa0ad2SJack F Vogel 2558cfa0ad2SJack F VogelExample: 2568cfa0ad2SJack F Vogel 257*702cac6cSKevin Bowling# ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev em0 2588cfa0ad2SJack F Vogel 259*702cac6cSKevin BowlingIn this example, all packets will be marked on egress with 802.1Q VLAN tags, 260*702cac6cSKevin Bowlingspecifying a VLAN ID of 10. 2618cfa0ad2SJack F Vogel 2628cfa0ad2SJack F VogelTo remove a VLAN interface: 2638cfa0ad2SJack F Vogel 264*702cac6cSKevin Bowling# ifconfig <vlan_name> destroy 2658cfa0ad2SJack F Vogel 2668cfa0ad2SJack F Vogel 2678cfa0ad2SJack F VogelPolling 2688cfa0ad2SJack F Vogel------- 269*702cac6cSKevin BowlingNOTES: 270*702cac6cSKevin Bowling- Device Polling is only valid for non-SMP kernels. 271*702cac6cSKevin Bowling- The driver has to be built into the kernel for Device Polling to be 272*702cac6cSKevin Bowling enabled in the driver. 2738cfa0ad2SJack F Vogel 2748cfa0ad2SJack F VogelTo enable polling in the driver, add the following options to the kernel 2758cfa0ad2SJack F Vogelconfiguration, and then recompile the kernel: 2768cfa0ad2SJack F Vogel 2778cfa0ad2SJack F Vogel options DEVICE_POLLING 2788cfa0ad2SJack F Vogel options HZ=1000 2798cfa0ad2SJack F Vogel 2808cfa0ad2SJack F VogelAt runtime use: 2818cfa0ad2SJack F Vogel ifconfig emX polling (to turn polling on) 2828cfa0ad2SJack F Vogeland: 2838cfa0ad2SJack F Vogel ifconfig emX -polling (to turn it off) 2848cfa0ad2SJack F Vogel 2858cfa0ad2SJack F Vogel 2868cfa0ad2SJack F VogelChecksum Offload 2878cfa0ad2SJack F Vogel---------------- 2888cfa0ad2SJack F VogelChecksum offloading is not supported on 82542 Gigabit adapters. 2898cfa0ad2SJack F Vogel 290*702cac6cSKevin BowlingChecksum offloading supports both TCP and UDP packets and is supported for both 291*702cac6cSKevin Bowlingtransmit and receive. 2928cfa0ad2SJack F Vogel 293*702cac6cSKevin BowlingChecksum offloading can be enabled or disabled using ifconfig. Both transmit 294*702cac6cSKevin Bowlingand receive offloading will be either enabled or disabled together. You cannot 295*702cac6cSKevin Bowlingenable/disable one without the other. 2968cfa0ad2SJack F Vogel 2978cfa0ad2SJack F VogelTo enable checksum offloading: 2988cfa0ad2SJack F Vogel 299*702cac6cSKevin Bowling# ifconfig emX rxcsum 3008cfa0ad2SJack F Vogel 3018cfa0ad2SJack F VogelTo disable checksum offloading: 3028cfa0ad2SJack F Vogel 303*702cac6cSKevin Bowling# ifconfig emX -rxcsum 3048cfa0ad2SJack F Vogel 3058cfa0ad2SJack F VogelTo confirm the current setting: 3068cfa0ad2SJack F Vogel 307*702cac6cSKevin Bowling# ifconfig emX 3088cfa0ad2SJack F Vogel 3098cfa0ad2SJack F VogelLook for the presence or absence of the following line: 3108cfa0ad2SJack F Vogel options=3 <RXCSUM,TXCSUM> 3118cfa0ad2SJack F Vogel 3128cfa0ad2SJack F VogelSee the ifconfig man page for further information. 3138cfa0ad2SJack F Vogel 3148cfa0ad2SJack F Vogel 3158cfa0ad2SJack F VogelTSO 3168cfa0ad2SJack F Vogel--- 317*702cac6cSKevin BowlingTSO (TCP Segmentation Offload) supports both IPv4 and IPv6. TSO can be disabled 318*702cac6cSKevin Bowlingand enabled using the ifconfig utility or sysctl. 3198cfa0ad2SJack F Vogel 320*702cac6cSKevin BowlingNOTE: TSO requires Tx checksum, if Tx checksum is disabled, TSO will also be 321*702cac6cSKevin Bowlingdisabled. 3228cfa0ad2SJack F Vogel 323*702cac6cSKevin BowlingNOTE: By default only PCI-Express adapters are ENABLED to do TSO. Others can be 324*702cac6cSKevin Bowlingenabled by the user at their own risk. TSO is not supported on 82547 or 325*702cac6cSKevin Bowling82544-based adapters, as well as older adapters. 3268cfa0ad2SJack F Vogel 327*702cac6cSKevin BowlingTo enable/disable TSO in the stack: 3288cfa0ad2SJack F Vogel 329*702cac6cSKevin Bowling# sysctl net.inet.tcp.tso=0 (or 1 to enable it) 3308cfa0ad2SJack F Vogel 331*702cac6cSKevin BowlingDoing this disables/enables TSO in the stack and affects all installed adapters. 3328cfa0ad2SJack F Vogel 333*702cac6cSKevin BowlingTo disable BOTH TSO IPv4 and IPv6: 3348cfa0ad2SJack F Vogel 335*702cac6cSKevin Bowling# ifconfig em<interface_num> -tso 3368cfa0ad2SJack F Vogel 337*702cac6cSKevin BowlingTo enable BOTH TSO IPv4 and IPv6: 338*702cac6cSKevin Bowling 339*702cac6cSKevin Bowling# ifconfig em<interface_num> tso 340*702cac6cSKevin Bowling 341*702cac6cSKevin BowlingYou can also enable/disable IPv4 TSO or IPv6 TSO individually. Simply replace 342*702cac6cSKevin Bowlingtso|-tso in the above command with tso4 or tso6. For example, to disable 343*702cac6cSKevin BowlingTSO IPv4: 344*702cac6cSKevin Bowling 345*702cac6cSKevin Bowling# ifconfig em<interface_num> -tso4 346*702cac6cSKevin Bowling 347*702cac6cSKevin BowlingTo disable TSO IPv6: 348*702cac6cSKevin Bowling 349*702cac6cSKevin Bowling# ifconfig em<interface_num> -tso6 3508cfa0ad2SJack F Vogel 3518cfa0ad2SJack F Vogel 352*702cac6cSKevin BowlingMSI-X 353*702cac6cSKevin Bowling----- 354*702cac6cSKevin BowlingMSI or MSI-X can be turned off by an entry in /etc/sysctl.conf 355*702cac6cSKevin Bowling 356*702cac6cSKevin Bowling hw.em.enable_msi=0 357*702cac6cSKevin Bowling 358*702cac6cSKevin BowlingUnload and reload the driver. 359*702cac6cSKevin Bowling 360*702cac6cSKevin Bowling 361*702cac6cSKevin BowlingKnown Issues/Troubleshooting 362*702cac6cSKevin Bowling============================ 3638cfa0ad2SJack F Vogel 3648cfa0ad2SJack F VogelDetected Tx Unit Hang in Quad Port Adapters 3658cfa0ad2SJack F Vogel------------------------------------------- 366*702cac6cSKevin BowlingIn some cases ports 3 and 4 don't pass traffic and report 'Detected Tx Unit 367*702cac6cSKevin BowlingHang' followed by 'NETDEV WATCHDOG: emX: transmit timed out' errors. Ports 1 368*702cac6cSKevin Bowlingand 2 do not show any errors and will pass traffic. 3698cfa0ad2SJack F Vogel 370*702cac6cSKevin BowlingThis issue may be resolved by updating to the latest kernel and BIOS. You 371*702cac6cSKevin Bowlingshould use an OS that fully supports Message Signaled Interrupts (MSI) and make 372*702cac6cSKevin Bowlingsure that MSI is enabled in your system's BIOS. 3738cfa0ad2SJack F Vogel 3748cfa0ad2SJack F Vogel 3758cfa0ad2SJack F VogelThere are known performance issues with this driver when running UDP traffic 3768cfa0ad2SJack F Vogelwith Jumbo Frames. 3778cfa0ad2SJack F Vogel---------------------------------------------------------------------------- 3788cfa0ad2SJack F Vogel 379*702cac6cSKevin Bowling 3808cfa0ad2SJack F Vogel82541/82547 can't link or is slow to link with some link partners 3818cfa0ad2SJack F Vogel----------------------------------------------------------------- 3828cfa0ad2SJack F VogelThere is a known compatibility issue where time to link is slow or link is not 3838cfa0ad2SJack F Vogelestablished between 82541/82547 controllers and some switches. Known switches 3848cfa0ad2SJack F Vogelinclude: 3858cfa0ad2SJack F Vogel Planex FXG-08TE 3868cfa0ad2SJack F Vogel I-O Data ETG-SH8 3878cfa0ad2SJack F Vogel 3888cfa0ad2SJack F VogelThe driver can be compiled with the following changes: 3898cfa0ad2SJack F Vogel 3908cfa0ad2SJack F Vogel Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE 391*702cac6cSKevin Bowling 3928cfa0ad2SJack F VogelFor example, change from: 3938cfa0ad2SJack F Vogel 3948cfa0ad2SJack F Vogel #define EM_MASTER_SLAVE e1000_ms_hw_default 395*702cac6cSKevin Bowling 3968cfa0ad2SJack F Vogelto: 397*702cac6cSKevin Bowling 3988cfa0ad2SJack F Vogel #define EM_MASTER_SLAVE 2 3998cfa0ad2SJack F Vogel 4008cfa0ad2SJack F VogelUse one of the following options: 4018cfa0ad2SJack F Vogel 1 = Master mode 4028cfa0ad2SJack F Vogel 2 = Slave mode 4038cfa0ad2SJack F Vogel 3 = Auto master/slave 4048cfa0ad2SJack F VogelSetting 2 is recommended. 4058cfa0ad2SJack F Vogel 4068cfa0ad2SJack F VogelRecompile the module: 4078cfa0ad2SJack F Vogel a. To compile the module 4088cfa0ad2SJack F Vogel cd em-x.x.x 4098cfa0ad2SJack F Vogel make clean 4108cfa0ad2SJack F Vogel make 4118cfa0ad2SJack F Vogel b. To install the compiled module in system directory: 4128cfa0ad2SJack F Vogel make install 4138cfa0ad2SJack F Vogel 4148cfa0ad2SJack F Vogel 4158cfa0ad2SJack F VogelSupport 4168cfa0ad2SJack F Vogel======= 417*702cac6cSKevin BowlingFor general information, go to the Intel support website at: 418*702cac6cSKevin Bowlinghttp://www.intel.com/support/ 4198cfa0ad2SJack F Vogel 420*702cac6cSKevin BowlingIf an issue is identified with the released source code on a supported kernel 421*702cac6cSKevin Bowlingwith a supported adapter, email the specific information related to the issue 422*702cac6cSKevin Bowlingto freebsd@intel.com 4238cfa0ad2SJack F Vogel 4248cfa0ad2SJack F Vogel 425*702cac6cSKevin BowlingCopyright(c) 1999-2019 Intel Corporation. 4268cfa0ad2SJack F Vogel 427*702cac6cSKevin Bowling 428*702cac6cSKevin BowlingTrademarks 429*702cac6cSKevin Bowling========== 430*702cac6cSKevin BowlingIntel is a trademark or registered trademark of Intel Corporation or its 431*702cac6cSKevin Bowlingsubsidiaries in the United States and/or other countries. 4328cfa0ad2SJack F Vogel 4338cfa0ad2SJack F Vogel* Other names and brands may be claimed as the property of others. 434