New upstream version 18.02
[deb_dpdk.git] / examples / ip_pipeline / pipeline / pipeline_passthrough_be.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2015 Intel Corporation
3  */
4
5 #ifndef __INCLUDE_PIPELINE_PASSTHROUGH_BE_H__
6 #define __INCLUDE_PIPELINE_PASSTHROUGH_BE_H__
7
8 #include "pipeline_common_be.h"
9
10 #define PIPELINE_PASSTHROUGH_DMA_SIZE_MAX                             64
11
12 #ifndef PIPELINE_PASSTHROUGH_SWAP_N_FIELDS_MAX
13 #define PIPELINE_PASSTHROUGH_SWAP_N_FIELDS_MAX                        8
14 #endif
15
16 #ifndef PIPELINE_PASSTHROUGH_SWAP_FIELD_SIZE_MAX
17 #define PIPELINE_PASSTHROUGH_SWAP_FIELD_SIZE_MAX                      16
18 #endif
19
20 struct pipeline_passthrough_params {
21         uint32_t dma_enabled;
22         uint32_t dma_dst_offset;
23         uint32_t dma_src_offset;
24         uint8_t dma_src_mask[PIPELINE_PASSTHROUGH_DMA_SIZE_MAX];
25         uint32_t dma_size;
26
27         uint32_t dma_hash_enabled;
28         uint32_t dma_hash_offset;
29
30         uint32_t dma_hash_lb_enabled;
31
32         uint32_t swap_enabled;
33         uint32_t swap_field0_offset[PIPELINE_PASSTHROUGH_SWAP_N_FIELDS_MAX];
34         uint32_t swap_field1_offset[PIPELINE_PASSTHROUGH_SWAP_N_FIELDS_MAX];
35         uint32_t swap_n_fields;
36 };
37
38 int
39 pipeline_passthrough_parse_args(struct pipeline_passthrough_params *p,
40         struct pipeline_params *params);
41
42 extern struct pipeline_be_ops pipeline_passthrough_be_ops;
43
44 #endif