9eb2c9a480
Define filter work request API used to construct filter operations to be communicated with firmware. These requests are sent via control queue and completions come asynchronously in firmware event queue. Implement flow create operation to create filters in LE-TCAM (maskfull) region at specified index. Signed-off-by: Shagun Agrawal <shaguna@chelsio.com> Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com> Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2018 Chelsio Communications.
|
|
* All rights reserved.
|
|
*/
|
|
#ifndef _CXGBE_FLOW_H_
|
|
#define _CXGBE_FLOW_H_
|
|
|
|
#include <rte_flow_driver.h>
|
|
#include "cxgbe_filter.h"
|
|
#include "cxgbe.h"
|
|
|
|
#define CXGBE_FLOW_POLL_US 10
|
|
#define CXGBE_FLOW_POLL_CNT 10
|
|
|
|
struct chrte_fparse {
|
|
int (*fptr)(const void *mask, /* currently supported mask */
|
|
const struct rte_flow_item *item, /* user input */
|
|
struct ch_filter_specification *fs, /* where to parse */
|
|
struct rte_flow_error *e);
|
|
const void *dmask; /* Specify what is supported by chelsio by default*/
|
|
};
|
|
|
|
struct rte_flow {
|
|
struct filter_entry *f;
|
|
struct ch_filter_specification fs; /* temp, to create filter */
|
|
struct chrte_fparse *item_parser;
|
|
/*
|
|
* filter_entry doesn't store user priority.
|
|
* Post creation of filter this will indicate the
|
|
* flow index (fidx) for both hash and tcam filters
|
|
*/
|
|
unsigned int fidx;
|
|
struct rte_eth_dev *dev;
|
|
};
|
|
|
|
int
|
|
cxgbe_dev_filter_ctrl(struct rte_eth_dev *dev,
|
|
enum rte_filter_type filter_type,
|
|
enum rte_filter_op filter_op,
|
|
void *arg);
|
|
|
|
#endif /* _CXGBE_FLOW_H_ */
|