[dpdk-dev] example/ip_pipeline: fix source port mempool assignment

Message ID 1449239336-14507-1-git-send-email-roy.fan.zhang@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Fan Zhang Dec. 4, 2015, 2:28 p.m. UTC
  Fixes the wrong source port mempool assignment (commit id eb32fe7c). The
source port is now assigned by parsed mempool id index value either by
default or configured by CFG file.

Previously, the mempool id for locating source port's mempool pointer was
the port id. When multiple source ports exist in the same pipeline, and
the default mempool configuration is used (one MEMPOOL0 is shared between
all source ports), the invalid mempool pointer (NULL) will be assigned to
source ports other than first source port.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 examples/ip_pipeline/init.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Thomas Monjalon Dec. 7, 2015, 12:18 a.m. UTC | #1
2015-12-04 14:28, Fan Zhang:
> Fixes the wrong source port mempool assignment (commit id eb32fe7c). The
> source port is now assigned by parsed mempool id index value either by
> default or configured by CFG file.
> 
> Previously, the mempool id for locating source port's mempool pointer was
> the port id. When multiple source ports exist in the same pipeline, and
> the default mempool configuration is used (one MEMPOOL0 is shared between
> all source ports), the invalid mempool pointer (NULL) will be assigned to
> source ports other than first source port.
> 
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied, thanks
  

Patch

diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c
index 46d044e..28e959b 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -1064,6 +1064,7 @@  static void app_pipeline_params_get(struct app_params *app,
 	struct pipeline_params *p_out)
 {
 	uint32_t i;
+	uint32_t mempool_id;
 
 	strcpy(p_out->name, p_in->name);
 
@@ -1147,8 +1148,9 @@  static void app_pipeline_params_get(struct app_params *app,
 			out->burst_size = app->tm_params[in->id].burst_read;
 			break;
 		case APP_PKTQ_IN_SOURCE:
+			mempool_id = app->source_params[in->id].mempool_id;
 			out->type = PIPELINE_PORT_IN_SOURCE;
-			out->params.source.mempool = app->mempool[in->id];
+			out->params.source.mempool = app->mempool[mempool_id];
 			out->burst_size = app->source_params[in->id].burst;
 			break;
 		default: