diff options
author | 2018-01-13 21:44:49 +0100 | |
---|---|---|
committer | 2018-02-13 12:44:17 +0000 | |
commit | 26a2e095473ba20af7f2f81aafef002145184af9 (patch) | |
tree | bb97ba908ca615c81bac266585c3b02f7854c778 /VNFs/DPPD-PROX/rx_pkt.c | |
parent | aa09ff9157159b26c431ba61a6f0a08308d123dd (diff) |
Fix potential crash in rx and tx distribution
In some (rare) modes, more than 64 packets can be received through
one rx function. This is for instance the case of the lat mode.
Change-Id: Ie733c927a8e116c679c464f2551768185ef85366
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
Diffstat (limited to 'VNFs/DPPD-PROX/rx_pkt.c')
-rw-r--r-- | VNFs/DPPD-PROX/rx_pkt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/VNFs/DPPD-PROX/rx_pkt.c b/VNFs/DPPD-PROX/rx_pkt.c index fd0f7e5c..f6adeb4b 100644 --- a/VNFs/DPPD-PROX/rx_pkt.c +++ b/VNFs/DPPD-PROX/rx_pkt.c @@ -476,7 +476,10 @@ uint16_t rx_pkt_distr(struct task_base *tbase, struct rte_mbuf ***mbufs) { uint16_t ret = call_prev_rx_pkt(tbase, mbufs); - tbase->aux->rx_bucket[ret]++; + if (likely(ret < RX_BUCKET_SIZE)) + tbase->aux->rx_bucket[ret]++; + else + tbase->aux->rx_bucket[RX_BUCKET_SIZE - 1]++; return ret; } |