drivers/net: build i40e and mlx5 on Windows

Allows i40e and mlx5 PMDs to compile on Windows and disable other drivers.

Disable few i40e warnings with Clang such as comparison of integers of
different signs and macro redefinitions.

Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
Acked-by: Tal Shnaiderman <talshn@nvidia.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
Pallavi Kadam 2020-12-21 16:45:11 -08:00 committed by Thomas Monjalon
parent edd66d57d5
commit b9d60b5434
44 changed files with 247 additions and 9 deletions

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2019 Intel Corporation # Copyright(c) 2019 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files('rte_eth_af_xdp.c') sources = files('rte_eth_af_xdp.c')
bpf_dep = dependency('libbpf', required: false) bpf_dep = dependency('libbpf', required: false)

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
headers = files('rte_pmd_ark.h') headers = files('rte_pmd_ark.h')
sources = files('ark_ddm.c', sources = files('ark_ddm.c',

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Aquantia Corporation # Copyright(c) 2018 Aquantia Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files( sources = files(
'atl_rxtx.c', 'atl_rxtx.c',
'atl_ethdev.c', 'atl_ethdev.c',

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
dep = dependency('zlib', required: false) dep = dependency('zlib', required: false)
build = dep.found() build = dep.found()
reason = 'missing dependency, "zlib"' reason = 'missing dependency, "zlib"'

View File

@ -2,6 +2,12 @@
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
# Copyright(c) 2020 Broadcom # Copyright(c) 2020 Broadcom
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
headers = files('rte_pmd_bnxt.h') headers = files('rte_pmd_bnxt.h')
includes += include_directories('tf_ulp') includes += include_directories('tf_ulp')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
name = 'bond' #, james bond :-) name = 'bond' #, james bond :-)
sources = files('rte_eth_bond_api.c', 'rte_eth_bond_pmd.c', 'rte_eth_bond_flow.c', sources = files('rte_eth_bond_api.c', 'rte_eth_bond_pmd.c', 'rte_eth_bond_flow.c',
'rte_eth_bond_args.c', 'rte_eth_bond_8023ad.c', 'rte_eth_bond_alb.c') 'rte_eth_bond_args.c', 'rte_eth_bond_8023ad.c', 'rte_eth_bond_alb.c')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files('cxgbe_ethdev.c', sources = files('cxgbe_ethdev.c',
'cxgbe_main.c', 'cxgbe_main.c',
'cxgbevf_ethdev.c', 'cxgbevf_ethdev.c',

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files('ena_ethdev.c', sources = files('ena_ethdev.c',
'base/ena_com.c', 'base/ena_com.c',
'base/ena_eth_com.c') 'base/ena_eth_com.c')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Cisco Systems, Inc. # Copyright(c) 2018 Cisco Systems, Inc.
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files( sources = files(
'base/vnic_cq.c', 'base/vnic_cq.c',
'base/vnic_dev.c', 'base/vnic_dev.c',

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
cflags += '-std=gnu99' cflags += '-std=gnu99'
cflags += '-D_DEFAULT_SOURCE' cflags += '-D_DEFAULT_SOURCE'
cflags += '-D_XOPEN_SOURCE=700' cflags += '-D_XOPEN_SOURCE=700'

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Huawei Technologies Co., Ltd # Copyright(c) 2017 Huawei Technologies Co., Ltd
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -20,6 +20,7 @@
#include <rte_io.h> #include <rte_io.h>
#include "../i40e_logs.h" #include "../i40e_logs.h"
#include "i40e_status.h"
#define INLINE inline #define INLINE inline
#define STATIC static #define STATIC static
@ -67,6 +68,15 @@ typedef enum i40e_status_code i40e_status;
#define false 0 #define false 0
#define true 1 #define true 1
/* Avoid macro redefinition warning on Windows */
#ifdef RTE_EXEC_ENV_WINDOWS
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
#endif
#define min(a,b) RTE_MIN(a,b) #define min(a,b) RTE_MIN(a,b)
#define max(a,b) RTE_MAX(a,b) #define max(a,b) RTE_MAX(a,b)

View File

@ -1505,7 +1505,8 @@ i40evf_handle_aq_msg(struct rte_eth_dev *dev)
info.msg_len); info.msg_len);
else { else {
/* read message and it's expected one */ /* read message and it's expected one */
if (msg_opc == vf->pend_cmd) { if ((volatile uint32_t)msg_opc ==
vf->pend_cmd) {
vf->cmd_retval = msg_ret; vf->cmd_retval = msg_ret;
/* prevent compiler reordering */ /* prevent compiler reordering */
rte_compiler_barrier(); rte_compiler_barrier();

View File

@ -354,7 +354,8 @@ i40e_hash_get_pattern_type(const struct rte_flow_item pattern[],
} }
/* Check the previous item allows this sub-item. */ /* Check the previous item allows this sub-item. */
if (prev_item_type >= RTE_DIM(pattern_next_allow_items) || if (prev_item_type >= (enum rte_flow_item_type)
RTE_DIM(pattern_next_allow_items) ||
!(pattern_next_allow_items[prev_item_type] & !(pattern_next_allow_items[prev_item_type] &
BIT_ULL(pattern->type))) BIT_ULL(pattern->type)))
goto not_sup; goto not_sup;
@ -372,7 +373,8 @@ i40e_hash_get_pattern_type(const struct rte_flow_item pattern[],
} }
prev_item_type = last_item_type; prev_item_type = last_item_type;
assert(last_item_type < RTE_DIM(pattern_item_header)); assert(last_item_type < (enum rte_flow_item_type)
RTE_DIM(pattern_item_header));
item_hdr = pattern_item_header[last_item_type]; item_hdr = pattern_item_header[last_item_type];
assert(item_hdr); assert(item_hdr);

View File

@ -12,7 +12,7 @@
#include "i40e_rxtx.h" #include "i40e_rxtx.h"
#include "i40e_rxtx_vec_common.h" #include "i40e_rxtx_vec_common.h"
#include <x86intrin.h> #include <rte_vect.h>
#ifndef __INTEL_COMPILER #ifndef __INTEL_COMPILER
#pragma GCC diagnostic ignored "-Wcast-qual" #pragma GCC diagnostic ignored "-Wcast-qual"

View File

@ -554,7 +554,7 @@ i40e_node_add(struct rte_eth_dev *dev, uint32_t node_id,
} }
/* check level */ /* check level */
if (level_id != RTE_TM_NODE_LEVEL_ID_ANY && 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->type = RTE_TM_ERROR_TYPE_NODE_PARAMS;
error->message = "Wrong level"; error->message = "Wrong level";
return -EINVAL; return -EINVAL;

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Luca Boccassi <bluca@debian.org> # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
cflags += ['-Wno-strict-aliasing'] cflags += ['-Wno-strict-aliasing']
includes += include_directories('../../common/iavf') includes += include_directories('../../common/iavf')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2019-2020 Intel Corporation # Copyright(c) 2019-2020 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) # SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
# Copyright(c) 2019 Pensando # Copyright(c) 2019 Pensando
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files( sources = files(
'ionic_mac_api.c', 'ionic_mac_api.c',
'ionic_rx_filter.c', 'ionic_rx_filter.c',

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2019 Intel Corporation # Copyright(c) 2019 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
# #
# Add the experimenatal APIs called from this PMD # Add the experimenatal APIs called from this PMD
# rte_eth_switch_domain_alloc() # rte_eth_switch_domain_alloc()

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS'] cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
subdir('base') subdir('base')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
# this driver can be built if-and-only-if KNI library is buildable # this driver can be built if-and-only-if KNI library is buildable
build = dpdk_conf.has('RTE_LIB_KNI') build = dpdk_conf.has('RTE_LIB_KNI')
reason = 'missing dependency, DPDK KNI library' reason = 'missing dependency, DPDK KNI library'

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files('base/lio_23xx_vf.c', sources = files('base/lio_23xx_vf.c',
'base/lio_mbox.c', 'base/lio_mbox.c',
'lio_ethdev.c', 'lio_ethdev.c',

View File

@ -1,9 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
subdir_done()
endif
drivers = ['af_packet', drivers = ['af_packet',
'af_xdp', 'af_xdp',

View File

@ -3,6 +3,12 @@
# Copyright(c) 2018 Semihalf. # Copyright(c) 2018 Semihalf.
# All rights reserved. # All rights reserved.
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
dep = dependency('libmusdk', required: false) dep = dependency('libmusdk', required: false)
if not dep.found() if not dep.found()
build = false build = false

View File

@ -3,6 +3,12 @@
# Copyright(c) 2018 Semihalf. # Copyright(c) 2018 Semihalf.
# All rights reserved. # All rights reserved.
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
dep = dependency('libmusdk', required: false) dep = dependency('libmusdk', required: false)
if not dep.found() if not dep.found()
build = false build = false

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Microsoft Corporation # Copyright(c) 2018 Microsoft Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
build = dpdk_conf.has('RTE_BUS_VMBUS') build = dpdk_conf.has('RTE_BUS_VMBUS')
reason = 'missing dependency, DPDK VMBus driver' reason = 'missing dependency, DPDK VMBus driver'
sources = files('hn_ethdev.c', 'hn_rxtx.c', 'hn_rndis.c', 'hn_nvs.c', 'hn_vf.c') sources = files('hn_ethdev.c', 'hn_rxtx.c', 'hn_rndis.c', 'hn_nvs.c', 'hn_vf.c')

View File

@ -3,6 +3,12 @@
# Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com> # Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com>
# All rights reserved. # All rights reserved.
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
dep = dependency('netcope-common', required: false) dep = dependency('netcope-common', required: false)
reason = 'missing dependency, "libnfb"' reason = 'missing dependency, "libnfb"'
build = dep.found() build = dep.found()

View File

@ -1,4 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files('rte_eth_null.c') sources = files('rte_eth_null.c')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Cavium, Inc # Copyright(c) 2017 Cavium, Inc
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -2,6 +2,12 @@
# Copyright(C) 2019 Marvell International Ltd. # Copyright(C) 2019 Marvell International Ltd.
# #
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
if not dpdk_conf.get('RTE_ARCH_64') if not dpdk_conf.get('RTE_ARCH_64')
build = false build = false
reason = 'only supported on 64-bit' reason = 'only supported on 64-bit'

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
if not dpdk_conf.has('RTE_PORT_PCAP') if not dpdk_conf.has('RTE_PORT_PCAP')
build = false build = false
reason = 'missing dependency, "libpcap"' reason = 'missing dependency, "libpcap"'

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Luca Boccassi <bluca@debian.org> # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,5 +1,11 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation # Copyright(c) 2017 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources = files('rte_eth_ring.c') sources = files('rte_eth_ring.c')
headers = files('rte_eth_ring.h') headers = files('rte_eth_ring.h')

View File

@ -6,6 +6,12 @@
# This software was jointly developed between OKTET Labs (under contract # This software was jointly developed between OKTET Labs (under contract
# for Solarflare) and Solarflare Communications, Inc. # for Solarflare) and Solarflare Communications, Inc.
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
if (arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')) and (arch_subdir != 'arm' or not host_machine.cpu_family().startswith('aarch64')) if (arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')) and (arch_subdir != 'arm' or not host_machine.cpu_family().startswith('aarch64'))
build = false build = false
reason = 'only supported on x86_64 and aarch64' reason = 'only supported on x86_64 and aarch64'

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
dep = dependency('libsze2', required: false) dep = dependency('libsze2', required: false)
build = dep.found() build = dep.found()
reason = 'missing dependency, "libsze2"' reason = 'missing dependency, "libsze2"'

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Cavium, Inc # Copyright(c) 2017 Cavium, Inc
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2015-2020 # Copyright(c) 2015-2020
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
subdir('base') subdir('base')
objs = [base_objs] objs = [base_objs]

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
build = dpdk_conf.has('RTE_LIB_VHOST') build = dpdk_conf.has('RTE_LIB_VHOST')
reason = 'missing dependency, DPDK vhost library' reason = 'missing dependency, DPDK vhost library'
sources = files('rte_eth_vhost.c') sources = files('rte_eth_vhost.c')

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation # Copyright(c) 2018 Intel Corporation
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources += files('virtio_ethdev.c', sources += files('virtio_ethdev.c',
'virtio_pci.c', 'virtio_pci.c',
'virtio_rxtx.c', 'virtio_rxtx.c',

View File

@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Luca Boccassi <bluca@debian.org> # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
if is_windows
build = false
reason = 'not supported on Windows'
subdir_done()
endif
sources += files( sources += files(
'vmxnet3_ethdev.c', 'vmxnet3_ethdev.c',
'vmxnet3_rxtx.c', 'vmxnet3_rxtx.c',