af_packet: set input port in mbuf
authorPavel Krauz <pavel.krauz@anritsu.com>
Thu, 10 Dec 2015 10:25:05 +0000 (11:25 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 10 Dec 2015 21:07:06 +0000 (22:07 +0100)
Fixes port number in mbuf structure when using with eth_af_packet

Signed-off-by: Pavel Krauz <pavel.krauz@anritsu.com>
drivers/net/af_packet/rte_eth_af_packet.c

index 3237e6e..767f36b 100644 (file)
@@ -74,6 +74,7 @@ struct pkt_rx_queue {
        unsigned int framenum;
 
        struct rte_mempool *mb_pool;
+       uint8_t in_port;
 
        volatile unsigned long rx_pkts;
        volatile unsigned long err_pkts;
@@ -160,6 +161,7 @@ eth_af_packet_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
                ppd->tp_status = TP_STATUS_KERNEL;
                if (++framenum >= framecount)
                        framenum = 0;
+               mbuf->port = pkt_q->in_port;
 
                /* account for the receive frame */
                bufs[i] = mbuf;
@@ -365,6 +367,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev,
        }
 
        dev->data->rx_queues[rx_queue_id] = pkt_q;
+       pkt_q->in_port = dev->data->port_id;
 
        return 0;
 }