From ebf8284e25df46f6e2208af6b1010ac92b1ca54e Mon Sep 17 00:00:00 2001 From: Dmitry Teselkin Date: Thu, 11 May 2017 12:49:08 +0300 Subject: [PATCH] i40e version 1.6.42 Closes-Bug: #1674862 (based on commit ee8fcba24f4664195e7bc8e52663e3e4806150e2 from packages/xenial/i40e-dkms) Change-Id: I9a54bccd2a1700c9d39e29148fb813f5a8b38bd6 --- debian/README.Debian | 0 debian/changelog | 6 + debian/compat | 0 debian/control | 0 debian/copyright | 0 debian/dirs | 0 .../dkms.conf => debian/i40e-dkms.dkms | 8 +- ...-UTS_UBUNTU_ABI-to-3.13.0-30-generic.patch | 15 - debian/patches/series | 1 - debian/postinst | 57 - debian/prerm | 28 - debian/rules | 56 +- debian/source/format | 1 + i40e-dkms/i40e-1.5.19/SUMS | 46 - .../{i40e-1.5.19 => i40e-1.6.42}/COPYING | 0 i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/README | 273 +- i40e-dkms/i40e-1.6.42/SUMS | 47 + i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/i40e.7 | 4 + .../{i40e-1.5.19 => i40e-1.6.42}/i40e.spec | 42 +- .../{i40e-1.5.19 => i40e-1.6.42}/pci.updates | 39 +- .../scripts/dump_tables | 0 .../scripts/set_irq_affinity | 0 .../i40e-1.6.42/scripts/virt_perf_default | 197 ++ .../{i40e-1.5.19 => i40e-1.6.42}/src/Makefile | 42 +- .../src/Module.supported | 0 .../src/common.mk | 45 +- .../{i40e-1.5.19 => i40e-1.6.42}/src/i40e.h | 312 +- .../src/i40e_adminq.c | 24 +- .../src/i40e_adminq.h | 2 +- .../src/i40e_adminq_cmd.h | 149 +- .../src/i40e_alloc.h | 2 +- .../src/i40e_common.c | 1887 ++++-------- .../src/i40e_dcb.c | 328 +- .../src/i40e_dcb.h | 51 +- .../src/i40e_dcb_nl.c | 4 +- .../src/i40e_debugfs.c | 279 +- .../src/i40e_devids.h | 6 +- .../src/i40e_diag.c | 31 +- .../src/i40e_diag.h | 5 +- .../src/i40e_ethtool.c | 992 +++--- .../src/i40e_fcoe.c | 51 +- .../src/i40e_fcoe.h | 2 +- .../src/i40e_helper.h | 2 +- .../src/i40e_hmc.c | 2 +- .../src/i40e_hmc.h | 2 +- .../src/i40e_lan_hmc.c | 277 +- .../src/i40e_lan_hmc.h | 14 +- .../src/i40e_main.c | 2720 ++++++++++------- .../src/i40e_nvm.c | 90 +- .../src/i40e_osdep.h | 22 +- .../src/i40e_prototype.h | 133 +- .../src/i40e_ptp.c | 161 +- .../src/i40e_register.h | 2 +- .../src/i40e_status.h | 2 +- .../src/i40e_txrx.c | 689 +++-- .../src/i40e_txrx.h | 88 +- .../src/i40e_type.h | 292 +- .../src/i40e_virtchnl.h | 9 +- .../src/i40e_virtchnl_pf.c | 233 +- .../src/i40e_virtchnl_pf.h | 9 +- .../src/kcompat.c | 48 +- .../src/kcompat.h | 461 ++- 62 files changed, 4924 insertions(+), 5364 deletions(-) mode change 100755 => 100644 debian/README.Debian mode change 100755 => 100644 debian/changelog mode change 100755 => 100644 debian/compat mode change 100755 => 100644 debian/control mode change 100755 => 100644 debian/copyright mode change 100755 => 100644 debian/dirs rename i40e-dkms/i40e-1.5.19/dkms.conf => debian/i40e-dkms.dkms (57%) mode change 100755 => 100644 delete mode 100644 debian/patches/0001-mirantis-fix-pass-UTS_UBUNTU_ABI-to-3.13.0-30-generic.patch delete mode 100644 debian/patches/series delete mode 100755 debian/postinst delete mode 100755 debian/prerm mode change 100755 => 100644 debian/rules create mode 100644 debian/source/format delete mode 100755 i40e-dkms/i40e-1.5.19/SUMS rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/COPYING (100%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/README (84%) mode change 100755 => 100644 create mode 100644 i40e-dkms/i40e-1.6.42/SUMS rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/i40e.7 (99%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/i40e.spec (88%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/pci.updates (74%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/scripts/dump_tables (100%) rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/scripts/set_irq_affinity (100%) create mode 100755 i40e-dkms/i40e-1.6.42/scripts/virt_perf_default rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/Makefile (80%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/Module.supported (100%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/common.mk (82%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e.h (82%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_adminq.c (97%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_adminq.h (99%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_adminq_cmd.h (94%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_alloc.h (97%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_common.c (81%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_dcb.c (73%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_dcb.h (79%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_dcb_nl.c (98%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_debugfs.c (93%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_devids.h (92%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_diag.c (88%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_diag.h (89%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_ethtool.c (88%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_fcoe.c (97%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_fcoe.h (98%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_helper.h (98%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_hmc.c (99%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_hmc.h (99%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_lan_hmc.c (83%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_lan_hmc.h (89%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_main.c (86%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_nvm.c (95%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_osdep.h (87%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_prototype.h (78%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_ptp.c (85%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_register.h (99%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_status.h (98%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_txrx.c (88%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_txrx.h (85%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_type.h (85%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_virtchnl.h (98%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_virtchnl_pf.c (93%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/i40e_virtchnl_pf.h (95%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/kcompat.c (97%) mode change 100755 => 100644 rename i40e-dkms/{i40e-1.5.19 => i40e-1.6.42}/src/kcompat.h (91%) mode change 100755 => 100644 diff --git a/debian/README.Debian b/debian/README.Debian old mode 100755 new mode 100644 diff --git a/debian/changelog b/debian/changelog old mode 100755 new mode 100644 index 24929db..be8b0db --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +i40e-dkms (1.6.42-1~u14.04+mos1) mos; urgency=low + + * Update to version 1.6.42 + + -- Ivan Suzdal Thu, 23 Mar 2017 18:27:01 +0300 + i40e-dkms (1.5.19-1~u14.04+mos2) MOS; urgency=low * LP 1619632 bug fix. i40e-dkms is not built after kernel update diff --git a/debian/compat b/debian/compat old mode 100755 new mode 100644 diff --git a/debian/control b/debian/control old mode 100755 new mode 100644 diff --git a/debian/copyright b/debian/copyright old mode 100755 new mode 100644 diff --git a/debian/dirs b/debian/dirs old mode 100755 new mode 100644 diff --git a/i40e-dkms/i40e-1.5.19/dkms.conf b/debian/i40e-dkms.dkms old mode 100755 new mode 100644 similarity index 57% rename from i40e-dkms/i40e-1.5.19/dkms.conf rename to debian/i40e-dkms.dkms index ecd9019..ca42382 --- a/i40e-dkms/i40e-1.5.19/dkms.conf +++ b/debian/i40e-dkms.dkms @@ -1,9 +1,9 @@ +PACKAGE_NAME="i40e" +PACKAGE_VERSION="#MODULE_VERSION#" MAKE[0]="'make' -C src/ KSRC=/lib/modules/${kernelver}/build" CLEAN="make -C src/ clean" -BUILT_MODULE_NAME[0]=i40e -BUILT_MODULE_LOCATION[0]=src/ +BUILT_MODULE_NAME[0]="i40e" +BUILT_MODULE_LOCATION[0]="src/" DEST_MODULE_LOCATION[0]="/updates" -PACKAGE_NAME=i40e-dkms -PACKAGE_VERSION=1.5.19 REMAKE_INITRD=yes AUTOINSTALL=yes diff --git a/debian/patches/0001-mirantis-fix-pass-UTS_UBUNTU_ABI-to-3.13.0-30-generic.patch b/debian/patches/0001-mirantis-fix-pass-UTS_UBUNTU_ABI-to-3.13.0-30-generic.patch deleted file mode 100644 index aab4887..0000000 --- a/debian/patches/0001-mirantis-fix-pass-UTS_UBUNTU_ABI-to-3.13.0-30-generic.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/i40e-1.2.38/src/Makefile -+++ b/i40e-1.2.38/src/Makefile -@@ -103,6 +103,12 @@ - KVER_CODE := $(shell $(CC) $(EXTRA_CFLAGS) -E -dM $(VSP) 2> /dev/null |\ - grep -m 1 LINUX_VERSION_CODE | awk '{ print $$3 }' | sed 's/\"//g') - -+# Ubuntu kernel 3.13.0-30-generic does not have UTS_UBUNTU_RELEASE_ABI, but -+# already includes pkt_hash_types. Pass the UTS_UBUNTU_RELEASE_ABI to the compiler. -+ifeq ($(KVER),3.13.0-30-generic) -+ CFLAGS_EXTRA += -DUTS_UBUNTU_RELEASE_ABI=30 -+endif -+ - # set the install path before and after 3.2.0 - ifeq (1,$(shell [ $(KVER_CODE) -lt 197120 ] && echo 1 || echo 0)) - INSTDIR := /lib/modules/$(KVER)/kernel/drivers/net diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 3ec5e41..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -0001-mirantis-fix-pass-UTS_UBUNTU_ABI-to-3.13.0-30-generic.patch diff --git a/debian/postinst b/debian/postinst deleted file mode 100755 index c70881a..0000000 --- a/debian/postinst +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# Copyright (C) 2002-2005 Flavio Stanchina -# Copyright (C) 2005-2006 Aric Cyr -# Copyright (C) 2007 Mario Limonciello -# Copyright (C) 2009 Alberto Milone - -# MOS packages has a suffix in its name -# separated by the '~', which is actually -# recognized as a part of the package version. -# That's wrong and follows to DKMS fall during -# the installation the package. -# To fix it the CVERSION was extended with -# the string "| cut -d\~ -f1" cutting the suffix - -set -e - -NAME=i40e -PACKAGE_NAME=$NAME-dkms -DEB_NAME=$(echo $PACKAGE_NAME | sed 's,_,-,') -CVERSION=`dpkg-query -W -f='${Version}' $DEB_NAME | awk -F "-" '{print $1}' | cut -d\: -f2 | cut -d\~ -f1` -ARCH=`dpkg --print-architecture` - -dkms_configure () { - for POSTINST in /usr/lib/dkms/common.postinst "/usr/share/$PACKAGE_NAME/postinst"; do - if [ -f "$POSTINST" ]; then - "$POSTINST" "$NAME" "$CVERSION" "/usr/share/$PACKAGE_NAME" "$ARCH" "$2" - return $? - fi - echo "WARNING: $POSTINST does not exist." >&2 - done - echo "ERROR: DKMS version is too old and $PACKAGE_NAME was not" >&2 - echo "built with legacy DKMS support." >&2 - echo "You must either rebuild $PACKAGE_NAME with legacy postinst" >&2 - echo "support or upgrade DKMS to a more current version." >&2 - return 1 -} - -case "$1" in - configure) - dkms_configure - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/prerm b/debian/prerm deleted file mode 100755 index b130c79..0000000 --- a/debian/prerm +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -NAME=i40e -VERSION=1.5.19 - -set -e - -case "$1" in - remove|upgrade|deconfigure) - if [ "`dkms status -m $NAME`" ]; then - dkms remove -m $NAME -v $VERSION --all - fi - ;; - - failed-upgrade) - ;; - - *) - echo "prerm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -#DEBHELPER# - -exit 0 - - diff --git a/debian/rules b/debian/rules old mode 100755 new mode 100644 index 179c96a..192257f --- a/debian/rules +++ b/debian/rules @@ -1,54 +1,10 @@ #!/usr/bin/make -f -# -*- makefile -*- - -# Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +export VERSION := $(shell dpkg-parsechangelog | awk '/^Version/ {print $$2;}' | cut -d'-' -f1) +export NAME := i40e -DEB_NAME=i40e -NAME=i40e -VERSION=1.5.19 - -configure: configure-stamp -configure-stamp: - dh_testdir - touch configure-stamp - - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - $(MAKE) - touch $@ - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - -$(MAKE) clean - dh_clean - -install: build - dh_testdir - dh_testroot - dh_prep - dh_installdirs - $(MAKE) DESTDIR=$(CURDIR)/debian/$(DEB_NAME)-dkms NAME=$(NAME) VERSION=$(VERSION) install - -binary-arch: build install - -binary-indep: build install - dh_testdir - dh_testroot - dh_link - dh_strip - dh_compress - dh_fixperms - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb +%: + dh $@ --with dkms -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure +override_dh_dkms: + dh_dkms -V $(VERSION) diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/i40e-dkms/i40e-1.5.19/SUMS b/i40e-dkms/i40e-1.5.19/SUMS deleted file mode 100755 index 7eb81df..0000000 --- a/i40e-dkms/i40e-1.5.19/SUMS +++ /dev/null @@ -1,46 +0,0 @@ -36453 5 i40e-1.5.19/pci.updates -57941 4 i40e-1.5.19/src/i40e_helper.h -44588 1 i40e-1.5.19/src/Module.supported -29827 72 i40e-1.5.19/src/i40e_adminq_cmd.h -47545 149 i40e-1.5.19/src/kcompat.h -48944 84 i40e-1.5.19/src/i40e_debugfs.c -61620 91 i40e-1.5.19/src/i40e_txrx.c -22166 6 i40e-1.5.19/src/i40e_lan_hmc.h -09578 46 i40e-1.5.19/src/i40e_nvm.c -27994 7 i40e-1.5.19/src/Makefile -27208 30 i40e-1.5.19/src/i40e_adminq.c -07981 3 i40e-1.5.19/src/i40e_alloc.h -54442 78 i40e-1.5.19/src/i40e_virtchnl_pf.c -56064 7 i40e-1.5.19/src/i40e_dcb.h -59117 2 i40e-1.5.19/src/i40e_diag.h -52213 24 i40e-1.5.19/src/i40e_prototype.h -51547 23 i40e-1.5.19/src/i40e_ptp.c -17294 10 i40e-1.5.19/src/common.mk -10518 37 i40e-1.5.19/src/i40e_dcb.c -58990 5 i40e-1.5.19/src/i40e_osdep.h -14633 9 i40e-1.5.19/src/i40e_dcb_nl.c -25797 334 i40e-1.5.19/src/i40e_main.c -06064 364 i40e-1.5.19/src/i40e_register.h -36665 54 i40e-1.5.19/src/kcompat.c -20253 5 i40e-1.5.19/src/i40e_adminq.h -64861 6 i40e-1.5.19/src/i40e_virtchnl_pf.h -17075 47 i40e-1.5.19/src/i40e_fcoe.c -63972 8 i40e-1.5.19/src/i40e_hmc.h -30612 55 i40e-1.5.19/src/i40e_type.h -13567 135 i40e-1.5.19/src/i40e_ethtool.c -60171 4 i40e-1.5.19/src/i40e_status.h -23798 14 i40e-1.5.19/src/i40e_virtchnl.h -24081 6 i40e-1.5.19/src/i40e_diag.c -32236 2 i40e-1.5.19/src/i40e_devids.h -63581 11 i40e-1.5.19/src/i40e_hmc.c -20223 194 i40e-1.5.19/src/i40e_common.c -63399 41 i40e-1.5.19/src/i40e_lan_hmc.c -58183 4 i40e-1.5.19/src/i40e_fcoe.h -60497 36 i40e-1.5.19/src/i40e.h -10029 16 i40e-1.5.19/src/i40e_txrx.h -33977 7 i40e-1.5.19/scripts/set_irq_affinity -20875 2 i40e-1.5.19/scripts/dump_tables -02733 18 i40e-1.5.19/COPYING -52431 10 i40e-1.5.19/i40e.spec -65334 46 i40e-1.5.19/README -05363 3 i40e-1.5.19/i40e.7 diff --git a/i40e-dkms/i40e-1.5.19/COPYING b/i40e-dkms/i40e-1.6.42/COPYING old mode 100755 new mode 100644 similarity index 100% rename from i40e-dkms/i40e-1.5.19/COPYING rename to i40e-dkms/i40e-1.6.42/COPYING diff --git a/i40e-dkms/i40e-1.5.19/README b/i40e-dkms/i40e-1.6.42/README old mode 100755 new mode 100644 similarity index 84% rename from i40e-dkms/i40e-1.5.19/README rename to i40e-dkms/i40e-1.6.42/README index dd645cb..3774b4e --- a/i40e-dkms/i40e-1.5.19/README +++ b/i40e-dkms/i40e-1.6.42/README @@ -4,7 +4,7 @@ i40e Linux* Base Driver for the Intel(R) XL710 Ethernet Controller Family =============================================================================== -April 6, 2016 +November 28, 2016 =============================================================================== @@ -100,7 +100,9 @@ Identifying Your Adapter The driver in this release is compatible with devices based on the following: * Intel(R) Ethernet Controller X710 * Intel(R) Ethernet Controller XL710 - * Intel(R) Ethernet Controller X722 + * Intel(R) Ethernet Controller XXV710 + + For information on how to identify your adapter, go to the Adapter & Driver ID Guide at: @@ -114,42 +116,49 @@ following website and select your adapter. http://www.intel.com/support -SFP+ Devices with Pluggable Optics ----------------------------------- +SFP+ and QSFP+ Devices: +NOTE: +* Some Intel branded network adapters based on the X710/XL710 controller + may only support Intel branded modules for 40Gbps and 10Gbps. For other + connections based on the X710/XL710 controller, support is dependent on + your system board. Please see your vendor for details. Intel recommends + using Intel optics; other modules may function but are not validated by + Intel. Contact Intel for supported media types. + +Supplier Type Part Numbers SR Modules ----------- - Intel DUAL RATE 1G/10G SFP+ SR (bailed) E10GSFPSR - + Intel DUAL RATE 1G/10G SFP+ SR (bailed) E10GSFPSR LR Modules ----------- - Intel DUAL RATE 1G/10G SFP+ LR (bailed E10GSFPLR - + Intel DUAL RATE 1G/10G SFP+ LR (bailed) E10GSFPLR 1G SFP Modules --------------- -The following is a list of 3rd party SFP modules that have received some -testing. Not all modules are applicable to all devices. - -Supplier Type Part Numbers -Finisar 1000BASE-T SFP FCLF-8251-3 -Kinnex A 1000BASE-T SFP XSFP-T-RJ12-0101-DLL -Avago 1000BASE-T SFP ABCU-5710RZ - + The following is a list of 3rd party SFP modules that have received some + testing. Not all modules are applicable to all devices. + Finisar 1000BASE-T SFP FCLF-8251-3 + Kinnex A 1000BASE-T SFP XSFP-T-RJ12-0101-DLL + Avago 1000BASE-T SFP ABCU-5710RZ QSFP+ Modules -------------- -NOTE: Intel branded network adapters based on the X710/XL710 controller - (for example, Intel(R) Ethernet Converged Network Adapter XL710-Q1) support - the E40GQSFPLR module. For other connections based on the X710/XL710 - controller, support is dependent on your system board. Please see your vendor - for details. - - Intel TRIPLE RATE 1G/10G/40G QSFP+ SR (bailed) E40GQSFPSR - Intel TRIPLE RATE 1G/10G/40G QSFP+ LR (bailed) E40GQSFPLR - QSFP+ 1G speed is not supported on XL710 based devices. - -X710/XL710 Based SFP+ adapters support passive QSFP+ Direct Attach cables. -Intel recommends using Intel optics and cables. Other modules may function -but are not validated by Intel. Contact Intel for supported media types. + Intel TRIPLE RATE 1G/10G/40G QSFP+ SR (bailed) E40GQSFPSR + Intel TRIPLE RATE 1G/10G/40G QSFP+ LR (bailed) E40GQSFPLR + QSFP+ 1G speed is not supported on XL710 based devices. +SFP+ and QSFP+ Direct Attach Cables + X710/XL710 based SFP+/QSFP+ adapters support passive SFP+/QSFP+ Direct + Attach cables. Intel recommends using Intel(R) Ethernet SFP+/QSFP+ Twinaxial + Cables . Other cables may function but are not validated by Intel. Contact + Intel for supported media types. + X710 based SFP+ adapters support all passive and active limiting direct + attach cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 + specifications. + Intel(R) Ethernet SFP+ Twinaxial Cable XDACBL1M, XDACBL3M, XDACBL5M + Intel(R) Ethernet QSFP+ Breakout Cable X4DACBL1, X4DACBL3, X4DACBL5 + Intel(R) Ethernet QSFP+ Twinaxial Cable XLDACBL1, XLDACBL3, XLDACBL5 + +SFP+ Devices for XXV710-Based Adapters +-------------------------------------- + Intel(R) Ethernet SFP28 SR Optic E25GSFP28SR + Intel(R) Ethernet SFP28 Twinaxial Cable XXVDACBL1M, XXVDACBL2M, XXVDACBL3M + Intel(R) Ethernet QSFP28 to SFP28 Twinaxial XXV4DACBL1M, XXV4DACBL2M, XXV4DACBL3M + Breakout Cable ================================================================================ @@ -243,27 +252,44 @@ unless otherwise noted. max_vfs ------- +This parameter adds support for SR-IOV. It causes the driver to spawn up to +max_vfs worth of virtual functions. Valid Range: 1-32 (X710 based devices) 1-64 (XL710 based devices) + NOTE: This parameter is only used on kernel 3.7.x and below. On kernel 3.8.x and above, use sysfs to enable VFs. For example: #echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs //enable VFs #echo 0 > /sys/class/net/$dev/device/sriov_numvfs //disable VFs + The parameters for the driver are referenced by position. Thus, if you have a dual port adapter, or more than one adapter in your system, and want N virtual functions per port, you must specify a number for each port with each parameter separated by a comma. For example: - modprobe i40e max_vfs=4,1 + + modprobe i40e max_vfs=4 + +This will spawn 4 VFs on the first port. + + modprobe i40e max_vfs=2,4 + +This will spawn 2 VFs on the first port and 4 VFs on the second port. + NOTE: Caution must be used in loading the driver with these parameters. Depending on your system configuration, number of slots, etc., it is impossible to predict in all cases where the positions would be on the command line. -This parameter adds support for SR-IOV. It causes the driver to spawn up to -max_vfs worth of virtual functions. + +NOTE: Neither the device nor the driver control how VFs are mapped into config +space. Bus layout will vary by operating system. On operating systems that +support it, you can check sysfs to find the mapping. + + Some hardware configurations support fewer SR-IOV instances, as the whole XL710 controller (all functions) is limited to 128 SR-IOV interfaces in total. + NOTE: When SR-IOV mode is enabled, hardware VLAN filtering and VLAN tag stripping/insertion will remain enabled. Please remove the old VLAN filter before the new VLAN filter is added. For example, @@ -321,10 +347,10 @@ to set the VF to promiscuous mode. Where eth2 is a VF interface in the VM NOTE: By default, the ethtool priv-flag vf-true-promisc-support is set to - “off”,meaning that promiscuous mode for the VF will be limited. To set the + "off",meaning that promiscuous mode for the VF will be limited. To set the promiscuous mode for the VF to true promiscuous and allow the VF to see all ingress traffic, use the following command. - #ethtool –set-priv-flags p261p1 vf-true-promisc-support on + #ethtool -set-priv-flags p261p1 vf-true-promisc-support on The vf-true-promisc-support priv-flag does not enable promiscuous mode; rather, it designates which type of promiscuous mode (limited or true) you will get when you enable promiscuous mode using the ip link commands @@ -336,7 +362,7 @@ to set the VF to promiscuous mode. Now add a VLAN interface on the VF interface. #ip link add link eth2 name eth2.100 type vlan id 100 -Note that the order in which you set the VF to promiscuous mode and add +Note that the order in which you set the VF?to promiscuous mode and add the VLAN interface does not matter (you can do either first). The end result in this example is that the VF will get all traffic that is tagged with VLAN 100. @@ -353,15 +379,15 @@ The Flow Director performs the following tasks: - Enables tight control on routing a flow in the platform. - Matches flows and CPU cores for flow affinity. - Supports multiple parameters for flexible flow classification and load - balancing (in SFP mode only). + balancing (in SFP mode only). NOTES: - An included script (set_irq_affinity) automates setting the IRQ to CPU affinity. - - The Linux i40e driver supports the following flow types: IPv4, TCPv4, and + - The Linux i40e driver supports the following flow types: IPv4, TCPv4, and UDPv4. For a given flow type, it supports valid combinations of - IP addresses (source or destination) and UDP/TCP ports (source and + IP addresses (source or destination) and UDP/TCP ports (source and destination). For example, you can supply only a source IP address, a source IP address and a destination port, or any combination of one or more of these four parameters. @@ -386,7 +412,7 @@ ethtool commands: # ethtool -N ethX flow-type tcp4 src-ip 192.168.10.1 dst-ip \ 192.168.10.2 src-port 2000 dst-port 2001 action 2 [loc 1] - To set a filter using only the source and destination IP address: + To set a filter using only the source and destination IP?address: # ethtool -N ethX flow-type tcp4 src-ip 192.168.10.1 dst-ip \ 192.168.10.2 action 2 [loc 1] @@ -462,7 +488,7 @@ Cloud Filter Support -------------------- On a complex network that supports multiple types of traffic (such as for storage as well as cloud), cloud filter support allows you to send one type of - traffic (for example, the storage traffic) to the Physical Function (PF) and + traffic (for example, the storage traffic) to the Physical Function (PF) and another type (say, the cloud traffic) to a Virtual Function (VF). Because cloud networks are typically VXLAN/Geneve-based, you can define a cloud filter to identify VXLAN/Geneve packets and send them to a queue in the VF to be @@ -475,7 +501,7 @@ NOTES: - The "action -1" option, which drops matching packets in regular Flow Director filters, is not available to drop packets when used with cloud filters. - - For IPv4 and ether flow-types, cloud filters cannot be used for TCP or + - For IPv4 and ether flow-types, cloud filters cannot be used for TCP?or UDP filters. - Cloud filters can be used as a method for implementing queue splitting in the PF. @@ -494,7 +520,7 @@ The following filters are supported: L3 filters Application Destination IP -Use ethtool’s flow director and user defined (user-def) options to define +Use ethtool's flow director and user defined (user-def) options to define cloud filters for tunneled packets (VF) and L3 filters for non-tunneled packets (PF or VF). In this case, the user-def field specifies that a cloud filter is being programmed instead of a Flow Director filter. Note that this @@ -513,7 +539,7 @@ For regular Flow Director filters: For L3 filters (non-tunneled packets): - - “user-def 0xffffffff00000002” (no Tenant ID/VNI specified in the upper + - "user-def 0xffffffff00000002" (no Tenant ID/VNI specified in the upper 32 bits of the user-def field and send to VF id 2) - Only L3 parameters (src-IP, dst-IP) are considered @@ -522,7 +548,7 @@ For L3 filters (non-tunneled packets): ethtool -N p4p2 flow-type ip4 src-ip 192.168.42.13 dst-ip 192.168.42.33 / src-port 12344 dst-port 12344 user-def 0xffffffff00000001 loc 3 Redirect traffic coming from 192.168.42.13 port 12344 with destination - 192.168.42.33 port 12344 into VF id 1, and call this “rule 3” + 192.168.42.33 port 12344 into VF id 1, and call this ?rule 3? For cloud filters (tunneled packets): @@ -531,29 +557,29 @@ For cloud filters (tunneled packets): if specified or required. - The lower 32 bits of the 'user-def' field can be used to specify the VF ID. If the ID is greater than the maximum number of VFs currently - enabled then the ID will default back to the main VSI. - - Cloud filters can be defined with inner MAC, outer MAC, inner IP address, + enabled then the ID will default back to the main VSI. + - Cloud filters can be defined with inner MAC, outer MAC, inner IP address, inner VLAN, and VNI as part of the cloud tuple. Cloud filters filter on - destination (not source) MAC and IP. The destination and source MAC + destination (not source) MAC and IP. The destination and source MAC address fields in the ethtool command are overloaded as dst = outer, - src = inner MAC address to facilitate tuple definition for a cloud filter. + src = inner MAC address to facilitate tuple definition for a cloud filter. - The 'loc' parameter specifies the rule number of the filter as being stored in the base driver Example: ethtool -N p4p2 flow-type ip4 src-ip 192.168.42.13 dst-ip 192.168.42.33 / - src-port 12344 dst-port 12344 user-def 0x2200000001 loc 38 + src-port 12344 dst-port 12344 user-def 0x0000000001 loc 38 Redirect traffic on VXLAN using tunnel id 34 (hex 0x22) coming from 192.168.42.13 port 12344 with destination 192.168.42.33 port 12344 into - VF id 1, and call this “rule 38” + VF id 1, and call this "rule 38" NOTE: If the VF id given is larger than the number of active VFs (e.g. if you set num_vfs to 8 and use VF id 12 in the ethtool command) the traffic will be redirected to the PF rather than to the VF. To see the list of filters currently present: ethtool <-u|-n> ethX - NOTE: For cloud filters in which the specified VF is greater than + NOTE: For cloud filters in which the specified VF is greater than the number of VFs supported, the cloud filter will send traffic to the PF. However, the driver does not store the specified VF number, so in this case the ethtool -n command will display @@ -606,6 +632,8 @@ permanent by adding 'MTU=9000' to the file: /etc/sysconfig/network-scripts/ifcfg-eth for RHEL or to the file /etc/sysconfig/network/ for SLES. + + NOTES: - The maximum MTU setting for Jumbo Frames is 9706. This value coincides with the maximum Jumbo Frames size of 9728 bytes. @@ -614,6 +642,7 @@ NOTES: when allocating receive packets. + ethtool ------- The driver utilizes the ethtool interface for driver configuration and @@ -642,6 +671,50 @@ rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 m|v|t|s|d|f|n|r.. n Hash on bytes 2 and 3 of the Layer 4 header of the rx packet. +Speed and Duplex Configuration +------------------------------ + +In addressing speed and duplex configuration issues, you need to +distinguish between copper-based adapters and fiber-based adapters. + +In the default mode, an Intel(R) Network Adapter using copper connections +will attempt to auto-negotiate with its link partner to determine the best +setting. If the adapter cannot establish link with the link partner using +auto-negotiation, you may need to manually configure the adapter and link +partner to identical settings to establish link and pass packets. This +should only be needed when attempting to link with an older switch that +does not support auto-negotiation or one that has been forced to a specific +speed or duplex mode. Your link partner must match the setting you choose. +1 Gbps speeds and higher cannot be forced. Use the autonegotiation +advertising setting to manually set devices for 1 Gbps and higher. + +NOTE: You cannot set the speed for Intel(R) Ethernet Network Adapter +XXV710 based devices. + + + + + + +Speed, duplex, and autonegotiation advertising are configured through +the ethtool* utility. ethtool is included with all versions of Red Hat +after Red Hat 7.2. For the latest version, download and install +ethtool from the following website: + + http://ftp.kernel.org/pub/software/network/ethtool/ + + +Caution: Only experienced network administrators should force speed and +duplex or change autonegotiation advertising manually. The settings at +the switch must always match the adapter settings. Adapter performance +may suffer or your adapter may not operate if you configure the adapter +differently from your switch. + +An Intel(R) Network Adapter using fiber-based connections, however, will not +attempt to auto-negotiate with its link partner since those adapters operate +only in full duplex and only at their native speed. + + NAPI ---- NAPI (Rx polling mode) is supported in the i40e driver. @@ -665,16 +738,21 @@ Use ethtool to change the flow control settings. ethtool: ethtool -A eth? autoneg off rx on tx on + + + NOTE: You must have a flow control capable link partner. + + RSS Hash Flow ------------- Allows you to set the hash bytes per flow type and any combination of one or more options for Receive Side Scaling (RSS) hash byte configuration. -#ethtool –N rx-flow-hash