[PATCH v3 06/16] efd: handle possible name truncation

Stephen Hemminger
2025-12-05T20:16:23Z

If the conversion of efd name to ring name gets truncated, then
log it. And if the ring name than causes collision, make sure
that log message includes error reason.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
lib/efd/rte_efd.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/efd/rte_efd.c b/lib/efd/rte_efd.c
index ebf1e0655f..ed2c509938 100644
--- a/lib/efd/rte_efd.c
+++ b/lib/efd/rte_efd.c
@@ -698,12 +698,15 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
TAILQ_INSERT_TAIL(efd_list, te, next);
rte_mcfg_tailq_write_unlock();

- snprintf(ring_name, sizeof(ring_name), "HT_%s", table->name);
+ if (snprintf(ring_name, sizeof(ring_name), "HT_%s", table->name)
+ >= (int)sizeof(ring_name))
+ EFD_LOG(NOTICE, "EFD ring name truncated to '%s'", ring_name);
+
/* Create ring (Dummy slot index is not enqueued) */
r = rte_ring_create(ring_name, rte_align32pow2(table->max_num_rules),
offline_cpu_socket, 0);
if (r == NULL) {
- EFD_LOG(ERR, "memory allocation failed");
+ EFD_LOG(ERR, "ring creation failed: %s", rte_strerror(rte_errno));
rte_efd_free(table);
return NULL;
}
--
2.51.0