patches for DPDK stable branches
 help / color / mirror / Atom feed
From: luca.boccassi@gmail.com
To: Huisong Li <lihuisong@huawei.com>
Cc: Ferruh Yigit <ferruh.yigit@intel.com>, dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'app/testpmd: fix queue stats mapping configuration' has been queued to stable release 20.11.1
Date: Fri,  5 Feb 2021 11:15:11 +0000	[thread overview]
Message-ID: <20210205111920.1272063-25-luca.boccassi@gmail.com> (raw)
In-Reply-To: <20210205111920.1272063-1-luca.boccassi@gmail.com>

Hi,

FYI, your patch has been queued to stable release 20.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/07/21. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/ed18af72c56f6c4c2b517844f44b8d330b0318e2

Thanks.

Luca Boccassi

---
From ed18af72c56f6c4c2b517844f44b8d330b0318e2 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Wed, 2 Dec 2020 20:48:55 +0800
Subject: [PATCH] app/testpmd: fix queue stats mapping configuration

[ upstream commit 08dcd187068666c96e8a16604a1c96160ed310e9 ]

Currently, the queue stats mapping has the following problems:
1) Many PMD drivers don't support queue stats mapping. But there is no
   failure message after executing the command "set stat_qmap rx 0 2 2".
2) Once queue mapping is set, unrelated and unmapped queues are also
   displayed.
3) The configuration result does not take effect or can not be queried
   in real time.
4) The mapping arrays, "tx_queue_stats_mappings_array" &
   "rx_queue_stats_mappings_array" are global and their sizes are based
   on fixed max port and queue size assumptions.
5) These record structures, 'map_port_queue_stats_mapping_registers()'
   and its sub functions are redundant for majority of drivers.
6) The display of the queue stats and queue stats mapping is mixed
   together.

Since xstats is used to obtain queue statistics, we have made the
following simplifications and adjustments:
1) If PMD requires and supports queue stats mapping, configure to driver
   in real time by calling ethdev API after executing the command "set
   stat_qmap rx/tx ...". If not, the command can not be accepted.
2) Based on the above adjustments, these record structures,
   'map_port_queue_stats_mapping_registers()' and its sub functions can
   be removed. "tx-queue-stats-mapping" & "rx-queue-stats-mapping"
   parameters, and 'parse_queue_stats_mapping_config()' can be removed
   too.
3) remove display of queue stats mapping in 'fwd_stats_display()' &
   'nic_stats_display()', and obtain queue stats by xstats.  Since the
   record structures are removed, 'nic_stats_mapping_display()' can be
   deleted.

Fixes: 4dccdc789bf4 ("app/testpmd: simplify handling of stats mappings error")
Fixes: 013af9b6b64f ("app/testpmd: various updates")
Fixes: ed30d9b691b2 ("app/testpmd: add stats per queue")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 app/test-pmd/cmdline.c    |  17 ++--
 app/test-pmd/config.c     | 144 +++++-----------------------
 app/test-pmd/parameters.c | 107 ---------------------
 app/test-pmd/testpmd.c    | 193 ++++----------------------------------
 app/test-pmd/testpmd.h    |  22 -----
 5 files changed, 47 insertions(+), 436 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 0d2d6aad05..2ccbaa039e 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -163,7 +163,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"Display:\n"
 			"--------\n\n"
 
-			"show port (info|stats|summary|xstats|fdir|stat_qmap|dcb_tc|cap) (port_id|all)\n"
+			"show port (info|stats|summary|xstats|fdir|dcb_tc|cap) (port_id|all)\n"
 			"    Display information for port_id, or all.\n\n"
 
 			"show port port_id (module_eeprom|eeprom)\n"
@@ -177,7 +177,7 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"show port (port_id) rss-hash [key]\n"
 			"    Display the RSS hash functions and RSS hash key of port\n\n"
 
-			"clear port (info|stats|xstats|fdir|stat_qmap) (port_id|all)\n"
+			"clear port (info|stats|xstats|fdir) (port_id|all)\n"
 			"    Clear information for port_id, or all.\n\n"
 
 			"show (rxq|txq) info (port_id) (queue_id)\n"
@@ -7555,9 +7555,6 @@ static void cmd_showportall_parsed(void *parsed_result,
 		RTE_ETH_FOREACH_DEV(i)
 			fdir_get_infos(i);
 #endif
-	else if (!strcmp(res->what, "stat_qmap"))
-		RTE_ETH_FOREACH_DEV(i)
-			nic_stats_mapping_display(i);
 	else if (!strcmp(res->what, "dcb_tc"))
 		RTE_ETH_FOREACH_DEV(i)
 			port_dcb_info_display(i);
@@ -7573,14 +7570,14 @@ cmdline_parse_token_string_t cmd_showportall_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port, "port");
 cmdline_parse_token_string_t cmd_showportall_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
-				 "info#summary#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
+				 "info#summary#stats#xstats#fdir#dcb_tc#cap");
 cmdline_parse_token_string_t cmd_showportall_all =
 	TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
 cmdline_parse_inst_t cmd_showportall = {
 	.f = cmd_showportall_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
-		"info|summary|stats|xstats|fdir|stat_qmap|dcb_tc|cap all",
+		"info|summary|stats|xstats|fdir|dcb_tc|cap all",
 	.tokens = {
 		(void *)&cmd_showportall_show,
 		(void *)&cmd_showportall_port,
@@ -7622,8 +7619,6 @@ static void cmd_showport_parsed(void *parsed_result,
 	else if (!strcmp(res->what, "fdir"))
 		 fdir_get_infos(res->portnum);
 #endif
-	else if (!strcmp(res->what, "stat_qmap"))
-		nic_stats_mapping_display(res->portnum);
 	else if (!strcmp(res->what, "dcb_tc"))
 		port_dcb_info_display(res->portnum);
 	else if (!strcmp(res->what, "cap"))
@@ -7637,7 +7632,7 @@ cmdline_parse_token_string_t cmd_showport_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port, "port");
 cmdline_parse_token_string_t cmd_showport_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what,
-				 "info#summary#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
+				 "info#summary#stats#xstats#fdir#dcb_tc#cap");
 cmdline_parse_token_num_t cmd_showport_portnum =
 	TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum, RTE_UINT16);
 
@@ -7645,7 +7640,7 @@ cmdline_parse_inst_t cmd_showport = {
 	.f = cmd_showport_parsed,
 	.data = NULL,
 	.help_str = "show|clear port "
-		"info|summary|stats|xstats|fdir|stat_qmap|dcb_tc|cap "
+		"info|summary|stats|xstats|fdir|dcb_tc|cap "
 		"<port_id>",
 	.tokens = {
 		(void *)&cmd_showport_show,
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index b51de59e1e..3f6c8642b1 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -183,8 +183,6 @@ nic_stats_display(portid_t port_id)
 								diff_ns;
 	uint64_t mpps_rx, mpps_tx, mbps_rx, mbps_tx;
 	struct rte_eth_stats stats;
-	struct rte_port *port = &ports[port_id];
-	uint8_t i;
 
 	static const char *nic_stats_border = "########################";
 
@@ -196,46 +194,12 @@ nic_stats_display(portid_t port_id)
 	printf("\n  %s NIC statistics for port %-2d %s\n",
 	       nic_stats_border, port_id, nic_stats_border);
 
-	if ((!port->rx_queue_stats_mapping_enabled) && (!port->tx_queue_stats_mapping_enabled)) {
-		printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
-		       "%-"PRIu64"\n",
-		       stats.ipackets, stats.imissed, stats.ibytes);
-		printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
-		printf("  RX-nombuf:  %-10"PRIu64"\n",
-		       stats.rx_nombuf);
-		printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
-		       "%-"PRIu64"\n",
-		       stats.opackets, stats.oerrors, stats.obytes);
-	}
-	else {
-		printf("  RX-packets:              %10"PRIu64"    RX-errors: %10"PRIu64
-		       "    RX-bytes: %10"PRIu64"\n",
-		       stats.ipackets, stats.ierrors, stats.ibytes);
-		printf("  RX-errors:  %10"PRIu64"\n", stats.ierrors);
-		printf("  RX-nombuf:               %10"PRIu64"\n",
-		       stats.rx_nombuf);
-		printf("  TX-packets:              %10"PRIu64"    TX-errors: %10"PRIu64
-		       "    TX-bytes: %10"PRIu64"\n",
-		       stats.opackets, stats.oerrors, stats.obytes);
-	}
-
-	if (port->rx_queue_stats_mapping_enabled) {
-		printf("\n");
-		for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
-			printf("  Stats reg %2d RX-packets: %10"PRIu64
-			       "    RX-errors: %10"PRIu64
-			       "    RX-bytes: %10"PRIu64"\n",
-			       i, stats.q_ipackets[i], stats.q_errors[i], stats.q_ibytes[i]);
-		}
-	}
-	if (port->tx_queue_stats_mapping_enabled) {
-		printf("\n");
-		for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
-			printf("  Stats reg %2d TX-packets: %10"PRIu64
-			       "                             TX-bytes: %10"PRIu64"\n",
-			       i, stats.q_opackets[i], stats.q_obytes[i]);
-		}
-	}
+	printf("  RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes:  "
+	       "%-"PRIu64"\n", stats.ipackets, stats.imissed, stats.ibytes);
+	printf("  RX-errors: %-"PRIu64"\n", stats.ierrors);
+	printf("  RX-nombuf:  %-10"PRIu64"\n", stats.rx_nombuf);
+	printf("  TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes:  "
+	       "%-"PRIu64"\n", stats.opackets, stats.oerrors, stats.obytes);
 
 	diff_ns = 0;
 	if (clock_gettime(CLOCK_TYPE_ID, &cur_time) == 0) {
@@ -398,54 +362,6 @@ nic_xstats_clear(portid_t port_id)
 	}
 }
 
-void
-nic_stats_mapping_display(portid_t port_id)
-{
-	struct rte_port *port = &ports[port_id];
-	uint16_t i;
-
-	static const char *nic_stats_mapping_border = "########################";
-
-	if (port_id_is_invalid(port_id, ENABLED_WARN)) {
-		print_valid_ports();
-		return;
-	}
-
-	if ((!port->rx_queue_stats_mapping_enabled) && (!port->tx_queue_stats_mapping_enabled)) {
-		printf("Port id %d - either does not support queue statistic mapping or"
-		       " no queue statistic mapping set\n", port_id);
-		return;
-	}
-
-	printf("\n  %s NIC statistics mapping for port %-2d %s\n",
-	       nic_stats_mapping_border, port_id, nic_stats_mapping_border);
-
-	if (port->rx_queue_stats_mapping_enabled) {
-		for (i = 0; i < nb_rx_queue_stats_mappings; i++) {
-			if (rx_queue_stats_mappings[i].port_id == port_id) {
-				printf("  RX-queue %2d mapped to Stats Reg %2d\n",
-				       rx_queue_stats_mappings[i].queue_id,
-				       rx_queue_stats_mappings[i].stats_counter_id);
-			}
-		}
-		printf("\n");
-	}
-
-
-	if (port->tx_queue_stats_mapping_enabled) {
-		for (i = 0; i < nb_tx_queue_stats_mappings; i++) {
-			if (tx_queue_stats_mappings[i].port_id == port_id) {
-				printf("  TX-queue %2d mapped to Stats Reg %2d\n",
-				       tx_queue_stats_mappings[i].queue_id,
-				       tx_queue_stats_mappings[i].stats_counter_id);
-			}
-		}
-	}
-
-	printf("  %s####################################%s\n",
-	       nic_stats_mapping_border, nic_stats_mapping_border);
-}
-
 void
 rx_queue_infos_display(portid_t port_id, uint16_t queue_id)
 {
@@ -2573,7 +2489,7 @@ tx_queue_id_is_invalid(queueid_t txq_id)
 {
 	if (txq_id < nb_txq)
 		return 0;
-	printf("Invalid TX queue %d (must be < nb_rxq=%d)\n", txq_id, nb_txq);
+	printf("Invalid TX queue %d (must be < nb_txq=%d)\n", txq_id, nb_txq);
 	return 1;
 }
 
@@ -4528,8 +4444,7 @@ tx_vlan_pvid_set(portid_t port_id, uint16_t vlan_id, int on)
 void
 set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value)
 {
-	uint16_t i;
-	uint8_t existing_mapping_found = 0;
+	int ret;
 
 	if (port_id_is_invalid(port_id, ENABLED_WARN))
 		return;
@@ -4539,40 +4454,23 @@ set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value)
 
 	if (map_value >= RTE_ETHDEV_QUEUE_STAT_CNTRS) {
 		printf("map_value not in required range 0..%d\n",
-				RTE_ETHDEV_QUEUE_STAT_CNTRS - 1);
+		       RTE_ETHDEV_QUEUE_STAT_CNTRS - 1);
 		return;
 	}
 
-	if (!is_rx) { /*then tx*/
-		for (i = 0; i < nb_tx_queue_stats_mappings; i++) {
-			if ((tx_queue_stats_mappings[i].port_id == port_id) &&
-			    (tx_queue_stats_mappings[i].queue_id == queue_id)) {
-				tx_queue_stats_mappings[i].stats_counter_id = map_value;
-				existing_mapping_found = 1;
-				break;
-			}
+	if (!is_rx) { /* tx */
+		ret = rte_eth_dev_set_tx_queue_stats_mapping(port_id, queue_id,
+							     map_value);
+		if (ret) {
+			printf("failed to set tx queue stats mapping.\n");
+			return;
 		}
-		if (!existing_mapping_found) { /* A new additional mapping... */
-			tx_queue_stats_mappings[nb_tx_queue_stats_mappings].port_id = port_id;
-			tx_queue_stats_mappings[nb_tx_queue_stats_mappings].queue_id = queue_id;
-			tx_queue_stats_mappings[nb_tx_queue_stats_mappings].stats_counter_id = map_value;
-			nb_tx_queue_stats_mappings++;
-		}
-	}
-	else { /*rx*/
-		for (i = 0; i < nb_rx_queue_stats_mappings; i++) {
-			if ((rx_queue_stats_mappings[i].port_id == port_id) &&
-			    (rx_queue_stats_mappings[i].queue_id == queue_id)) {
-				rx_queue_stats_mappings[i].stats_counter_id = map_value;
-				existing_mapping_found = 1;
-				break;
-			}
-		}
-		if (!existing_mapping_found) { /* A new additional mapping... */
-			rx_queue_stats_mappings[nb_rx_queue_stats_mappings].port_id = port_id;
-			rx_queue_stats_mappings[nb_rx_queue_stats_mappings].queue_id = queue_id;
-			rx_queue_stats_mappings[nb_rx_queue_stats_mappings].stats_counter_id = map_value;
-			nb_rx_queue_stats_mappings++;
+	} else { /* rx */
+		ret = rte_eth_dev_set_rx_queue_stats_mapping(port_id, queue_id,
+							     map_value);
+		if (ret) {
+			printf("failed to set rx queue stats mapping.\n");
+			return;
 		}
 	}
 }
diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index bbb68a55ff..414a0068fb 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -176,12 +176,6 @@ usage(char* progname)
 	       "(0 <= N <= value of txd).\n");
 	printf("  --txrst=N: set the transmit RS bit threshold of TX rings to N "
 	       "(0 <= N <= value of txd).\n");
-	printf("  --tx-queue-stats-mapping=(port,queue,mapping)[,(port,queue,mapping]: "
-	       "tx queues statistics counters mapping "
-	       "(0 <= mapping <= %d).\n", RTE_ETHDEV_QUEUE_STAT_CNTRS - 1);
-	printf("  --rx-queue-stats-mapping=(port,queue,mapping)[,(port,queue,mapping]: "
-	       "rx queues statistics counters mapping "
-	       "(0 <= mapping <= %d).\n", RTE_ETHDEV_QUEUE_STAT_CNTRS - 1);
 	printf("  --no-flush-rx: Don't flush RX streams before forwarding."
 	       " Used mainly with PCAP drivers.\n");
 	printf("  --rxoffs=X[,Y]*: set RX segment offsets for split.\n");
@@ -300,93 +294,6 @@ parse_fwd_portmask(const char *portmask)
 		set_fwd_ports_mask((uint64_t) pm);
 }
 
-
-static int
-parse_queue_stats_mapping_config(const char *q_arg, int is_rx)
-{
-	char s[256];
-	const char *p, *p0 = q_arg;
-	char *end;
-	enum fieldnames {
-		FLD_PORT = 0,
-		FLD_QUEUE,
-		FLD_STATS_COUNTER,
-		_NUM_FLD
-	};
-	unsigned long int_fld[_NUM_FLD];
-	char *str_fld[_NUM_FLD];
-	int i;
-	unsigned size;
-
-	/* reset from value set at definition */
-	is_rx ? (nb_rx_queue_stats_mappings = 0) : (nb_tx_queue_stats_mappings = 0);
-
-	while ((p = strchr(p0,'(')) != NULL) {
-		++p;
-		if((p0 = strchr(p,')')) == NULL)
-			return -1;
-
-		size = p0 - p;
-		if(size >= sizeof(s))
-			return -1;
-
-		snprintf(s, sizeof(s), "%.*s", size, p);
-		if (rte_strsplit(s, sizeof(s), str_fld, _NUM_FLD, ',') != _NUM_FLD)
-			return -1;
-		for (i = 0; i < _NUM_FLD; i++){
-			errno = 0;
-			int_fld[i] = strtoul(str_fld[i], &end, 0);
-			if (errno != 0 || end == str_fld[i] || int_fld[i] > 255)
-				return -1;
-		}
-		/* Check mapping field is in correct range (0..RTE_ETHDEV_QUEUE_STAT_CNTRS-1) */
-		if (int_fld[FLD_STATS_COUNTER] >= RTE_ETHDEV_QUEUE_STAT_CNTRS) {
-			printf("Stats counter not in the correct range 0..%d\n",
-					RTE_ETHDEV_QUEUE_STAT_CNTRS - 1);
-			return -1;
-		}
-
-		if (!is_rx) {
-			if ((nb_tx_queue_stats_mappings >=
-						MAX_TX_QUEUE_STATS_MAPPINGS)) {
-				printf("exceeded max number of TX queue "
-						"statistics mappings: %hu\n",
-						nb_tx_queue_stats_mappings);
-				return -1;
-			}
-			tx_queue_stats_mappings_array[nb_tx_queue_stats_mappings].port_id =
-				(uint8_t)int_fld[FLD_PORT];
-			tx_queue_stats_mappings_array[nb_tx_queue_stats_mappings].queue_id =
-				(uint8_t)int_fld[FLD_QUEUE];
-			tx_queue_stats_mappings_array[nb_tx_queue_stats_mappings].stats_counter_id =
-				(uint8_t)int_fld[FLD_STATS_COUNTER];
-			++nb_tx_queue_stats_mappings;
-		}
-		else {
-			if ((nb_rx_queue_stats_mappings >=
-						MAX_RX_QUEUE_STATS_MAPPINGS)) {
-				printf("exceeded max number of RX queue "
-						"statistics mappings: %hu\n",
-						nb_rx_queue_stats_mappings);
-				return -1;
-			}
-			rx_queue_stats_mappings_array[nb_rx_queue_stats_mappings].port_id =
-				(uint8_t)int_fld[FLD_PORT];
-			rx_queue_stats_mappings_array[nb_rx_queue_stats_mappings].queue_id =
-				(uint8_t)int_fld[FLD_QUEUE];
-			rx_queue_stats_mappings_array[nb_rx_queue_stats_mappings].stats_counter_id =
-				(uint8_t)int_fld[FLD_STATS_COUNTER];
-			++nb_rx_queue_stats_mappings;
-		}
-
-	}
-/* Reassign the rx/tx_queue_stats_mappings pointer to point to this newly populated array rather */
-/* than to the default array (that was set at its definition) */
-	is_rx ? (rx_queue_stats_mappings = rx_queue_stats_mappings_array) :
-		(tx_queue_stats_mappings = tx_queue_stats_mappings_array);
-	return 0;
-}
-
 static void
 print_invalid_socket_id_error(void)
 {
@@ -664,8 +571,6 @@ launch_args_parse(int argc, char** argv)
 		{ "rxht",			1, 0, 0 },
 		{ "rxwt",			1, 0, 0 },
 		{ "rxfreet",                    1, 0, 0 },
-		{ "tx-queue-stats-mapping",	1, 0, 0 },
-		{ "rx-queue-stats-mapping",	1, 0, 0 },
 		{ "no-flush-rx",	0, 0, 0 },
 		{ "flow-isolate-all",	        0, 0, 0 },
 		{ "rxoffs",			1, 0, 0 },
@@ -1279,18 +1184,6 @@ launch_args_parse(int argc, char** argv)
 				else
 					rte_exit(EXIT_FAILURE, "rxfreet must be >= 0\n");
 			}
-			if (!strcmp(lgopts[opt_idx].name, "tx-queue-stats-mapping")) {
-				if (parse_queue_stats_mapping_config(optarg, TX)) {
-					rte_exit(EXIT_FAILURE,
-						 "invalid TX queue statistics mapping config entered\n");
-				}
-			}
-			if (!strcmp(lgopts[opt_idx].name, "rx-queue-stats-mapping")) {
-				if (parse_queue_stats_mapping_config(optarg, RX)) {
-					rte_exit(EXIT_FAILURE,
-						 "invalid RX queue statistics mapping config entered\n");
-				}
-			}
 			if (!strcmp(lgopts[opt_idx].name, "rxoffs")) {
 				unsigned int seg_off[MAX_SEGS_BUFFER_SPLIT];
 				unsigned int nb_offs;
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 33fc0fddf5..33a060dffd 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -476,15 +476,6 @@ struct rte_fdir_conf fdir_conf = {
 
 volatile int test_done = 1; /* stop packet forwarding when set to 1. */
 
-struct queue_stats_mappings tx_queue_stats_mappings_array[MAX_TX_QUEUE_STATS_MAPPINGS];
-struct queue_stats_mappings rx_queue_stats_mappings_array[MAX_RX_QUEUE_STATS_MAPPINGS];
-
-struct queue_stats_mappings *tx_queue_stats_mappings = tx_queue_stats_mappings_array;
-struct queue_stats_mappings *rx_queue_stats_mappings = rx_queue_stats_mappings_array;
-
-uint16_t nb_tx_queue_stats_mappings = 0;
-uint16_t nb_rx_queue_stats_mappings = 0;
-
 /*
  * Display zero values by default for xstats
  */
@@ -520,8 +511,6 @@ enum rte_eth_rx_mq_mode rx_mq_mode = ETH_MQ_RX_VMDQ_DCB_RSS;
 
 /* Forward function declarations */
 static void setup_attached_port(portid_t pi);
-static void map_port_queue_stats_mapping_registers(portid_t pi,
-						   struct rte_port *port);
 static void check_all_ports_link_status(uint32_t port_mask);
 static int eth_event_callback(portid_t port_id,
 			      enum rte_eth_event_type type,
@@ -1857,8 +1846,6 @@ fwd_stats_display(void)
 			fwd_cycles += fs->core_cycles;
 	}
 	for (i = 0; i < cur_fwd_config.nb_fwd_ports; i++) {
-		uint8_t j;
-
 		pt_id = fwd_ports_ids[i];
 		port = &ports[pt_id];
 
@@ -1881,88 +1868,34 @@ fwd_stats_display(void)
 		printf("\n  %s Forward statistics for port %-2d %s\n",
 		       fwd_stats_border, pt_id, fwd_stats_border);
 
-		if (!port->rx_queue_stats_mapping_enabled &&
-		    !port->tx_queue_stats_mapping_enabled) {
-			printf("  RX-packets: %-14"PRIu64
-			       " RX-dropped: %-14"PRIu64
-			       "RX-total: %-"PRIu64"\n",
-			       stats.ipackets, stats.imissed,
-			       stats.ipackets + stats.imissed);
-
-			if (cur_fwd_eng == &csum_fwd_engine)
-				printf("  Bad-ipcsum: %-14"PRIu64
-				       " Bad-l4csum: %-14"PRIu64
-				       "Bad-outer-l4csum: %-14"PRIu64"\n",
-				       ports_stats[pt_id].rx_bad_ip_csum,
-				       ports_stats[pt_id].rx_bad_l4_csum,
-				       ports_stats[pt_id].rx_bad_outer_l4_csum);
-			if (stats.ierrors + stats.rx_nombuf > 0) {
-				printf("  RX-error: %-"PRIu64"\n",
-				       stats.ierrors);
-				printf("  RX-nombufs: %-14"PRIu64"\n",
-				       stats.rx_nombuf);
-			}
-
-			printf("  TX-packets: %-14"PRIu64
-			       " TX-dropped: %-14"PRIu64
-			       "TX-total: %-"PRIu64"\n",
-			       stats.opackets, ports_stats[pt_id].tx_dropped,
-			       stats.opackets + ports_stats[pt_id].tx_dropped);
-		} else {
-			printf("  RX-packets:             %14"PRIu64
-			       "    RX-dropped:%14"PRIu64
-			       "    RX-total:%14"PRIu64"\n",
-			       stats.ipackets, stats.imissed,
-			       stats.ipackets + stats.imissed);
-
-			if (cur_fwd_eng == &csum_fwd_engine)
-				printf("  Bad-ipcsum:%14"PRIu64
-				       "    Bad-l4csum:%14"PRIu64
-				       "    Bad-outer-l4csum: %-14"PRIu64"\n",
-				       ports_stats[pt_id].rx_bad_ip_csum,
-				       ports_stats[pt_id].rx_bad_l4_csum,
-				       ports_stats[pt_id].rx_bad_outer_l4_csum);
-			if ((stats.ierrors + stats.rx_nombuf) > 0) {
-				printf("  RX-error:%"PRIu64"\n", stats.ierrors);
-				printf("  RX-nombufs:             %14"PRIu64"\n",
-				       stats.rx_nombuf);
-			}
-
-			printf("  TX-packets:             %14"PRIu64
-			       "    TX-dropped:%14"PRIu64
-			       "    TX-total:%14"PRIu64"\n",
-			       stats.opackets, ports_stats[pt_id].tx_dropped,
-			       stats.opackets + ports_stats[pt_id].tx_dropped);
+		printf("  RX-packets: %-14"PRIu64" RX-dropped: %-14"PRIu64
+		       "RX-total: %-"PRIu64"\n", stats.ipackets, stats.imissed,
+		       stats.ipackets + stats.imissed);
+
+		if (cur_fwd_eng == &csum_fwd_engine)
+			printf("  Bad-ipcsum: %-14"PRIu64
+			       " Bad-l4csum: %-14"PRIu64
+			       "Bad-outer-l4csum: %-14"PRIu64"\n",
+			       ports_stats[pt_id].rx_bad_ip_csum,
+			       ports_stats[pt_id].rx_bad_l4_csum,
+			       ports_stats[pt_id].rx_bad_outer_l4_csum);
+		if (stats.ierrors + stats.rx_nombuf > 0) {
+			printf("  RX-error: %-"PRIu64"\n", stats.ierrors);
+			printf("  RX-nombufs: %-14"PRIu64"\n", stats.rx_nombuf);
 		}
 
+		printf("  TX-packets: %-14"PRIu64" TX-dropped: %-14"PRIu64
+		       "TX-total: %-"PRIu64"\n",
+		       stats.opackets, ports_stats[pt_id].tx_dropped,
+		       stats.opackets + ports_stats[pt_id].tx_dropped);
+
 		if (record_burst_stats) {
 			if (ports_stats[pt_id].rx_stream)
 				pkt_burst_stats_display("RX",
 					&ports_stats[pt_id].rx_stream->rx_burst_stats);
 			if (ports_stats[pt_id].tx_stream)
 				pkt_burst_stats_display("TX",
-					&ports_stats[pt_id].tx_stream->tx_burst_stats);
-		}
-
-		if (port->rx_queue_stats_mapping_enabled) {
-			printf("\n");
-			for (j = 0; j < RTE_ETHDEV_QUEUE_STAT_CNTRS; j++) {
-				printf("  Stats reg %2d RX-packets:%14"PRIu64
-				       "     RX-errors:%14"PRIu64
-				       "    RX-bytes:%14"PRIu64"\n",
-				       j, stats.q_ipackets[j],
-				       stats.q_errors[j], stats.q_ibytes[j]);
-			}
-			printf("\n");
-		}
-		if (port->tx_queue_stats_mapping_enabled) {
-			for (j = 0; j < RTE_ETHDEV_QUEUE_STAT_CNTRS; j++) {
-				printf("  Stats reg %2d TX-packets:%14"PRIu64
-				       "                                 TX-bytes:%14"
-				       PRIu64"\n",
-				       j, stats.q_opackets[j],
-				       stats.q_obytes[j]);
-			}
+				&ports_stats[pt_id].tx_stream->tx_burst_stats);
 		}
 
 		printf("  %s--------------------------------%s\n",
@@ -2236,11 +2169,6 @@ start_packet_forwarding(int with_tx_first)
 	rxtx_config_display();
 
 	fwd_stats_reset();
-	for (i = 0; i < cur_fwd_config.nb_fwd_ports; i++) {
-		pt_id = fwd_ports_ids[i];
-		port = &ports[pt_id];
-		map_port_queue_stats_mapping_registers(pt_id, port);
-	}
 	if (with_tx_first) {
 		port_fwd_begin = tx_only_engine.port_fwd_begin;
 		if (port_fwd_begin != NULL) {
@@ -3352,84 +3280,6 @@ dev_event_callback(const char *device_name, enum rte_dev_event_type type,
 	}
 }
 
-static int
-set_tx_queue_stats_mapping_registers(portid_t port_id, struct rte_port *port)
-{
-	uint16_t i;
-	int diag;
-	uint8_t mapping_found = 0;
-
-	for (i = 0; i < nb_tx_queue_stats_mappings; i++) {
-		if ((tx_queue_stats_mappings[i].port_id == port_id) &&
-				(tx_queue_stats_mappings[i].queue_id < nb_txq )) {
-			diag = rte_eth_dev_set_tx_queue_stats_mapping(port_id,
-					tx_queue_stats_mappings[i].queue_id,
-					tx_queue_stats_mappings[i].stats_counter_id);
-			if (diag != 0)
-				return diag;
-			mapping_found = 1;
-		}
-	}
-	if (mapping_found)
-		port->tx_queue_stats_mapping_enabled = 1;
-	return 0;
-}
-
-static int
-set_rx_queue_stats_mapping_registers(portid_t port_id, struct rte_port *port)
-{
-	uint16_t i;
-	int diag;
-	uint8_t mapping_found = 0;
-
-	for (i = 0; i < nb_rx_queue_stats_mappings; i++) {
-		if ((rx_queue_stats_mappings[i].port_id == port_id) &&
-				(rx_queue_stats_mappings[i].queue_id < nb_rxq )) {
-			diag = rte_eth_dev_set_rx_queue_stats_mapping(port_id,
-					rx_queue_stats_mappings[i].queue_id,
-					rx_queue_stats_mappings[i].stats_counter_id);
-			if (diag != 0)
-				return diag;
-			mapping_found = 1;
-		}
-	}
-	if (mapping_found)
-		port->rx_queue_stats_mapping_enabled = 1;
-	return 0;
-}
-
-static void
-map_port_queue_stats_mapping_registers(portid_t pi, struct rte_port *port)
-{
-	int diag = 0;
-
-	diag = set_tx_queue_stats_mapping_registers(pi, port);
-	if (diag != 0) {
-		if (diag == -ENOTSUP) {
-			port->tx_queue_stats_mapping_enabled = 0;
-			printf("TX queue stats mapping not supported port id=%d\n", pi);
-		}
-		else
-			rte_exit(EXIT_FAILURE,
-					"set_tx_queue_stats_mapping_registers "
-					"failed for port id=%d diag=%d\n",
-					pi, diag);
-	}
-
-	diag = set_rx_queue_stats_mapping_registers(pi, port);
-	if (diag != 0) {
-		if (diag == -ENOTSUP) {
-			port->rx_queue_stats_mapping_enabled = 0;
-			printf("RX queue stats mapping not supported port id=%d\n", pi);
-		}
-		else
-			rte_exit(EXIT_FAILURE,
-					"set_rx_queue_stats_mapping_registers "
-					"failed for port id=%d diag=%d\n",
-					pi, diag);
-	}
-}
-
 static void
 rxtx_port_config(struct rte_port *port)
 {
@@ -3526,7 +3376,6 @@ init_port_config(void)
 		if (ret != 0)
 			return;
 
-		map_port_queue_stats_mapping_registers(pid, port);
 #if defined RTE_NET_IXGBE && defined RTE_LIBRTE_IXGBE_BYPASS
 		rte_pmd_ixgbe_bypass_init(pid);
 #endif
@@ -3737,8 +3586,6 @@ init_port_dcb_config(portid_t pid,
 	if (retval != 0)
 		return retval;
 
-	map_port_queue_stats_mapping_registers(pid, rte_port);
-
 	rte_port->dcb_flag = 1;
 
 	return 0;
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 6b901a894f..5f23162107 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -206,8 +206,6 @@ struct rte_port {
 	uint16_t                tunnel_tso_segsz; /**< Segmentation offload MSS for tunneled pkts. */
 	uint16_t                tx_vlan_id;/**< The tag ID */
 	uint16_t                tx_vlan_id_outer;/**< The outer tag ID */
-	uint8_t                 tx_queue_stats_mapping_enabled;
-	uint8_t                 rx_queue_stats_mapping_enabled;
 	volatile uint16_t        port_status;    /**< port started or not */
 	uint8_t                 need_setup;     /**< port just attached */
 	uint8_t                 need_reconfig;  /**< need reconfiguring port or not */
@@ -326,25 +324,6 @@ enum dcb_mode_enable
 	DCB_ENABLED
 };
 
-#define MAX_TX_QUEUE_STATS_MAPPINGS 1024 /* MAX_PORT of 32 @ 32 tx_queues/port */
-#define MAX_RX_QUEUE_STATS_MAPPINGS 4096 /* MAX_PORT of 32 @ 128 rx_queues/port */
-
-struct queue_stats_mappings {
-	portid_t port_id;
-	uint16_t queue_id;
-	uint8_t stats_counter_id;
-} __rte_cache_aligned;
-
-extern struct queue_stats_mappings tx_queue_stats_mappings_array[];
-extern struct queue_stats_mappings rx_queue_stats_mappings_array[];
-
-/* Assign both tx and rx queue stats mappings to the same default values */
-extern struct queue_stats_mappings *tx_queue_stats_mappings;
-extern struct queue_stats_mappings *rx_queue_stats_mappings;
-
-extern uint16_t nb_tx_queue_stats_mappings;
-extern uint16_t nb_rx_queue_stats_mappings;
-
 extern uint8_t xstats_hide_zero; /**< Hide zero values for xstats display */
 
 /* globals used for configuration */
@@ -790,7 +769,6 @@ void nic_stats_display(portid_t port_id);
 void nic_stats_clear(portid_t port_id);
 void nic_xstats_display(portid_t port_id);
 void nic_xstats_clear(portid_t port_id);
-void nic_stats_mapping_display(portid_t port_id);
 void device_infos_display(const char *identifier);
 void port_infos_display(portid_t port_id);
 void port_summary_display(portid_t port_id);
-- 
2.29.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-02-05 11:18:30.420030612 +0000
+++ 0025-app-testpmd-fix-queue-stats-mapping-configuration.patch	2021-02-05 11:18:28.630687761 +0000
@@ -1 +1 @@
-From 08dcd187068666c96e8a16604a1c96160ed310e9 Mon Sep 17 00:00:00 2001
+From ed18af72c56f6c4c2b517844f44b8d330b0318e2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 08dcd187068666c96e8a16604a1c96160ed310e9 ]
+
@@ -39 +40,0 @@
-Cc: stable@dpdk.org

  parent reply	other threads:[~2021-02-05 11:20 UTC|newest]

Thread overview: 312+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-05 11:14 [dpdk-stable] patch 'eal/windows: fix build with MinGW-w64 8' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'bus/pci: " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'eal/windows: fix debug build with MinGW' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'eal/windows: fix vfprintf warning with clang' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'license: add licenses for exception cases' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'rib: fix insertion in some " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'bus/pci: fix hardware ID limit on Windows' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'bus/pci: ignore missing NUMA node " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'build: fix plugin load on static build' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'app/flow-perf: simplify objects initialization' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'regex/octeontx2: fix PCI table overflow' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'app/procinfo: fix _filters stats reporting' " luca.boccassi
2021-02-05 11:14 ` [dpdk-stable] patch 'app/procinfo: fix check on xstats-ids' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'app/procinfo: remove useless memset' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'app/procinfo: remove useless assignment' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/pcap: remove local variable shadowing outer one' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bonding: " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/af_xdp: remove useless assignment' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: remove redundant return' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'app/crypto-perf: remove always true condition' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/avp: " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'eal/linux: fix handling of error events from epoll' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'mbuf: add C++ include guard for dynamic fields header' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bonding: fix port id validity check on parsing' " luca.boccassi
2021-02-05 11:15 ` luca.boccassi [this message]
2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: remove warnings about inline specifiers' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: fix signed/unsigned mismatch warnings' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: support alternative MAE match fields' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ionic: do minor logging fixups' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix Verbs memory allocation callback' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix shared age action validation' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix memory leak when mapping fails' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: disable end of packet padding for Rx' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/hns3: fix FEC state query' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice: fix outer UDP Tx checksum offload' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix L4 checksum flag' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix global register recovery' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ixgbe: detect failed VF MTU set' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix Rx rings in RSS redirection table' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix VNIC config on Rx queue stop' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: release HWRM lock in error' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: propagate FW command failure to application' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix cleanup on mutex init failure' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix format specifier for unsigned int' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix max rings computation' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix freeing mbuf' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix VNIC RSS configure function' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix PF resource query' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: update MCDI headers for MAE privilege' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'common/sfc_efx/base: check " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/netvsc: ignore unsupported packet on sync command' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/iavf: fix memory leak in large VF' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice: fix outer checksum flags' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix Direct Verbs flow descriptor allocation' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix mbuf freeing in vectorized MPRQ' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/mlx5: fix buffer split offload advertising' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bonding: fix PCI address comparison on non-PCI ports' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix stats counters' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'doc: fix some statements for ice vector PMD' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix VLAN stripping in VF' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ixgbe: fix flex bytes flow director rule' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix Rx bytes statistics' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice: check Rx queue number on RSS init' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice/base: fix tunnel destroy' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/ice/base: fix null pointer dereference' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/iavf: fix queue pairs configuration' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/iavf: fix GTPU UL and DL support for flow director' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/i40e: fix flex payload rule conflict' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: limit Rx representor packets per poll' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix doorbell write ordering' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: fix outer UDP checksum Rx offload capability' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: make offload flags mapping per-ring' " luca.boccassi
2021-02-05 11:15 ` [dpdk-stable] patch 'net/bnxt: set correct checksum status in mbuf' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'app/testpmd: release flows left before port stop' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix tunnel rules validation on VF representor' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix constant array size' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix freeing packet pacing' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix flow action destroy wrapper' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix flow operation wrapper per OS' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: unify operations for all " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix device name size on Windows' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix comparison sign in flow engine' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix shared RSS and mark actions combination' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix VXLAN decap on non-VXLAN flow' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix leak on Rx queue creation failure' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix leak on Tx " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio-user: fix run closing stdin and close callfd' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio-user: fix protocol features advertising' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice/base: fix memory handling' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'doc: fix RSS flow description in i40e guide' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/i40e: fix returned code for RSS hardware failure' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'doc: add vtune profiling config to prog guide' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'build: fix linker flags on Windows' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'lpm: fix vector IPv4 lookup' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/hns3: fix build with SVE' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/octeontx: " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'common/octeontx2: " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/cxgbe: accept VLAN flow items without ethertype' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio: add missing backend features negotiation' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/virtio: fix memory init with vDPA backend' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/iavf: fix conflicting RSS combination rules' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice: fix RSS lookup table initialization' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice: disable IPv4 checksum offload in vector Tx' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/ice: enlarge Rx queue rearm threshold to 64' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/i40e: add null input checks' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/bnxt: fix lock init and destroy' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/bnxt: fix error handling in device start' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mvneta: check allocation in Rx queue flush' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/octeontx2: fix corruption in segments list' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix hairpin flow split decision' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'common/mlx5: fix completion queue entry size configuration' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: remove CQE padding device argument' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/mlx5: fix leak on ASO SQ creation failure' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'common/mlx5: fix pointer cast on Windows' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'ip_frag: remove padding length of fragment' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'doc: fix figure numbering in graph guide' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'bus/pci: fix build with Windows SDK >= 10.0.20253' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'service: propagate init error in EAL' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'test/mcslock: remove unneeded per lcore copy' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'eal/windows: fix C++ compatibility' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'test/rwlock: fix spelling and missing whitespace' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'test: fix terminal settings on exit' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'test: fix buffer overflow in Tx burst' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'fbarray: fix overlap check' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'examples/l3fwd: remove limitation on Tx queue count' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'regex/mlx5: fix memory rule alignment' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'regex/mlx5: fix support for group id' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'regex/mlx5: fix number of supported queues' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'crypto/qat: fix access to uninitialized variable' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'app/crypto-perf: fix spelling in output' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/i40e: fix X722 for 802.1ad frames ability' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/hns3: fix interception with flow director' " luca.boccassi
2021-02-05 11:16 ` [dpdk-stable] patch 'net/hns3: fix xstats with id and names' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix error code in xstats' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix Rx/Tx errors stats' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix crash with multi-process' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/qede: fix promiscuous enable' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'app/testpmd: fix start index for showing FEC array' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: fix MPORT related byte order handling' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: fix MAE match spec validation helper' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: fix MAE match spec class comparison API' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: enhance field ID check in field set " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'ethdev: fix max Rx packet length check' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'app/testpmd: fix max Rx packet length for VLAN packets' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/dpaa: fix jumbo frame flag condition for MTU set' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/dpaa2: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/e1000: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/i40e: fix jumbo frame flag condition' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/iavf: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/ice: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/ipn3ke: fix jumbo frame flag condition for MTU set' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/octeontx: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/octeontx2: fix jumbo frame flag condition for MTU' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/qede: fix jumbo frame flag condition for MTU set' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/sfc: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/thunderx: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/ixgbe: fix jumbo frame flag condition' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/cxgbe: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/axgbe: fix jumbo frame flag condition for MTU set' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/enetc: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hinic: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/nfp: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/liquidio: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hinic: restore vectorised code' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'ethdev: avoid blocking telemetry for link status' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'app/testpmd: fix IP checksum calculation' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/ionic: fix link speed and autonegotiation' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix VF query link status in dev init' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: use new opcode for clearing hardware resource' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix register length when dumping registers' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix data overwriting during register dump' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/hns3: fix dump register out of range' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'common/sfc_efx/base: apply mask to value on match field set' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/mlx5: fix unnecessary checking for RSS action' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net/ixgbe: fix configuration of max frame size' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'build: provide suitable error for "both" libraries option' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'eal: fix reciprocal header include' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'telemetry: fix missing " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'ethdev: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'net: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'mbuf: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'bitrate: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'rib: fix missing header includes' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'vhost: " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'ipsec: fix missing header include' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'fib: fix missing header includes' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'table: fix missing header include' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'pipeline: fix missing header includes' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'metrics: fix variable declaration in header' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'node: fix missing header include' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'app: fix build with extra include paths' " luca.boccassi
2021-02-05 11:17 ` [dpdk-stable] patch 'examples/pipeline: fix VXLAN script permission' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'build: force pkg-config for dependency detection' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/procinfo: fix security context info' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'eal/arm: fix debug build with gcc for 128-bit atomics' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'test/distributor: fix return buffer queue overload' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: create guest channel public header file' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: make channel message functions public' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: rename public structs' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: rename constants' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: export guest channel header file' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: clean up includes' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'test/ring: reduce duration of performance tests' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'lib: fix doxygen for parameters of function pointers' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'examples/pipeline: fix CLI parsing crash' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/eventdev: adjust event count order for pipeline test' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/eventdev: remove redundant enqueue in burst Tx' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'examples/eventdev: check CPU core enabling' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'examples/eventdev: add info output for main core' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'examples/eventdev: move ethdev stop to the end' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/eventdev: fix SMP barrier in performance test' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'test/event_crypto: set cipher operation in transform' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/crypto-perf: fix latency CSV output' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/crypto-perf: fix CSV output format' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'crypto/qat: fix digest in buffer' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'test/ipsec: fix result code for not supported' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix memory allocation check' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'eal: fix MCS lock header include' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'eal: fix internal ABI tag with clang' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'power: fix missing header includes' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'rib: fix missing header include' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/testpmd: fix packets dump overlapping' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/e1000: fix flow control mode setting' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix flow split combined with counter' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix flow split combined with age action' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx4: fix device detach' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx4: fix handling of probing failure' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: fix FW version log' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: fix packet type index calculation' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: refactor init/uninit' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/ice: drain out DCF AdminQ command queue' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'app/testpmd: fix key for RSS flow rule' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/bnxt: fix null termination of Rx mbuf chain' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/octeontx2: fix PF flow action for Tx' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix mark action in active tunnel offload' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix drop action in tunnel offload mode' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix flow tag decompression' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: refuse empty VLAN in flow pattern' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'doc: update flow mark action in mlx5 guide' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix multi-process port ID' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix crash on secondary process port close' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx5: fix port attach in secondary process' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/mlx4: " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/iavf: fix symmetric flow rule creation' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/ixgbe: disable NFS filtering' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/sfc: fix generic byte statistics to exclude FCS bytes' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'ethdev: fix close failure handling' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/virtio: fix getting old status on reconnect' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'vdpa/mlx5: fix configuration mutex cleanup' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/ionic: allow separate L3 and L4 checksum offload' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/ionic: fix up function attribute tags' " luca.boccassi
2021-02-05 11:18 ` [dpdk-stable] patch 'net/ionic: fix address handling in Tx' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: fix stack corruption' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: remove debug log on fast-path' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: remove VLAN flush' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: remove CRC length from MRU validation' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mvpp2: fix frame size checking' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mlx5: fix count actions query in sample flow' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/mlx5: fix wire vport hint' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: fix memory leak on secondary process exit' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: fix interrupt resources in Rx interrupt mode' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: adjust some comments' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/hns3: adjust format specifier for enum' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'app/testpmd: fix setting maximum packet length' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'app/testpmd: avoid exit without terminal restore' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/nfp: read chip model from PluDevice register' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: flush Rx buffers memory pool cache' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: fix Tx doorbell statistics' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: validate Rx req ID upon acquiring descriptor' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: fix Tx SQ free space assessment' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/ena: prevent double doorbell' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'net/iavf: fix vector mapping with queue' " luca.boccassi
2021-02-05 11:19 ` [dpdk-stable] patch 'app/testpmd: fix queue reconfig request on Rx split update' " luca.boccassi
2021-02-09 10:34 ` [dpdk-stable] patch 'net/bnxt: fix Rx completion ring size calculation' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/mlx5: fix shared RSS translation and cleanup' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'doc: fix QinQ flow rules in testpmd guide' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/enic: fix filter type used for flow API' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'doc: add FEC to NIC features' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'doc: fix product link in hns3 guide' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/sfc: fix TSO and checksum offloads for EF10' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/mlx5: check FW miniCQE format capabilities' " luca.boccassi
2021-02-09 10:42     ` Luca Boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/mlx5: fix miniCQE configuration for Verbs' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'vhost: fix vid allocation race' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/octeontx: fix max Rx packet length' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'doc: fix supported feature table in mlx5 guide' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/mlx5: fix counter and age flow action validation' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'common/mlx5: fix storing synced MAC to internal table' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: fix link status change from firmware' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: fix RSS indirection table size' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: remove MPLS from supported flow items' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: fix flow director rule residue on malloc failure' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: fix firmware exceptions by concurrent commands' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: fix VF reset on mailbox failure' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/hns3: validate requested maximum Rx frame length' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'app/testpmd: support shared age action query' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/pcap: fix byte stats for drop Tx' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/pcap: fix infinite Rx with large files' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/mlx5: fix shared RSS capability check' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/mlx5: validate hash Rx queue pointer' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'net/enic: fix filter log message' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'event/dlb: fix accessing uninitialized variables' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'eventdev: fix a return value comment' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'mempool: fix panic on dump or audit' " luca.boccassi
2021-02-09 10:35   ` [dpdk-stable] patch 'mbuf: remove unneeded atomic generic header include' " luca.boccassi
2021-02-12 23:40 ` [dpdk-stable] patch 'eal: fix automatic loading of drivers as shared libs' " luca.boccassi
2021-02-12 23:40   ` [dpdk-stable] patch 'net/ixgbe: fix UDP zero checksum on x86' " luca.boccassi
2021-02-12 23:40   ` [dpdk-stable] patch 'vhost: fix packed ring dequeue offloading' " luca.boccassi
2021-02-12 23:40   ` [dpdk-stable] patch 'doc: fix mark action zero value in mlx5 guide' " luca.boccassi
2021-02-12 23:40   ` [dpdk-stable] patch 'app/testpmd: fix help of metering commands' " luca.boccassi
2021-02-12 23:40   ` [dpdk-stable] patch 'usertools: fix binding built-in kernel driver' " luca.boccassi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210205111920.1272063-25-luca.boccassi@gmail.com \
    --to=luca.boccassi@gmail.com \
    --cc=ferruh.yigit@intel.com \
    --cc=lihuisong@huawei.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).