diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.c b/lib/librte_pmd_pcap/rte_eth_pcap.c index 2ff1e7721e..19492e8b37 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; @@ -155,6 +156,7 @@ eth_pcap_rx(void *queue, header.len); mbuf->data_len = (uint16_t)header.len; mbuf->pkt_len = mbuf->data_len; + mbuf->port = pcap_q->in_port; bufs[num_rx] = mbuf; num_rx++; } else { @@ -376,6 +378,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; }