Fix potential crash in rx and tx distribution
[samplevnf.git] / VNFs / DPPD-PROX / task_base.h
index f8c0524..00087ab 100644 (file)
@@ -143,6 +143,9 @@ struct task_base;
 
 #define MAX_RX_PKT_ALL 16384
 
+#define RX_BUCKET_SIZE (2 * MAX_RING_BURST + 1) /* Limit RX bucket size */
+#define TX_BUCKET_SIZE (MAX_RING_BURST +1)
+
 #define MAX_STACKED_RX_FUCTIONS 16
 
 typedef uint16_t (*rx_pkt_func) (struct task_base *tbase, struct rte_mbuf ***mbufs);
@@ -164,8 +167,8 @@ struct task_base_aux {
        int      rx_prev_idx;
        uint16_t (*rx_pkt_prev[MAX_STACKED_RX_FUCTIONS])(struct task_base *tbase, struct rte_mbuf ***mbufs);
 
-       uint32_t rx_bucket[MAX_RING_BURST + 1];
-       uint32_t tx_bucket[MAX_RING_BURST + 1];
+       uint32_t rx_bucket[RX_BUCKET_SIZE];
+       uint32_t tx_bucket[TX_BUCKET_SIZE];
        int (*tx_pkt_l2)(struct task_base *tbase, struct rte_mbuf **mbufs, const uint16_t n_pkts, uint8_t *out);
        int (*tx_pkt_orig)(struct task_base *tbase, struct rte_mbuf **mbufs, const uint16_t n_pkts, uint8_t *out);
        int (*tx_pkt_hw)(struct task_base *tbase, struct rte_mbuf **mbufs, const uint16_t n_pkts, uint8_t *out);