On 7/29/2020 6:02 PM, David Marchand wrote:
> 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?

Makes sense, +1 to add stable tag.

> 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
>>
> 
> 
> 

Reply via email to