[dpdk-dev] [PATCH v3 1/2] librte_pipeline: add support for packet redirection at action handlers

Panu Matilainen pmatilai at redhat.com
Thu Mar 3 10:35:05 CET 2016


On 03/02/2016 10:41 PM, Jasvinder Singh wrote:
> Currently, there is no mechanism that allows the pipeline ports (in/out) and
> table action handlers to override the default forwarding decision (as
> previously configured per input port or in the table entry). Therefore, new
> pipeline API functions have been added which allows action handlers to
> hijack packets and remove them from the pipeline processing, and then either
> drop them or send them out of the pipeline on any output port. The port
> (in/out) and table action handler prototypes have been changed for making
> use of these new API functions. This feature will be helpful to implement
> functions such as exception handling (e.g. TTL =0), load balancing etc.
>
> Signed-off-by: Jasvinder Singh <jasvinder.singh at intel.com>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>
> ---
> v3
> * improved comments in "rte_pipeline.h"
>
> v2
> * rebased on master
>
>   doc/guides/rel_notes/deprecation.rst         |   5 -
>   doc/guides/rel_notes/release_16_04.rst       |   6 +-
>   lib/librte_pipeline/Makefile                 |   4 +-
>   lib/librte_pipeline/rte_pipeline.c           | 461 ++++++++++++++-------------
>   lib/librte_pipeline/rte_pipeline.h           | 174 ++++++----
>   lib/librte_pipeline/rte_pipeline_version.map |   8 +
>   6 files changed, 362 insertions(+), 296 deletions(-)
>
[...]

This causes a build failure:

== Build app/test-pipeline
   CC pipeline_stub.o
/srv/work/repos/dpdk/app/test-pipeline/pipeline_stub.c: In function 
‘app_main_loop_worker_pipeline_stub’:
/srv/work/repos/dpdk/app/test-pipeline/pipeline_stub.c:97:4: error: 
unknown field ‘f_action_bulk’ specified in initializer
     .f_action_bulk = NULL,
     ^
/srv/work/repos/dpdk/mk/internal/rte.compile-pre.mk:126: recipe for 
target 'pipeline_stub.o' failed

Each individual commit needs to be buildable. Since its simply an 
incompatible API change, I guess there's no other way than updating the 
test app(s) in the same commit as the library. The other alternative 
would be temporarily disabling the test app(s) in the previous commit 
but that doesn't seem any better to me.

	- Panu -


More information about the dev mailing list