net/thunderx: add tunneling extension info capability flag

Certain thunderx SoC pass has additional optional word
in Rx descriptor to hold tunneling extension info.
Based on this capability, the location where packet pointer
address stored in Rx descriptor will vary.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
This commit is contained in:
Jerin Jacob 2016-07-21 19:31:46 +05:30 committed by Bruce Richardson
parent 398a1be141
commit e2c519b392
2 changed files with 9 additions and 3 deletions

View File

@ -50,8 +50,9 @@
#define NICVF_GET_TX_STATS(reg) \ #define NICVF_GET_TX_STATS(reg) \
nicvf_reg_read(nic, NIC_VNIC_TX_STAT_0_4 | (reg << 3)) nicvf_reg_read(nic, NIC_VNIC_TX_STAT_0_4 | (reg << 3))
#define NICVF_CAP_TUNNEL_PARSING (1ULL << 0)
#define NICVF_CAP_TUNNEL_PARSING (1ULL << 0) /* Additional word in Rx descriptor to hold optional tunneling extension info */
#define NICVF_CAP_CQE_RX2 (1ULL << 1)
enum nicvf_tns_mode { enum nicvf_tns_mode {
NIC_TNS_BYPASS_MODE, NIC_TNS_BYPASS_MODE,

View File

@ -1142,7 +1142,12 @@ nicvf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
rxq->cq_status = nicvf_qset_base(nic, qidx) + NIC_QSET_CQ_0_7_STATUS; rxq->cq_status = nicvf_qset_base(nic, qidx) + NIC_QSET_CQ_0_7_STATUS;
rxq->cq_door = nicvf_qset_base(nic, qidx) + NIC_QSET_CQ_0_7_DOOR; rxq->cq_door = nicvf_qset_base(nic, qidx) + NIC_QSET_CQ_0_7_DOOR;
rxq->precharge_cnt = 0; rxq->precharge_cnt = 0;
rxq->rbptr_offset = NICVF_CQE_RBPTR_WORD;
if (nicvf_hw_cap(nic) & NICVF_CAP_CQE_RX2)
rxq->rbptr_offset = NICVF_CQE_RX2_RBPTR_WORD;
else
rxq->rbptr_offset = NICVF_CQE_RBPTR_WORD;
/* Alloc completion queue */ /* Alloc completion queue */
if (nicvf_qset_cq_alloc(nic, rxq, rxq->queue_id, nb_desc)) { if (nicvf_qset_cq_alloc(nic, rxq, rxq->queue_id, nb_desc)) {