Fixes: d5c4897ecfb2 ("examples/l3fwd: add option to set Rx burst size")
Signed-off-by: Jie Hai <haij...@huawei.com>
---
examples/l3fwd/l3fwd.h | 8 +++++---
examples/l3fwd/l3fwd_common.h | 6 +++---
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/examples/l3fwd/l3fwd.h b/examples/l3fwd/l3fwd.h
index 0cce3406ee7d..a01fecd51261 100644
--- a/examples/l3fwd/l3fwd.h
+++ b/examples/l3fwd/l3fwd.h
@@ -35,7 +35,7 @@
/*
* Try to avoid TX buffering if we have at least MAX_TX_BURST packets to send.
*/
-#define MAX_TX_BURST (MAX_PKT_BURST / 2)
+#define MAX_TX_BURST DEFAULT_PKT_BURST
#define NB_SOCKETS 8
@@ -57,6 +57,8 @@
#define L3FWD_HASH_ENTRIES (1024*1024*1)
#endif
+static_assert(MAX_TX_BURST <= MAX_PKT_BURST, "MAX_TX_BURST should be at most
MAX_PKT_BURST");
+
struct parm_cfg {
const char *rule_ipv4_name;
const char *rule_ipv6_name;
@@ -152,8 +154,8 @@ send_single_packet(struct lcore_conf *qconf,
len++;
/* enough pkts to be sent */
- if (unlikely(len == MAX_PKT_BURST)) {
- send_burst(qconf, MAX_PKT_BURST, port);
+ if (unlikely(len == MAX_TX_BURST)) {
+ send_burst(qconf, MAX_TX_BURST, port);
len = 0;
}
diff --git a/examples/l3fwd/l3fwd_common.h b/examples/l3fwd/l3fwd_common.h
index d94e5f135791..3f504dc0a552 100644
--- a/examples/l3fwd/l3fwd_common.h
+++ b/examples/l3fwd/l3fwd_common.h
@@ -71,7 +71,7 @@ send_packetsx4(struct lcore_conf *qconf, uint16_t port,
struct rte_mbuf *m[],
* If TX buffer for that queue is empty, and we have enough packets,
* then send them straightway.
*/
- if (num >= MAX_TX_BURST && len == 0) {
+ if (num >= MAX_TX_BURST / 2 && len == 0) {
n = rte_eth_tx_burst(port, qconf->tx_queue_id[port], m, num);
if (unlikely(n < num)) {
do {
@@ -112,9 +112,9 @@ send_packetsx4(struct lcore_conf *qconf, uint16_t port,
struct rte_mbuf *m[],
len += n;
/* enough pkts to be sent */
- if (unlikely(len == MAX_PKT_BURST)) {
+ if (unlikely(len > MAX_TX_BURST)) {
- send_burst(qconf, MAX_PKT_BURST, port);
+ send_burst(qconf, len, port);
/* copy rest of the packets into the TX buffer. */
len = num - n;
--
2.22.0