On Fri, Jul 24, 2020 at 5:10 PM Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > From: jiancheng pei <j...@sonicwall.com> > > Store port_id in pmd_internals when eth kni device is created. > Then set packet port of rte_mbuf in function eth_kni_rx.
LGTM. Is this fix worth a backport? A net driver is expected to set the port in all mbufs (m->port is initialised/reset to MBUF_INVALID_PORT). > > Signed-off-by: Jecky Pei <j...@sonicwall.com> > Reviewed-by: Ferruh Yigit <ferruh.yi...@intel.com> > --- > drivers/net/kni/rte_eth_kni.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c > index cde98f0bb2..831fe96c96 100644 > --- a/drivers/net/kni/rte_eth_kni.c > +++ b/drivers/net/kni/rte_eth_kni.c > @@ -47,6 +47,7 @@ struct pmd_queue { > > struct pmd_internals { > struct rte_kni *kni; > + uint16_t port_id; > int is_kni_started; > > pthread_t thread; > @@ -78,8 +79,11 @@ eth_kni_rx(void *q, struct rte_mbuf **bufs, uint16_t > nb_bufs) > struct pmd_queue *kni_q = q; > struct rte_kni *kni = kni_q->internals->kni; > uint16_t nb_pkts; > + int i; > > nb_pkts = rte_kni_rx_burst(kni, bufs, nb_bufs); > + for (i = 0; i < nb_pkts; i++) > + bufs[i]->port = kni_q->internals->port_id; > > kni_q->rx.pkts += nb_pkts; > > @@ -372,6 +376,7 @@ eth_kni_create(struct rte_vdev_device *vdev, > return NULL; > > internals = eth_dev->data->dev_private; > + internals->port_id = eth_dev->data->port_id; > data = eth_dev->data; > data->nb_rx_queues = 1; > data->nb_tx_queues = 1; > -- > 2.25.4 > -- David Marchand