J'Installées d'en-tête de 256 octets, et je veux l'utiliser pour contenir des données privées, mais bnx2x_recv_pkts
méthode mbuf mis data_off à cqe_fp->placement_offset
en dpdk? Pourquoi?pourquoi bnx2x_recv_pkts mis mbuf data_off à cqe_fp-> placement_offset à dpdk?
len = cqe_fp->pkt_len_or_gro_seg_len;
**pad = cqe_fp->placement_offset;**
new_mb = rte_mbuf_raw_alloc(rxq->mb_pool);
if (unlikely(!new_mb)) {
PMD_RX_LOG(ERR, "mbuf alloc fail fp[%02d]", fp->index);
rte_eth_devices[rxq->port_id].data->
rx_mbuf_alloc_failed++;
goto next_rx;
}
rx_mb = rxq->sw_ring[bd_cons];
rxq->sw_ring[bd_cons] = new_mb;
rxq->rx_ring[bd_prod] = new_mb->buf_physaddr;
rx_pref = NEXT_RX_BD(bd_cons) & MAX_RX_BD(rxq);
rte_prefetch0(rxq->sw_ring[rx_pref]);
if ((rx_pref & 0x3) == 0) {
rte_prefetch0(&rxq->rx_ring[rx_pref]);
rte_prefetch0(&rxq->sw_ring[rx_pref]);
}
**rx_mb->data_off = pad;**
rx_mb->nb_segs = 1;
rx_mb->next = NULL;
rx_mb->pkt_len = rx_mb->data_len = len;
rx_mb->port = rxq->port_id;
rte_prefetch1(rte_pktmbuf_mtod(rx_mb, void *));
Je commente la ligne de rx_mb-> data_off = pad, fait une nouvelle lib, mais cela ne fonctionne pas lors de l'exécution. maintenant je veux savoir comment cette valeur de cqe_fp-> placement_offset mis à 2? Je regarde la source de dpdk-stable-17.11, mais pas trouvé. – eason