Go to file
Konstantin Ananyev 423aa5e130 ipsec: fix build with gcc 6
gcc 6.2 and 6.4 fails to compile lib/librte_ipsec/sa.c
with the following errors:
lib/librte_ipsec/sa.c:
 In function inline_outb_tun_pkt_process:
 x86_64-native-linuxapp-gcc/include/rte_memcpy.h:337:2:
 error: array subscript is above array bounds [-Werror=array-bounds]
  rte_mov32((uint8_t *)dst + 1 * 32, (const uint8_t *)src + 1 * 32);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ...

It complains about the following lines of code:
esp_outb_tun_pkt_prepare(struct rte_ipsec_sa *sa, rte_be64_t
        ....
        /* update spi, seqn and iv */
        esph = (struct esp_hdr *)(ph + sa->hdr_len);
        iv = (uint64_t *)(esph + 1);
        rte_memcpy(iv, ivp, sa->iv_len);

While I believe it is a false positive,
it is too excessive to use rte_memcpy() here,
as IV length could be only 0/8/16 bytes.
So introduce small helper function to copy IV and use it
instead of rte_memcpy().

Fixes: 4d7ea3e145 ("ipsec: implement SA data-path API")

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2019-01-15 02:40:40 +01:00
app app/testpmd: check mbufs in verbose mode 2019-01-15 02:40:40 +01:00
buildtools config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
config config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
devtools devtools: fix build check for whether meson has run 2019-01-14 12:24:57 +01:00
doc config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
drivers net/mlx5: fix instruction hotspot on replenishing Rx buffer 2019-01-15 02:40:40 +01:00
examples examples/vhost: remove unnecessary method and constant 2019-01-14 17:44:29 +01:00
kernel kni: fix build on RHEL8 for arm and Power9 2019-01-14 14:33:04 +01:00
lib ipsec: fix build with gcc 6 2019-01-15 02:40:40 +01:00
license fix dpdk.org URLs 2018-11-26 20:19:24 +01:00
mk config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
test mbuf: remove deprecated macro 2019-01-14 16:37:36 +01:00
usertools usertools: skip empty categories in devices status 2018-11-23 01:43:20 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add compression driver and ISA-L PMD guides 2018-05-10 17:46:20 +01:00
GNUmakefile move kernel modules directories 2018-03-21 23:04:21 +01:00
MAINTAINERS config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt config: gather options for dlopen mlx dependency 2019-01-14 17:44:29 +01:00
meson.build build: use static deps for pkg-config libs.private 2019-01-14 12:24:57 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org