From e6899cc80c3ceb7116d21d486b234bd8bd127a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Wed, 20 Apr 2016 16:11:34 +0100 Subject: [PATCH] add linuxPackages.dpdk: libs and drivers for fast packet processing --- pkgs/os-specific/linux/dpdk/default.nix | 40 +++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 42 insertions(+) create mode 100644 pkgs/os-specific/linux/dpdk/default.nix diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix new file mode 100644 index 00000000000..c93e0e80fa1 --- /dev/null +++ b/pkgs/os-specific/linux/dpdk/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, kernel, fetchurl }: + +assert lib.versionAtLeast kernel.version "3.18"; + +stdenv.mkDerivation rec { + name = "dpdk-${version}-${kernel.version}"; + version = "16.04"; + + src = fetchurl { + url = "http://dpdk.org/browse/dpdk/snapshot/dpdk-${version}.tar.gz"; + sha256 = "0yrz3nnhv65v2jzz726bjswkn8ffqc1sr699qypc9m78qrdljcfn"; + }; + + RTE_KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + RTE_TARGET = "x86_64-native-linuxapp-gcc"; + + enableParallelBuilding = true; + outputs = [ "out" "examples" ]; + + buildPhase = '' + make T=x86_64-native-linuxapp-gcc config + make T=x86_64-native-linuxapp-gcc install + make T=x86_64-native-linuxapp-gcc examples + ''; + + installPhase = '' + cp -pr x86_64-native-linuxapp-gcc/{app,lib,include,kmod} $out/ + + mkdir $examples + cp -pr examples/* $examples/ + ''; + + meta = with stdenv.lib; { + description = "Set of libraries and drivers for fast packet processing"; + homepage = http://dpdk.org/; + license = with licenses; [ lgpl21 gpl2 bsd2 ]; + platforms = platforms.linux; + maintainers = [ maintainers.iElectric ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8132ccd5aa5..7aa7e40508f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10652,6 +10652,8 @@ in cpupower = callPackage ../os-specific/linux/cpupower { }; + dpdk = callPackage ../os-specific/linux/dpdk { }; + e1000e = callPackage ../os-specific/linux/e1000e {}; v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };