[v6,3/3] app/testpmd: handle device recovery event
Checks
Commit Message
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Added code to handle error recovery events in testpmd.
This is an indication from the PMD that it is undergoing
an error recovery and recovered from the error condition.
Updated 20.11 release notes as well.
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
---
app/test-pmd/parameters.c | 8 ++++++--
app/test-pmd/testpmd.c | 6 +++++-
doc/guides/rel_notes/release_20_11.rst | 10 ++++++++++
3 files changed, 21 insertions(+), 3 deletions(-)
@@ -192,9 +192,9 @@ usage(char* progname)
printf(" --no-rmv-interrupt: disable device removal interrupt.\n");
printf(" --bitrate-stats=N: set the logical core N to perform "
"bit-rate calculation.\n");
- printf(" --print-event <unknown|intr_lsc|queue_state|intr_reset|vf_mbox|macsec|intr_rmv|flow_aged|all>: "
+ printf(" --print-event <unknown|intr_lsc|queue_state|intr_reset|vf_mbox|macsec|intr_rmv|flow_aged|err_recovering|recovered|all>: "
"enable print of designated event or all of them.\n");
- printf(" --mask-event <unknown|intr_lsc|queue_state|intr_reset|vf_mbox|macsec|intr_rmv|flow_aged|all>: "
+ printf(" --mask-event <unknown|intr_lsc|queue_state|intr_reset|vf_mbox|macsec|intr_rmv|flow_aged|err_recovering|recovered|all>: "
"disable print of designated event or all of them.\n");
printf(" --flow-isolate-all: "
"requests flow API isolated mode on all ports at initialization time.\n");
@@ -556,6 +556,10 @@ parse_event_printing_config(const char *optarg, int enable)
mask = UINT32_C(1) << RTE_ETH_EVENT_DESTROY;
else if (!strcmp(optarg, "flow_aged"))
mask = UINT32_C(1) << RTE_ETH_EVENT_FLOW_AGED;
+ else if (!strcmp(optarg, "err_recovering"))
+ mask = UINT32_C(1) << RTE_ETH_EVENT_ERR_RECOVERING;
+ else if (!strcmp(optarg, "recovered"))
+ mask = UINT32_C(1) << RTE_ETH_EVENT_RECOVERED;
else if (!strcmp(optarg, "all"))
mask = ~UINT32_C(0);
else {
@@ -380,6 +380,8 @@ static const char * const eth_event_desc[] = {
[RTE_ETH_EVENT_NEW] = "device probed",
[RTE_ETH_EVENT_DESTROY] = "device released",
[RTE_ETH_EVENT_FLOW_AGED] = "flow aged",
+ [RTE_ETH_EVENT_ERR_RECOVERING] = "device error under recovery",
+ [RTE_ETH_EVENT_RECOVERED] = "device recovered",
[RTE_ETH_EVENT_MAX] = NULL,
};
@@ -394,7 +396,9 @@ uint32_t event_print_mask = (UINT32_C(1) << RTE_ETH_EVENT_UNKNOWN) |
(UINT32_C(1) << RTE_ETH_EVENT_IPSEC) |
(UINT32_C(1) << RTE_ETH_EVENT_MACSEC) |
(UINT32_C(1) << RTE_ETH_EVENT_INTR_RMV) |
- (UINT32_C(1) << RTE_ETH_EVENT_FLOW_AGED);
+ (UINT32_C(1) << RTE_ETH_EVENT_FLOW_AGED) |
+ (UINT32_C(1) << RTE_ETH_EVENT_ERR_RECOVERING) |
+ (UINT32_C(1) << RTE_ETH_EVENT_RECOVERED);
/*
* Decide if all memory are locked for performance.
*/
@@ -78,11 +78,21 @@ New Features
``--portmask=N``
where N represents the hexadecimal bitmask of ports used.
+* **Added error recovery support.**
+
+ Added error recovery support to detect and recover from device errors including:
+
+ * Added new event: ``RTE_ETH_EVENT_ERR_RECOVERING`` for the driver to report
+ that the port is recovering from an error.
+ * Added new event: ``RTE_ETH_EVENT_RECOVERED`` for the driver to report
+ that the port has recovered from an error.
+
* **Updated Broadcom bnxt driver.**
Updated the Broadcom bnxt driver with new features and improvements, including:
* Added support for 200G PAM4 link speed.
+ * Added support to handle device recovery events.
Removed Items