When starting the ip_fragmentation or ip_reassembly example
on several sockets, it fails.

The name of the lpm6 table is the same on every socket,
resulting in a table creation failure (-EEXIST). The failure
appeared after:
commit f82f705b635d ("lpm: fix allocation of an existing object")

Indeed, before this commit the returned value when the existing
table, which was probably a bug in that case: one table for 2
sockets for lpm6, and one per socket for lpm.

Fixes: 74de12b7b63a ("examples/ip_fragmentation: overhaul")
Fixes: b84fb4cb88ff ("examples/ip_reassembly: overhaul")
Reported-by: Ding Heng <hengx.ding at intel.com>
Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 examples/ip_fragmentation/main.c | 2 +-
 examples/ip_reassembly/main.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index b00f1e6..2f45264 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -785,7 +785,7 @@ init_mem(void)
                        RTE_LOG(INFO, IP_FRAG, "Creating LPM6 table on socket 
%i\n", socket);
                        snprintf(buf, sizeof(buf), "IP_FRAG_LPM_%i", socket);

-                       lpm6 = rte_lpm6_create("IP_FRAG_LPM6", socket, 
&lpm6_config);
+                       lpm6 = rte_lpm6_create(buf, socket, &lpm6_config);
                        if (lpm6 == NULL) {
                                RTE_LOG(ERR, IP_FRAG, "Cannot create LPM 
table\n");
                                return -1;
diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index a8aabdc..ef09a2e 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -963,7 +963,7 @@ init_mem(void)
                        RTE_LOG(INFO, IP_RSMBL, "Creating LPM6 table on socket 
%i\n", socket);
                        snprintf(buf, sizeof(buf), "IP_RSMBL_LPM_%i", socket);

-                       lpm6 = rte_lpm6_create("IP_RSMBL_LPM6", socket, 
&lpm6_config);
+                       lpm6 = rte_lpm6_create(buf, socket, &lpm6_config);
                        if (lpm6 == NULL) {
                                RTE_LOG(ERR, IP_RSMBL, "Cannot create LPM 
table\n");
                                return -1;
-- 
2.8.0.rc3

Reply via email to