numam-dpdk/drivers/net/cxgbe/clip_tbl.h
Shagun Agrawal 3f2c1e209c net/cxgbe: add Compressed Local IP region
CLIP region holds destination IPv6 addresses to be matched for
corresponding flows. Query firmware for CLIP resources and allocate
table to manage them. Also update LE-TCAM to use CLIP to reduce
number of slots needed to offload IPv6 flows.

Signed-off-by: Shagun Agrawal <shaguna@chelsio.com>
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
2018-07-04 22:20:41 +02:00

32 lines
1015 B
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 Chelsio Communications.
* All rights reserved.
*/
#ifndef _CXGBE_CLIP_H_
#define _CXGBE_CLIP_H_
/*
* State for the corresponding entry of the HW CLIP table.
*/
struct clip_entry {
enum filter_type type; /* entry type */
u32 addr[4]; /* IPV4 or IPV6 address */
rte_spinlock_t lock; /* entry lock */
rte_atomic32_t refcnt; /* entry reference count */
};
struct clip_tbl {
unsigned int clipt_start; /* start index of CLIP table */
unsigned int clipt_size; /* size of CLIP table */
rte_rwlock_t lock; /* table rw lock */
struct clip_entry cl_list[0]; /* MUST BE LAST */
};
struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start,
unsigned int clipt_end);
void t4_cleanup_clip_tbl(struct adapter *adap);
struct clip_entry *cxgbe_clip_alloc(struct rte_eth_dev *dev, u32 *lip);
void cxgbe_clip_release(struct rte_eth_dev *dev, struct clip_entry *ce);
#endif /* _CXGBE_CLIP_H_ */