Fix ref counter bug 96/72296/1
authorLuc Provoost <luc.provoost@intel.com>
Wed, 31 Mar 2021 15:52:47 +0000 (17:52 +0200)
committerLuc Provoost <luc.provoost@intel.com>
Wed, 31 Mar 2021 15:52:47 +0000 (17:52 +0200)
Fixed the error in the calculation of the rte_pktmbuf_refcnt_update
parameter

Change-Id: I858d9e0b8cf158f9c24807197df34f69217a1b1c
Signed-off-by: Luc Provoost <luc.provoost@intel.com>
VNFs/DPPD-PROX/handle_mirror.c

index ba6e590..73a5242 100644 (file)
@@ -69,7 +69,7 @@ static int handle_mirror_bulk(struct task_base *tbase, struct rte_mbuf **mbufs,
                PREFETCH0(hdr[j]);
        }
        for (uint16_t j = 0; j < n_pkts; ++j) {
-               rte_pktmbuf_refcnt_update(mbufs2[j], (task->n_dests - 1) * task->multiplier);
+               rte_pktmbuf_refcnt_update(mbufs2[j], task->n_dests * task->multiplier - 1);
                prox_rte_ipv4_hdr *pip = (prox_rte_ipv4_hdr *) (hdr[j] + 1);
                if ((task->mirror_size != 0) && (hdr[j]->ether_type == ETYPE_IPv4) && ((pip->next_proto_id == IPPROTO_UDP) || (pip->next_proto_id == IPPROTO_TCP))) {
                        rte_pktmbuf_pkt_len(mbufs2[j]) = task->mirror_size;