[dpdk-dev] [PATCH] enic: set correct port ID in received mbufs

2015-04-20 Thread Thomas Monjalon
> >This field is not supposed to contain the RX queue index. Applications can
> >rely on it to determine the port a given mbuf comes from.
> >
> >Signed-off-by: Adrien Mazarguil 
> 
> Acked-by: Sujith Sankar 

Applied, thanks


[dpdk-dev] [PATCH] enic: set correct port ID in received mbufs

2015-04-14 Thread Adrien Mazarguil
This field is not supposed to contain the RX queue index. Applications can
rely on it to determine the port a given mbuf comes from.

Signed-off-by: Adrien Mazarguil 
---
 lib/librte_pmd_enic/enic.h| 1 +
 lib/librte_pmd_enic/enic_ethdev.c | 1 +
 lib/librte_pmd_enic/enic_main.c   | 4 ++--
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/librte_pmd_enic/enic.h b/lib/librte_pmd_enic/enic.h
index a50bff1..0eba334 100644
--- a/lib/librte_pmd_enic/enic.h
+++ b/lib/librte_pmd_enic/enic.h
@@ -99,6 +99,7 @@ struct enic {
struct vnic_dev_bar bar0;
struct vnic_dev *vdev;

+   unsigned int port_id;
struct rte_eth_dev *rte_dev;
struct enic_fdir fdir;
char bdf_name[ENICPMD_BDF_LENGTH];
diff --git a/lib/librte_pmd_enic/enic_ethdev.c 
b/lib/librte_pmd_enic/enic_ethdev.c
index 3e53f86..a319e1e 100644
--- a/lib/librte_pmd_enic/enic_ethdev.c
+++ b/lib/librte_pmd_enic/enic_ethdev.c
@@ -567,6 +567,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)

ENICPMD_FUNC_TRACE();

+   enic->port_id = eth_dev->data->port_id;
enic->rte_dev = eth_dev;
eth_dev->dev_ops = _eth_dev_ops;
eth_dev->rx_pkt_burst = _recv_pkts;
diff --git a/lib/librte_pmd_enic/enic_main.c b/lib/librte_pmd_enic/enic_main.c
index 0e40d46..15313c2 100644
--- a/lib/librte_pmd_enic/enic_main.c
+++ b/lib/librte_pmd_enic/enic_main.c
@@ -344,7 +344,7 @@ static int enic_rq_alloc_buf(struct vnic_rq *rq)
hdr_mbuf->data_off = RTE_PKTMBUF_HEADROOM;

hdr_mbuf->nb_segs = 2;
-   hdr_mbuf->port = rq->index;
+   hdr_mbuf->port = enic->port_id;
hdr_mbuf->next = mbuf;

dma_addr = (dma_addr_t)
@@ -359,7 +359,7 @@ static int enic_rq_alloc_buf(struct vnic_rq *rq)
type = RQ_ENET_TYPE_NOT_SOP;
} else {
mbuf->nb_segs = 1;
-   mbuf->port = rq->index;
+   mbuf->port = enic->port_id;
}

mbuf->data_off = RTE_PKTMBUF_HEADROOM;
-- 
2.1.0