From 52ad7f739095b18fc2da051c09fd1cb0b7d344a5 Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Sat, 19 May 2018 10:38:03 +0000 Subject: [PATCH 1/3] linuxPackages.dpdk: 17.05.1 -> 17.11.2 --- pkgs/os-specific/linux/dpdk/default.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix index 4bd50fdae40f..fd45e83c26b5 100644 --- a/pkgs/os-specific/linux/dpdk/default.nix +++ b/pkgs/os-specific/linux/dpdk/default.nix @@ -1,24 +1,22 @@ -{ stdenv, lib, kernel, fetchurl, pkgconfig, libvirt }: - -assert lib.versionAtLeast kernel.version "3.18"; +{ stdenv, kernel, fetchurl, pkgconfig, numactl }: stdenv.mkDerivation rec { name = "dpdk-${version}-${kernel.version}"; - version = "17.05.1"; + version = "17.11.2"; src = fetchurl { url = "http://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; - sha256 = "1w3nx5cqf8z600bdlbwz7brmdb5yn233qrqvv24kbmmxhbwp7qld"; + sha256 = "19m5l3jkrns8r1zbjb6ry18w50ff36kbl5b5g6pfcp9p57sfisd2"; }; nativeBuildInputs = [ pkgconfig ] ++ kernel.moduleBuildDependencies; - buildInputs = [ libvirt ]; + buildInputs = [ numactl ]; RTE_KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; RTE_TARGET = "x86_64-native-linuxapp-gcc"; # we need sse3 instructions to build - NIX_CFLAGS_COMPILE = [ "-march=core2" ]; + NIX_CFLAGS_COMPILE = [ "-msse3" ]; enableParallelBuilding = true; outputs = [ "out" "kmod" ]; From d3071137085a3440970a1659e15cc8fc9a675f4c Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Sat, 19 May 2018 12:36:22 +0000 Subject: [PATCH 2/3] linuxPackages.pktgen: 3.4.0 -> 3.5.0 --- pkgs/os-specific/linux/pktgen/Makefile.patch | 34 ----------------- pkgs/os-specific/linux/pktgen/default.nix | 40 ++++++++++++++------ 2 files changed, 28 insertions(+), 46 deletions(-) delete mode 100644 pkgs/os-specific/linux/pktgen/Makefile.patch diff --git a/pkgs/os-specific/linux/pktgen/Makefile.patch b/pkgs/os-specific/linux/pktgen/Makefile.patch deleted file mode 100644 index da948bcc5a08..000000000000 --- a/pkgs/os-specific/linux/pktgen/Makefile.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/app/Makefile b/app/Makefile -index 5078b9a..99b208a 100644 ---- a/app/Makefile -+++ b/app/Makefile -@@ -46,29 +46,10 @@ APP = pktgen - CFLAGS += -O3 -g $(WERROR_FLAGS) -fno-stack-protector - CFLAGS += -I$(RTE_SRCDIR) -I$(RTE_SRCDIR)/../lib/common - --dpdk_ver := $(RTE_SDK)/xusertools/dpdk-version.sh --pktgen_ver := $(RTE_SRCDIR)/../tools/dpdk-version.sh --ver_cmd := $(if $(wildcard $(dpdk_ver)),$(dpdk_ver),$(pktgen_ver)) --# $(info ver_cmd=$(ver_cmd)) -- --yy := $(shell $(ver_cmd) -yy) --# mm := $(shell $(ver_cmd) -mm) -- --# $(info yy=$(yy)) -- --ifeq ($(yy),17) - COMMON_PRE := $(RTE_SRCDIR)/../lib/common - LUA_PRE := $(RTE_SRCDIR)/../lib/lua/src - CLI_PRE := $(RTE_SRCDIR)/../lib/cli - GUI_PRE := $(RTE_SRCDIR)/../gui/gui --else --ifeq ($(yy),16) --COMMON_PRE := $(RTE_SRCDIR)/../lib/common/lib/common --LUA_PRE := $(RTE_SRCDIR)/../lib/lua/src/lib/lua/src --CLI_PRE := $(RTE_SRCDIR)/../lib/cli/lib/cli --GUI_PRE := $(RTE_SRCDIR)/../gui --endif --endif - - COMMON_LIB := $(COMMON_PRE)/$(RTE_TARGET) - LUA_LIB := $(LUA_PRE)/$(RTE_TARGET) diff --git a/pkgs/os-specific/linux/pktgen/default.nix b/pkgs/os-specific/linux/pktgen/default.nix index 9bc8967453b4..c443da7df3b4 100644 --- a/pkgs/os-specific/linux/pktgen/default.nix +++ b/pkgs/os-specific/linux/pktgen/default.nix @@ -1,34 +1,48 @@ -{ stdenv, fetchurl, dpdk, libpcap, utillinux -, pkgconfig +{ stdenv, lib, fetchurl, pkgconfig +, dpdk, libpcap, numactl, utillinux , gtk2, withGtk ? false }: -stdenv.mkDerivation rec { +let + + # pktgen needs a specific version of lua to apply its patch (see lib/lua/Makefile). + lua = rec { + name = "lua-5.3.4"; + basename = name + ".tar.gz"; + src = fetchurl { + url = "https://www.lua.org/ftp/${basename}"; + sha256 = "0320a8dg3aci4hxla380dx1ifkw8gj4gbw5c4dz41g1kh98sm0gn"; + }; + }; + +in stdenv.mkDerivation rec { name = "pktgen-${version}"; - version = "3.4.0"; + version = "3.5.0"; src = fetchurl { - url = "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-${version}.tar.gz"; - sha256 = "0fcyb56d4mkvchi5i8s3m210f5c3xa8zbjb08ranpa1a2k1kzfg5"; + url = "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-${version}.tar.xz"; + sha256 = "1gy99jr9dbwzi9pd3w5k673h3pfnbkz6rbzmrkwcyis72pnphy5z"; }; nativeBuildInputs = stdenv.lib.optionals withGtk [ pkgconfig ]; buildInputs = - [ dpdk libpcap ] + [ dpdk libpcap numactl ] ++ stdenv.lib.optionals withGtk [gtk2]; RTE_SDK = "${dpdk}"; RTE_TARGET = "x86_64-native-linuxapp-gcc"; GUI = stdenv.lib.optionalString withGtk "true"; - NIX_CFLAGS_COMPILE = [ "-march=core2" ]; + NIX_CFLAGS_COMPILE = [ "-msse3" ]; - patches = [ ./Makefile.patch ]; - - postPatch = '' - substituteInPlace lib/lua/src/luaconf.h --replace /usr/local $out + postPatch = let dpdkMajor = lib.versions.major dpdk.version; in '' + substituteInPlace app/Makefile --replace 'yy :=' 'yy := ${dpdkMajor} #' substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${utillinux}/bin/lscpu + + ln -s ${lua.src} lib/lua/${lua.basename} + make -C lib/lua get_tarball # unpack and patch + substituteInPlace lib/lua/${lua.name}/src/luaconf.h --replace /usr/local $out ''; installPhase = '' @@ -38,6 +52,8 @@ stdenv.mkDerivation rec { install -m 0644 Pktgen.lua $out/lib/lua/5.3 ''; + enableParallelBuilding = true; + meta = with stdenv.lib; { description = "Traffic generator powered by DPDK"; homepage = http://dpdk.org/; From fc10e188e2f51fa59504ad6441c750cbd03e03aa Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Sat, 19 May 2018 13:44:15 +0000 Subject: [PATCH 3/3] linuxPackages.odp-dpdk: 1.15.0.0 -> 1.19.0.0_DPDK_17.11 --- .../linux/odp-dpdk/configure.patch | 32 ------------------- pkgs/os-specific/linux/odp-dpdk/default.nix | 26 +++++++-------- .../linux/odp-dpdk/odp_crypto.patch | 18 ----------- 3 files changed, 11 insertions(+), 65 deletions(-) delete mode 100644 pkgs/os-specific/linux/odp-dpdk/configure.patch delete mode 100644 pkgs/os-specific/linux/odp-dpdk/odp_crypto.patch diff --git a/pkgs/os-specific/linux/odp-dpdk/configure.patch b/pkgs/os-specific/linux/odp-dpdk/configure.patch deleted file mode 100644 index 3dadc98e8342..000000000000 --- a/pkgs/os-specific/linux/odp-dpdk/configure.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 001ebfc2893b..7d19ebcd213f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -215,7 +215,7 @@ AC_SUBST([testdir]) - ########################################################################## - AM_CONDITIONAL([netmap_support], [test x$netmap_support = xyes ]) - AM_CONDITIONAL([PKTIO_DPDK], [test x$pktio_dpdk_support = xyes ]) --AM_CONDITIONAL([HAVE_PCAP], [test $have_pcap = yes]) -+AM_CONDITIONAL([HAVE_PCAP], [test x$have_pcap = xyes]) - AM_CONDITIONAL([DPDK_DEFAULT_DIR], [test "x${DPDK_DEFAULT_DIR}" = "x1"]) - AM_CONDITIONAL([test_installdir], [test "$testdir" != ""]) - AM_CONDITIONAL([cunit_support], [test x$cunit_support = xyes ]) -@@ -320,18 +320,6 @@ ODP_CFLAGS="$ODP_CFLAGS -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonli - ODP_CFLAGS="$ODP_CFLAGS -Wformat-security -Wundef -Wwrite-strings" - ODP_CFLAGS="$ODP_CFLAGS -std=gnu99" - --dnl Use -Werror in the checks below since Clang emits a warning instead of --dnl an error when it encounters an unknown warning option. --AX_CHECK_COMPILE_FLAG([-Wimplicit-fallthrough=0], -- [ODP_CFLAGS="$ODP_CFLAGS -Wimplicit-fallthrough=0"], -- [], [-Werror]) --AX_CHECK_COMPILE_FLAG([-Wformat-truncation=0], -- [ODP_CFLAGS="$ODP_CFLAGS -Wformat-truncation=0"], -- [], [-Werror]) --AX_CHECK_COMPILE_FLAG([-Wformat-overflow=0], -- [ODP_CFLAGS="$ODP_CFLAGS -Wformat-overflow=0"], -- [], [-Werror]) -- - # Extra flags for example to suppress certain warning types - ODP_CFLAGS="$ODP_CFLAGS $ODP_CFLAGS_EXTRA" - diff --git a/pkgs/os-specific/linux/odp-dpdk/default.nix b/pkgs/os-specific/linux/odp-dpdk/default.nix index a444243e802e..cf4f9df26777 100644 --- a/pkgs/os-specific/linux/odp-dpdk/default.nix +++ b/pkgs/os-specific/linux/odp-dpdk/default.nix @@ -1,31 +1,27 @@ -{ stdenv, fetchgit, autoreconfHook, openssl, libpcap, dpdk }: +{ stdenv, fetchurl, autoreconfHook, pkgconfig +, dpdk, libconfig, libpcap, numactl, openssl +}: stdenv.mkDerivation rec { name = "odp-dpdk-${version}"; - version = "1.15.0.0"; + version = "1.19.0.0_DPDK_17.11"; - src = fetchgit { - url = "https://git.linaro.org/lng/odp-dpdk.git"; - rev = "d8533b4e575d62c9f6f2caedd38d98a1a56fb8d3"; - sha256 = "1p09rw7dxxqcxxrdb8wbwp2imapyjvdbvap7s9km2i9hbd8ipdif"; + src = fetchurl { + url = "https://git.linaro.org/lng/odp-dpdk.git/snapshot/${name}.tar.gz"; + sha256 = "05bwjaxl9hqc6fbkp95nniq11g3kvzmlxw0bq55i7p2v35nv38px"; }; - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ openssl dpdk libpcap ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ dpdk libconfig libpcap numactl openssl ]; - RTE_SDK = "${dpdk}"; + RTE_SDK = dpdk; RTE_TARGET = "x86_64-native-linuxapp-gcc"; dontDisableStatic = true; configureFlags = [ "--disable-shared" - "--with-sdk-install-path=${dpdk}/${RTE_TARGET}" - ]; - - patches = [ - ./configure.patch - ./odp_crypto.patch + "--with-dpdk-path=${dpdk}" ]; meta = with stdenv.lib; { diff --git a/pkgs/os-specific/linux/odp-dpdk/odp_crypto.patch b/pkgs/os-specific/linux/odp-dpdk/odp_crypto.patch deleted file mode 100644 index 44ef155d69fb..000000000000 --- a/pkgs/os-specific/linux/odp-dpdk/odp_crypto.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/platform/linux-dpdk/odp_crypto.c b/platform/linux-dpdk/odp_crypto.c -index d95b157805dc..d13ad5bbde95 100644 ---- a/platform/linux-dpdk/odp_crypto.c -+++ b/platform/linux-dpdk/odp_crypto.c -@@ -900,11 +900,12 @@ int odp_crypto_session_create(odp_crypto_session_param_t *param, - /* Setup session */ - session = rte_cryptodev_sym_session_create(cdev_id, first_xform); - -- if (session == NULL) -+ if (session == NULL) { - /* remove the crypto_session_entry_t */ - memset(entry, 0, sizeof(*entry)); - free_session(entry); - return -1; -+ } - - entry->rte_session = (intptr_t)session; - entry->cipher_xform = cipher_xform;