From f2cb939365a816983dda330f24c0ef356c067853 Mon Sep 17 00:00:00 2001 From: Wisam Jaddo Date: Sun, 14 Mar 2021 11:54:25 +0200 Subject: [PATCH] app/flow-perf: fix IPv6 source address increment Currently the memset() will not set a correct src ip that represent the incremental value of the counter. This commit will fix this and each flow will have correct IPv6.src that it's incremental from previous flow and equal to the decimal values. Fixes: bf3688f1e816 ("app/flow-perf: add insertion rate calculation") Cc: stable@dpdk.org Signed-off-by: Wisam Jaddo Acked-by: Alexander Kozyrev --- app/test-flow-perf/items_gen.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/test-flow-perf/items_gen.c b/app/test-flow-perf/items_gen.c index ccebc08b39..a73de9031f 100644 --- a/app/test-flow-perf/items_gen.c +++ b/app/test-flow-perf/items_gen.c @@ -72,14 +72,15 @@ add_ipv6(struct rte_flow_item *items, static struct rte_flow_item_ipv6 ipv6_specs[RTE_MAX_LCORE] __rte_cache_aligned; static struct rte_flow_item_ipv6 ipv6_masks[RTE_MAX_LCORE] __rte_cache_aligned; uint8_t ti = para.core_idx; + uint8_t i; /** Set ipv6 src **/ - memset(&ipv6_specs[ti].hdr.src_addr, para.src_ip, - sizeof(ipv6_specs->hdr.src_addr) / 2); - - /** Full mask **/ - memset(&ipv6_masks[ti].hdr.src_addr, 0xff, - sizeof(ipv6_specs->hdr.src_addr)); + for (i = 0; i < 16; i++) { + /* Currently src_ip is limited to 32 bit */ + if (i < 4) + ipv6_specs[ti].hdr.src_addr[15 - i] = para.src_ip >> (i * 8); + ipv6_masks[ti].hdr.src_addr[15 - i] = 0xff; + } items[items_counter].type = RTE_FLOW_ITEM_TYPE_IPV6; items[items_counter].spec = &ipv6_specs[ti]; -- 2.20.1