numam-dpdk/drivers/net/cxgbe/smt.h
Rahul Lakkireddy a12f14bc38 net/cxgbe: use C11-style compiler builtins for atomics
Replace rte_atomic ops with C11 atomics.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
2021-07-02 19:03:03 +02:00

46 lines
896 B
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2020 Chelsio Communications.
* All rights reserved.
*/
#ifndef __CXGBE_SMT_H_
#define __CXGBE_SMT_H_
#include "base/t4_msg.h"
enum {
SMT_STATE_SWITCHING,
SMT_STATE_UNUSED,
SMT_STATE_ERROR
};
enum {
SMT_SIZE = 256
};
struct smt_entry {
u16 state;
u16 idx;
u16 pfvf;
u16 hw_idx;
u8 src_mac[RTE_ETHER_ADDR_LEN];
u32 refcnt;
rte_spinlock_t lock;
};
struct smt_data {
unsigned int smt_size;
unsigned int smt_start;
rte_rwlock_t lock;
struct smt_entry smtab[0];
};
struct smt_data *t4_init_smt(u32 smt_start_idx, u32 smt_size);
void t4_cleanup_smt(struct adapter *adap);
void cxgbe_do_smt_write_rpl(struct adapter *adap,
const struct cpl_smt_write_rpl *rpl);
struct smt_entry *cxgbe_smt_alloc_switching(struct rte_eth_dev *dev, u8 *smac);
void cxgbe_smt_release(struct smt_entry *e);
#endif /* __CXGBE_SMT_H_ */