pcap: set port id in received mbuf
authorSaori Usami <susami@igel.co.jp>
Fri, 5 Sep 2014 10:10:36 +0000 (19:10 +0900)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 29 Sep 2014 14:34:50 +0000 (16:34 +0200)
The 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@igel.co.jp>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
lib/librte_pmd_pcap/rte_eth_pcap.c

index 2ff1e77..19492e8 100644 (file)
@@ -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;
 }