pipeline: support packet mirroring
authorCristian Dumitrescu <cristian.dumitrescu@intel.com>
Wed, 6 Apr 2022 18:55:31 +0000 (19:55 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 1 Jun 2022 13:04:34 +0000 (15:04 +0200)
commitdac0ecd9098c7ec441c109bf2ddb40b2afbf3520
tree9cf86cea35a6e4f17dcf7d932e70cf309f1828ae
parentb94eb6cd35490c24f01aa14c1131b7206835f609
pipeline: support packet mirroring

The packet mirroring is configured through slots and sessions, with
the number of slots and sessions set at init.

The new "mirror" instruction assigns one of the existing sessions to a
specific slot, which results in scheduling a mirror operation for the
current packet to be executed later at the time the packet is either
transmitted or dropped.

Several copies of the same input packet can be mirrored to different
output ports by using multiple slots.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Kamalakannan R <kamalakannan.r@intel.com>
lib/pipeline/rte_swx_ctl.h
lib/pipeline/rte_swx_pipeline.c
lib/pipeline/rte_swx_pipeline.h
lib/pipeline/rte_swx_pipeline_internal.h
lib/pipeline/version.map