summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/handle_gen.c
diff options
context:
space:
mode:
authorDeepak S <deepak.s@linux.intel.com>2019-03-13 04:26:58 +0000
committerGerrit Code Review <gerrit@opnfv.org>2019-03-13 04:26:58 +0000
commit4805ad5dc114b24724b754443c2fc1e6957f6e3a (patch)
tree782804724740c27e7def526fae4a3d30d2d4e039 /VNFs/DPPD-PROX/handle_gen.c
parent2a7b2ff862fb75e8e3b34b58eb09dd4de8a6a28d (diff)
parent224aad3ead4be1aa86d4af653c4c0ffff783d2ff (diff)
Merge "PROX generator: performance optimization (3/4)"
Diffstat (limited to 'VNFs/DPPD-PROX/handle_gen.c')
-rw-r--r--VNFs/DPPD-PROX/handle_gen.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/VNFs/DPPD-PROX/handle_gen.c b/VNFs/DPPD-PROX/handle_gen.c
index 643c61c5..fcdbcd62 100644
--- a/VNFs/DPPD-PROX/handle_gen.c
+++ b/VNFs/DPPD-PROX/handle_gen.c
@@ -353,9 +353,10 @@ static void task_gen_apply_accur_pos(struct task_gen *task, uint8_t *pkt_hdr, ui
*(uint32_t *)(pkt_hdr + task->accur_pos) = accuracy;
}
-static void task_gen_apply_sig(struct task_gen *task, uint8_t *pkt_hdr)
+static void task_gen_apply_sig(struct task_gen *task, struct pkt_template *dst)
{
- *(uint32_t *)(pkt_hdr + task->sig_pos) = task->sig;
+ if (task->sig_pos)
+ *(uint32_t *)(dst->buf + task->sig_pos) = task->sig;
}
static void task_gen_apply_all_accur_pos(struct task_gen *task, struct rte_mbuf **mbufs, uint8_t **pkt_hdr, uint32_t count)
@@ -372,16 +373,6 @@ static void task_gen_apply_all_accur_pos(struct task_gen *task, struct rte_mbuf
}
}
-static void task_gen_apply_all_sig(struct task_gen *task, struct rte_mbuf **mbufs, uint8_t **pkt_hdr, uint32_t count)
-{
- if (!task->sig_pos)
- return;
-
- for (uint16_t j = 0; j < count; ++j) {
- task_gen_apply_sig(task, pkt_hdr[j]);
- }
-}
-
static void task_gen_apply_unique_id(struct task_gen *task, uint8_t *pkt_hdr, const struct unique_id *id)
{
struct unique_id *dst = (struct unique_id *)(pkt_hdr + task->packet_id_pos);
@@ -670,7 +661,6 @@ static int handle_gen_bulk(struct task_base *tbase, struct rte_mbuf **mbufs, uin
task_gen_build_packets(task, new_pkts, pkt_hdr, send_bulk);
task_gen_apply_all_random_fields(task, pkt_hdr, send_bulk);
task_gen_apply_all_accur_pos(task, new_pkts, pkt_hdr, send_bulk);
- task_gen_apply_all_sig(task, new_pkts, pkt_hdr, send_bulk);
task_gen_apply_all_unique_id(task, new_pkts, pkt_hdr, send_bulk);
uint64_t tsc_before_tx;
@@ -908,6 +898,7 @@ static void task_gen_reset_pkt_templates_content(struct task_gen *task)
src = &task->pkt_template_orig[i];
dst = &task->pkt_template[i];
memcpy(dst->buf, src->buf, dst->len);
+ task_gen_apply_sig(task, dst);
}
}