From 118e827b0e22414479dc532db88281fd12ff6ad9 Mon Sep 17 00:00:00 2001 From: WeebDataHoarder <57538841+WeebDataHoarder@users.noreply.github.com> Date: Fri, 13 Sep 2019 18:53:56 +0000 Subject: [PATCH] Intel release 0.27.1 --- README | 264 ++++----- SUMS | 69 +-- fm10k.7 | 14 +- fm10k.spec | 13 +- pci.updates | 2 +- scripts/set_irq_affinity | 44 +- src/Makefile | 2 +- src/common.mk | 10 +- src/fm10k.h | 12 +- src/fm10k_common.c | 2 +- src/fm10k_common.h | 2 +- src/fm10k_dcbnl.c | 6 +- src/fm10k_debugfs.c | 4 +- src/fm10k_ethtool.c | 14 +- src/fm10k_ies.c | 2 +- src/fm10k_iov.c | 60 ++- src/fm10k_main.c | 62 ++- src/fm10k_mbx.c | 13 +- src/fm10k_mbx.h | 2 +- src/fm10k_netdev.c | 31 +- src/fm10k_osdep.h | 22 +- src/fm10k_param.c | 6 +- src/fm10k_pci.c | 49 +- src/fm10k_pf.c | 21 +- src/fm10k_pf.h | 2 +- src/fm10k_tlv.c | 10 +- src/fm10k_tlv.h | 6 +- src/fm10k_type.h | 3 +- src/fm10k_uio.c | 2 +- src/fm10k_vf.c | 34 +- src/fm10k_vf.h | 2 +- src/kcompat.c | 156 +++++- src/kcompat.h | 1108 ++++++++++++++++++++++++++++++-------- src/kcompat_overflow.h | 315 +++++++++++ 34 files changed, 1773 insertions(+), 591 deletions(-) create mode 100644 src/kcompat_overflow.h diff --git a/README b/README index 7ea9b02..e3cee5d 100644 --- a/README +++ b/README @@ -3,7 +3,7 @@ README for Intel(R) Ethernet Switch Host Interface Driver =============================================================================== -February 23, 2017 +November 26, 2018 =============================================================================== @@ -17,26 +17,26 @@ Contents - Known Issues -================================================================================ - - Important Notes ---------------- +=============== Configuring SR-IOV for improved network security ------------------------------------------------ -In a virtualized environment, on Intel(R) Ethernet Server Adapters that support -SR-IOV, the virtual function (VF) may be subject to malicious behavior. +In a virtualized environment, on Intel(R) Ethernet Network Adapters that +support SR-IOV, the virtual function (VF) may be subject to malicious behavior. Software-generated layer two frames, like IEEE 802.3x (link flow control), IEEE 802.1Qbb (priority based flow-control), and others of this type, are not expected and can throttle traffic between the host and the virtual switch, -reducing performance. To resolve this issue, configure all SR-IOV enabled ports -for VLAN tagging. This configuration allows unexpected, and potentially -malicious, frames to be dropped. +reducing performance. To resolve this issue, and to ensure isolation from +unintended traffic streams, configure all SR-IOV enabled ports for VLAN tagging +from the administrative interface on the PF. This configuration allows +unexpected, and potentially malicious, frames to be dropped. See "Configuring +VLAN Tagging on SR-IOV Enabled Adapter Ports" in this README for configuration +instructions. Overview --------- +======== This driver supports kernel versions 2.6.32 and newer. Driver information can be obtained using ethtool, lspci, and iproute2 ip. @@ -61,35 +61,59 @@ that is electrically bifurcated into two x8 ports. Without a BIOS that supports bifurcation, only 1 port is available. -================================================================================ - - Building and Installation -------------------------- -To build a binary RPM* package of this driver, run 'rpmbuild -tb -fm10k-.tar.gz', where is the version number for the driver tar -file. - -Note: For the build to work properly, the currently running kernel MUST match -the version and configuration of the installed kernel sources. If you have just -recompiled the kernel reboot the system before building. - +========================= +To build a binary RPM package of this driver +-------------------------------------------- Note: RPM functionality has only been tested in Red Hat distributions. -_lbank_line_ -1. Move the base driver tar file to the directory of your choice. For - example, use '/home/username/fm10k' or '/usr/local/src/fm10k'. +1. Run the following command, where is the version number for the + driver tar file. + + # rpmbuild -tb fm10k-.tar.gz + + NOTE: For the build to work properly, the currently running kernel MUST + match the version and configuration of the installed kernel sources. If + you have just recompiled the kernel, reboot the system before building. + +2. After building the RPM, the last few lines of the tool output contain the + location of the RPM file that was built. Install the RPM with one of the + following commands, where is the location of the RPM file: + + # rpm -Uvh + or + # dnf/yum localinstall + +NOTES: +- To compile the driver on some kernel/arch combinations, you may need to +install a package with the development version of libelf (e.g. libelf-dev, +libelf-devel, elfutilsl-libelf-devel). +- When compiling an out-of-tree driver, details will vary by distribution. +However, you will usually need a kernel-devel RPM or some RPM that provides the +kernel headers at a minimum. To find the kernel-devel header sources for a +particular kernel, you will usually fill in the link at /lib/modules/'uname +-r'/build. + + +To manually build the driver +---------------------------- +1. Move the base driver tar file to the directory of your choice. + For example, use '/home/username/fm10k' or '/usr/local/src/fm10k'. 2. Untar/unzip the archive, where is the version number for the driver tar file: - tar zxf fm10k-.tar.gz + + # tar zxf fm10k-.tar.gz 3. Change to the driver src directory, where is the version number for the driver tar: - cd fm10k-/src/ + + # cd fm10k-/src/ 4. Compile the driver module: + # make install + The binary will be installed as: /lib/modules//updates/drivers/net/ethernet/intel/fm10k/fm10k.ko @@ -97,51 +121,57 @@ VERSION>/updates/drivers/net/ethernet/intel/fm10k/fm10k.ko The install location listed above is the default location. This may differ for various Linux distributions. -5. Load the module using the modprobe command: - modprobe [parameter=port1_value,port2_value] +5. Load the module using the modprobe command. - Make sure that any older fm10k drivers are removed from the kernel before - loading the new module: - rmmod fm10k; modprobe fm10k + To check the version of the driver and then load it: + + # modinfo fm10k + # modprobe fm10k [parameter=port1_value,port2_value] + + Alternately, make sure that any older fm10k drivers are removed from the + kernel before loading the new module: + + # rmmod fm10k; modprobe fm10k 6. Assign an IP address to the interface by entering the following, where ethX is the interface name that was shown in dmesg after modprobe: - - ip address add / dev ethX + + # ip address add / dev ethX NOTE: Before proceeding, ensure that netdev is enabled and that a switch manager is running. To enable netdev, use one of the following commands: - #ifconfig up + # ifconfig up or - #ip link set up + # ip link set up 7. Verify that the interface works. Enter the following, where IP_address is the IP address for another machine on the same subnet as the interface that is being tested: - ping + + # ping Note: For certain distributions like (but not limited to) RedHat Enterprise -Linux 7 and Ubuntu, once the driver is installed the initrd/initramfs file may +Linux 7 and Ubuntu, once the driver is installed, the initrd/initramfs file may need to be updated to prevent the OS loading old versions of the fm10k driver. The dracut utility may be used on RedHat distributions: # dracut --force + For Ubuntu: # update-initramfs -u -================================================================================ - - Command Line Parameters ------------------------ +======================= If the driver is built as a module, the following optional parameters are used by entering them on the command line with the modprobe command using this syntax: -modprobe fm10k [