Hi, How about the following patch for the next DPDK release?
Thanks, Saori 2014-09-05 19:10 GMT+09:00 Saori USAMI <susami at igel.co.jp>: > 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 > >