From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B7563A0C4D; Thu, 7 Oct 2021 00:36:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5C779411B0; Thu, 7 Oct 2021 00:36:15 +0200 (CEST) Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by mails.dpdk.org (Postfix) with ESMTP id 08C1F4119A for ; Thu, 7 Oct 2021 00:36:13 +0200 (CEST) Received: by mail-pg1-f172.google.com with SMTP id g184so3767997pgc.6 for ; Wed, 06 Oct 2021 15:36:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pL+TQk9Gu0+4UvbSAACH+xSKQJ5/SXxPpt1fSUbUtxQ=; b=RG9GYWhyD2duozrw3WNZj6w8osnO5adR212GaAU9dA2MIZcSPSlaYLNxQum0t9evqh 9JXptFPgDuxhBABG3zjoumqIhtSXRNL0bXGVSBWCfAxpzRayYVYArFeHfytC1f1ahkIK u0D1GeSyzlqUqtSC3wOlkJzvhCBrQKcql6oSUAfdqai7bRVO6vNOOBuLy+GkYghr56yn QHG/XE0BpEy50uiDwM87pIesBZ2mdFei4owvysf7rPiZbzS0DG3qicHf8WNER7i+bU+6 G96sZOq2KLkNMDJKE2hQIDU0sywTfpAajzPNtz117rXCMko0vpwnfv8clCJewkkCXRJi ZDFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pL+TQk9Gu0+4UvbSAACH+xSKQJ5/SXxPpt1fSUbUtxQ=; b=bwdQbtkOu7ZDFKhN5e/xbs3GuBOls6V10um+TDa9e5kRcWoBV6FMqbS5/NhgK5hrnM LN3W8DhXDhXyVHPFFlI5m5VPeLkTMZmhzmMEnv+yM674eBDidYvU25F9TCQltCxq0sA5 cIal+ptEws4p8XjkAvNzwhnIpkHKD1tHk9zKsIINGHG13z1kcwsVQn6IqzwiDF44Kn7A MzZDh4bGLO6eawKh9LoC9JmTU7VmIKqN7WtUXfHx/fGEWFzI/aukxg+wY41pVmrXlxEx 5m2Lni0CM8l5616edmE1qnyewbIbe1DarNzyYApWXL77Ccz6AHc6D3d++yhWYXl8yXfs 2wJw== X-Gm-Message-State: AOAM530/lr/4a/h1BzW05vkC1uCy0O1TSuL1ibpuP8KFw6LDj9E9qgC2 /RQqVJqyY9EwLA/HAVZtHNR4K7ymvic= X-Google-Smtp-Source: ABdhPJwpF2xF56VCkJCBauGAn22psw3CA8YaCsOHODmfmLGgKO2CdTIpKLiatv0Hl4+Jw2QanqxTVg== X-Received: by 2002:a65:62c1:: with SMTP id m1mr499856pgv.339.1633559771752; Wed, 06 Oct 2021 15:36:11 -0700 (PDT) Received: from localhost.localdomain (ec2-44-237-21-18.us-west-2.compute.amazonaws.com. [44.237.21.18]) by smtp.gmail.com with ESMTPSA id k14sm22369191pga.65.2021.10.06.15.36.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Oct 2021 15:36:10 -0700 (PDT) From: William Tu To: dev@dpdk.org Cc: Pallavi Kadam , Dmitry Kozlyuk Date: Wed, 6 Oct 2021 22:35:44 +0000 Message-Id: <20211006223544.1882-5-u9012063@gmail.com> X-Mailer: git-send-email 2.33.0.windows.2 In-Reply-To: <20211006223544.1882-1-u9012063@gmail.com> References: <20211005170252.7-1-u9012063@gmail.com> <20211006223544.1882-1-u9012063@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v5 4/4] net/ixgbe: build on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch enables building the ixgbe driver for Windows. It also enables its dependencies on security and cryptodev. I tested on AWS using ixgbe VF device, using dpdk-testpmd. Signed-off-by: William Tu Acked-by: Pallavi Kadam Acked-by: Dmitry Kozlyuk --- doc/guides/nics/features/ixgbe.ini | 1 + doc/guides/nics/features/ixgbe_vf.ini | 1 + doc/guides/nics/ixgbe.rst | 19 +++++++++++++++++-- doc/guides/rel_notes/release_21_11.rst | 4 ++++ drivers/net/ixgbe/base/ixgbe_hv_vf.c | 1 + drivers/net/ixgbe/base/ixgbe_osdep.h | 9 +++++++++ drivers/net/ixgbe/base/meson.build | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 1 + drivers/net/ixgbe/ixgbe_flow.c | 2 +- drivers/net/ixgbe/ixgbe_tm.c | 2 +- drivers/net/ixgbe/meson.build | 9 +++------ 12 files changed, 41 insertions(+), 12 deletions(-) diff --git a/doc/guides/nics/features/ixgbe.ini b/doc/guides/nics/features/ixgbe.ini index aa947b510f..a29d01fe6f 100644 --- a/doc/guides/nics/features/ixgbe.ini +++ b/doc/guides/nics/features/ixgbe.ini @@ -52,6 +52,7 @@ Registers dump = Y Multiprocess aware = Y FreeBSD = Y Linux = Y +Windows = Y ARMv8 = Y x86-32 = Y x86-64 = Y diff --git a/doc/guides/nics/features/ixgbe_vf.ini b/doc/guides/nics/features/ixgbe_vf.ini index 32fb1b7ac8..9241aebd21 100644 --- a/doc/guides/nics/features/ixgbe_vf.ini +++ b/doc/guides/nics/features/ixgbe_vf.ini @@ -36,6 +36,7 @@ Registers dump = Y Multiprocess aware = Y FreeBSD = Y Linux = Y +Windows = Y ARMv8 = Y x86-32 = Y x86-64 = Y diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst index b82e634382..b7fdc52882 100644 --- a/doc/guides/nics/ixgbe.rst +++ b/doc/guides/nics/ixgbe.rst @@ -22,8 +22,8 @@ The following sections explain RX and TX constraints in the vPMD. RX Constraints ~~~~~~~~~~~~~~ -Prerequisites and Pre-conditions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Linux Prerequisites and Pre-conditions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following prerequisites apply: @@ -47,6 +47,21 @@ vPMD for RX would be disabled. By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32. +Windows Prerequisites and Pre-conditions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- Follow the DPDK `Getting Started Guide for Windows `_ to setup the basic DPDK environment. + +- Identify the IntelĀ® Ethernet adapter and get the latest NVM/FW version. + +- To access any IntelĀ® Ethernet hardware, load the NetUIO driver in place of existing built-in (inbox) driver. + +- To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository + `_. + +- Loading of private Dynamic Device Personalization (DDP) package is not supported on Windows. + + Feature not Supported by RX Vector PMD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst index dfc2cbdeed..efeffe37a0 100644 --- a/doc/guides/rel_notes/release_21_11.rst +++ b/doc/guides/rel_notes/release_21_11.rst @@ -85,6 +85,10 @@ New Features * Added DEV_RX_OFFLOAD_TIMESTAMP support. * Added timesync API support under scalar path. +* **Updated Intel ixgbe driver.** + + * Added Intel ixgbe support on Windows. + * **Updated Marvell cnxk ethdev driver.** * Added rte_flow support for dual VLAN insert and strip actions. diff --git a/drivers/net/ixgbe/base/ixgbe_hv_vf.c b/drivers/net/ixgbe/base/ixgbe_hv_vf.c index b7ad44ab8c..4572411d39 100644 --- a/drivers/net/ixgbe/base/ixgbe_hv_vf.c +++ b/drivers/net/ixgbe/base/ixgbe_hv_vf.c @@ -4,6 +4,7 @@ #include "ixgbe_vf.h" #include "ixgbe_hv_vf.h" +#include "ixgbe_osdep.h" /** * Hyper-V variant - just a stub. diff --git a/drivers/net/ixgbe/base/ixgbe_osdep.h b/drivers/net/ixgbe/base/ixgbe_osdep.h index cacf724198..6c25f608b1 100644 --- a/drivers/net/ixgbe/base/ixgbe_osdep.h +++ b/drivers/net/ixgbe/base/ixgbe_osdep.h @@ -16,10 +16,15 @@ #include #include #include +#include #include "../ixgbe_logs.h" #include "../ixgbe_bypass_defines.h" +#ifndef IPPROTO_SCTP +#define IPPROTO_SCTP 132 +#endif + #define ASSERT(x) if(!(x)) rte_panic("IXGBE: x") #define DELAY(x) rte_delay_us_sleep(x) @@ -43,12 +48,16 @@ #define false 0 #define true 1 +#ifndef RTE_EXEC_ENV_WINDOWS #define min(a,b) RTE_MIN(a,b) +#endif #define EWARN(hw, S, args...) DEBUGOUT1(S, ##args) /* Bunch of defines for shared code bogosity */ +#ifndef UNREFERENCED_PARAMETER #define UNREFERENCED_PARAMETER(_p) +#endif #define UNREFERENCED_1PARAMETER(_p) #define UNREFERENCED_2PARAMETER(_p, _q) #define UNREFERENCED_3PARAMETER(_p, _q, _r) diff --git a/drivers/net/ixgbe/base/meson.build b/drivers/net/ixgbe/base/meson.build index 22972c6b56..f6497014da 100644 --- a/drivers/net/ixgbe/base/meson.build +++ b/drivers/net/ixgbe/base/meson.build @@ -29,6 +29,6 @@ foreach flag: error_cflags endforeach base_lib = static_library('ixgbe_base', sources, - dependencies: static_rte_eal, + dependencies: [static_rte_eal, static_rte_net], c_args: c_args) base_objs = base_lib.extract_all_objects(recursive: true) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 47693c0c47..8b33897ca1 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -46,6 +45,7 @@ #include "ixgbe_rxtx.h" #include "base/ixgbe_type.h" #include "base/ixgbe_phy.h" +#include "base/ixgbe_osdep.h" #include "ixgbe_regs.h" /* diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index a0ce18ca24..645207e130 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -6,6 +6,7 @@ #define _IXGBE_ETHDEV_H_ #include +#include #include "base/ixgbe_type.h" #include "base/ixgbe_dcb.h" diff --git a/drivers/net/ixgbe/ixgbe_flow.c b/drivers/net/ixgbe/ixgbe_flow.c index 511b612f7f..27322ab903 100644 --- a/drivers/net/ixgbe/ixgbe_flow.c +++ b/drivers/net/ixgbe/ixgbe_flow.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -37,6 +36,7 @@ #include "base/ixgbe_api.h" #include "base/ixgbe_vf.h" #include "base/ixgbe_common.h" +#include "base/ixgbe_osdep.h" #include "ixgbe_ethdev.h" #include "ixgbe_bypass.h" #include "ixgbe_rxtx.h" diff --git a/drivers/net/ixgbe/ixgbe_tm.c b/drivers/net/ixgbe/ixgbe_tm.c index a8407e742e..ae03ea6e9d 100644 --- a/drivers/net/ixgbe/ixgbe_tm.c +++ b/drivers/net/ixgbe/ixgbe_tm.c @@ -665,7 +665,7 @@ ixgbe_node_add(struct rte_eth_dev *dev, uint32_t node_id, } /* check level */ if (level_id != RTE_TM_NODE_LEVEL_ID_ANY && - level_id != parent_node_type + 1) { + level_id != (uint32_t)parent_node_type + 1) { error->type = RTE_TM_ERROR_TYPE_NODE_PARAMS; error->message = "Wrong level"; return -EINVAL; diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build index 55ac91fcd1..162f8d5f46 100644 --- a/drivers/net/ixgbe/meson.build +++ b/drivers/net/ixgbe/meson.build @@ -1,12 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -if is_windows - build = false - reason = 'not supported on Windows' - subdir_done() -endif - cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS'] subdir('base') @@ -30,6 +24,9 @@ deps += ['hash', 'security'] if arch_subdir == 'x86' sources += files('ixgbe_rxtx_vec_sse.c') + if is_windows and cc.get_id() != 'clang' + cflags += ['-fno-asynchronous-unwind-tables'] + endif elif arch_subdir == 'arm' sources += files('ixgbe_rxtx_vec_neon.c') endif -- 2.33.0.windows.2