780b9c8924
Add support for zero aura for inline meta packets and register callback to ROC to create meta pool via mempool. Also add devargs to override meta buffer count and size. Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
101 lines
2.3 KiB
C
101 lines
2.3 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(C) 2021 Marvell.
|
|
*/
|
|
#ifndef __CN10K_ETHDEV_H__
|
|
#define __CN10K_ETHDEV_H__
|
|
|
|
#include <cnxk_ethdev.h>
|
|
#include <cnxk_security.h>
|
|
|
|
struct cn10k_eth_txq {
|
|
uint64_t send_hdr_w0;
|
|
int64_t fc_cache_pkts;
|
|
uint64_t *fc_mem;
|
|
uintptr_t lmt_base;
|
|
rte_iova_t io_addr;
|
|
uint16_t sqes_per_sqb_log2;
|
|
int16_t nb_sqb_bufs_adj;
|
|
rte_iova_t cpt_io_addr;
|
|
uint64_t sa_base;
|
|
uint64_t *cpt_fc;
|
|
uint16_t cpt_desc;
|
|
int32_t *cpt_fc_sw;
|
|
uint64_t lso_tun_fmt;
|
|
uint64_t ts_mem;
|
|
uint64_t mark_flag : 8;
|
|
uint64_t mark_fmt : 48;
|
|
} __plt_cache_aligned;
|
|
|
|
struct cn10k_eth_rxq {
|
|
uint64_t mbuf_initializer;
|
|
uintptr_t desc;
|
|
void *lookup_mem;
|
|
uintptr_t cq_door;
|
|
uint64_t wdata;
|
|
int64_t *cq_status;
|
|
uint32_t head;
|
|
uint32_t qmask;
|
|
uint32_t available;
|
|
uint16_t data_off;
|
|
uint64_t sa_base;
|
|
uint64_t lmt_base;
|
|
uint64_t meta_aura;
|
|
uint16_t rq;
|
|
struct cnxk_timesync_info *tstamp;
|
|
} __plt_cache_aligned;
|
|
|
|
/* Private data in sw rsvd area of struct roc_ot_ipsec_inb_sa */
|
|
struct cn10k_inb_priv_data {
|
|
void *userdata;
|
|
int reass_dynfield_off;
|
|
int reass_dynflag_bit;
|
|
struct cnxk_eth_sec_sess *eth_sec;
|
|
};
|
|
|
|
/* Private data in sw rsvd area of struct roc_ot_ipsec_outb_sa */
|
|
struct cn10k_outb_priv_data {
|
|
void *userdata;
|
|
/* Rlen computation data */
|
|
struct cnxk_ipsec_outb_rlens rlens;
|
|
/* Back pointer to eth sec session */
|
|
struct cnxk_eth_sec_sess *eth_sec;
|
|
/* SA index */
|
|
uint32_t sa_idx;
|
|
};
|
|
|
|
struct cn10k_sec_sess_priv {
|
|
union {
|
|
struct {
|
|
uint32_t sa_idx;
|
|
uint8_t inb_sa : 1;
|
|
uint8_t outer_ip_ver : 1;
|
|
uint8_t mode : 1;
|
|
uint8_t roundup_byte : 5;
|
|
uint8_t roundup_len;
|
|
uint16_t partial_len : 10;
|
|
uint16_t chksum : 2;
|
|
uint16_t dec_ttl : 1;
|
|
uint16_t rsvd : 3;
|
|
};
|
|
|
|
uint64_t u64;
|
|
};
|
|
} __rte_packed;
|
|
|
|
/* Rx and Tx routines */
|
|
void cn10k_eth_set_rx_function(struct rte_eth_dev *eth_dev);
|
|
void cn10k_eth_set_tx_function(struct rte_eth_dev *eth_dev);
|
|
|
|
/* Security context setup */
|
|
void cn10k_eth_sec_ops_override(void);
|
|
|
|
/* SSO Work callback */
|
|
void cn10k_eth_sec_sso_work_cb(uint64_t *gw, void *args,
|
|
uint32_t soft_exp_event);
|
|
|
|
#define LMT_OFF(lmt_addr, lmt_num, offset) \
|
|
(void *)((uintptr_t)(lmt_addr) + \
|
|
((uint64_t)(lmt_num) << ROC_LMT_LINE_SIZE_LOG2) + (offset))
|
|
|
|
#endif /* __CN10K_ETHDEV_H__ */
|