The pkt.in_port parameter in mbuf should be set with an input port id because DPDK apps may use it to know where each packet came from.
Signed-off-by: Saori USAMI <susami at igel.co.jp> --- lib/librte_pmd_pcap/rte_eth_pcap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.c b/lib/librte_pmd_pcap/rte_eth_pcap.c index eebe768..cfd3de4 100644 --- a/lib/librte_pmd_pcap/rte_eth_pcap.c +++ b/lib/librte_pmd_pcap/rte_eth_pcap.c @@ -63,6 +63,7 @@ static uint64_t hz; struct pcap_rx_queue { pcap_t *pcap; + uint8_t in_port; struct rte_mempool *mb_pool; volatile unsigned long rx_pkts; volatile unsigned long err_pkts; @@ -154,6 +155,7 @@ eth_pcap_rx(void *queue, rte_memcpy(mbuf->pkt.data, packet, header.len); mbuf->pkt.data_len = (uint16_t)header.len; mbuf->pkt.pkt_len = mbuf->pkt.data_len; + mbuf->pkt.in_port = pcap_q->in_port; bufs[num_rx] = mbuf; num_rx++; } else { @@ -373,6 +375,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, struct pcap_rx_queue *pcap_q = &internals->rx_queue[rx_queue_id]; pcap_q->mb_pool = mb_pool; dev->data->rx_queues[rx_queue_id] = pcap_q; + pcap_q->in_port = dev->data->port_id; return 0; } -- 1.9.1