X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_net%2Fmeson.build;h=94d816e79f966ac2e3445aecc3f46e4ab2f6e84e;hb=3127f99274b679124658afdbfc49210730c50617;hp=868a93fd6b6b91482527da1391200659496fd751;hpb=3bdd09ae0714da28baf7b39b0741bed3316ff343;p=dpdk.git diff --git a/lib/librte_net/meson.build b/lib/librte_net/meson.build index 868a93fd6b..94d816e79f 100644 --- a/lib/librte_net/meson.build +++ b/lib/librte_net/meson.build @@ -1,8 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause -# Copyright(c) 2017 Intel Corporation +# Copyright(c) 2017-2020 Intel Corporation -version = 1 -allow_experimental_apis = true headers = files('rte_ip.h', 'rte_tcp.h', 'rte_udp.h', @@ -11,10 +9,102 @@ headers = files('rte_ip.h', 'rte_icmp.h', 'rte_arp.h', 'rte_ether.h', + 'rte_vxlan.h', 'rte_gre.h', + 'rte_gtp.h', 'rte_net.h', 'rte_net_crc.h', - 'rte_mpls.h') + 'rte_mpls.h', + 'rte_higig.h', + 'rte_ecpri.h', + 'rte_geneve.h') sources = files('rte_arp.c', 'rte_ether.c', 'rte_net.c', 'rte_net_crc.c') deps += ['mbuf'] + +if dpdk_conf.has('RTE_ARCH_X86_64') + net_crc_sse42_cpu_support = ( + cc.get_define('__PCLMUL__', args: machine_args) != '') + net_crc_avx512_cpu_support = ( + cc.get_define('__AVX512F__', args: machine_args) != '' and + cc.get_define('__AVX512BW__', args: machine_args) != '' and + cc.get_define('__AVX512DQ__', args: machine_args) != '' and + cc.get_define('__AVX512VL__', args: machine_args) != '' and + cc.get_define('__VPCLMULQDQ__', args: machine_args) != '') + + net_crc_sse42_cc_support = ( + cc.has_argument('-mpclmul') and cc.has_argument('-maes')) + net_crc_avx512_cc_support = ( + not machine_args.contains('-mno-avx512f') and + cc.has_argument('-mavx512f') and + cc.has_argument('-mavx512bw') and + cc.has_argument('-mavx512dq') and + cc.has_argument('-mavx512vl') and + cc.has_argument('-mvpclmulqdq') and + cc.has_argument('-mavx2') and + cc.has_argument('-mavx')) + + build_static_net_crc_sse42_lib = 0 + build_static_net_crc_avx512_lib = 0 + + if net_crc_sse42_cpu_support == true + sources += files('net_crc_sse.c') + cflags += ['-DCC_X86_64_SSE42_PCLMULQDQ_SUPPORT'] + if net_crc_avx512_cpu_support == true + sources += files('net_crc_avx512.c') + cflags += ['-DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT'] + elif net_crc_avx512_cc_support == true + build_static_net_crc_avx512_lib = 1 + net_crc_avx512_lib_cflags = ['-mavx512f', + '-mavx512bw', + '-mavx512dq', + '-mavx512vl', + '-mvpclmulqdq', + '-mavx2', + '-mavx'] + cflags += ['-DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT'] + endif + elif net_crc_sse42_cc_support == true + build_static_net_crc_sse42_lib = 1 + net_crc_sse42_lib_cflags = ['-mpclmul', '-maes'] + cflags += ['-DCC_X86_64_SSE42_PCLMULQDQ_SUPPORT'] + if net_crc_avx512_cc_support == true + build_static_net_crc_avx512_lib = 1 + net_crc_avx512_lib_cflags = ['-mpclmul', + '-maes', + '-mavx512f', + '-mavx512bw', + '-mavx512dq', + '-mavx512vl', + '-mvpclmulqdq', + '-mavx2', + '-mavx'] + cflags += ['-DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT'] + endif + endif + + if build_static_net_crc_sse42_lib == 1 + net_crc_sse42_lib = static_library( + 'net_crc_sse42_lib', + 'net_crc_sse.c', + dependencies: static_rte_eal, + c_args: [cflags, + net_crc_sse42_lib_cflags]) + objs += net_crc_sse42_lib.extract_objects('net_crc_sse.c') + endif + + if build_static_net_crc_avx512_lib == 1 + net_crc_avx512_lib = static_library( + 'net_crc_avx512_lib', + 'net_crc_avx512.c', + dependencies: static_rte_eal, + c_args: [cflags, + net_crc_avx512_lib_cflags]) + objs += net_crc_avx512_lib.extract_objects('net_crc_avx512.c') + endif + +elif (dpdk_conf.has('RTE_ARCH_ARM64') and + cc.get_define('__ARM_FEATURE_CRYPTO', args: machine_args) != '') + sources += files('net_crc_neon.c') + cflags += ['-DCC_ARM64_NEON_PMULL_SUPPORT'] +endif