[dpdk-dev] [EXT] Re: [PATCH] event/octeontx: handle partial receive packets

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Wed Nov 27 12:52:34 CET 2019



>-----Original Message-----
>From: Jerin Jacob <jerinjacobk at gmail.com>
>Sent: Wednesday, November 27, 2019 5:14 PM
>To: Pavan Nikhilesh Bhagavatula <pbhagavatula at marvell.com>
>Cc: Jerin Jacob Kollanukkaran <jerinj at marvell.com>; dpdk-dev
><dev at dpdk.org>
>Subject: [EXT] Re: [dpdk-dev] [PATCH] event/octeontx: handle partial
>receive packets
>
>External Email
>
>----------------------------------------------------------------------
>On Wed, Nov 27, 2019 at 8:05 PM <pbhagavatula at marvell.com> wrote:
>>
>> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>>
>> When net/octeontx is connected to event/octeontx as an event Rx
>adapter,
>> PKI aka 'net/octeontx' can forward packets directly to SSO aka
>> 'event/octeontx'.
>> When pumping traffic to PKI if flow control is disabled internal FIFOs
>> might be overrun causing partial l2 packets to be enqueued.
>> SSO receives <31:0> TAG tag calculated by PKI, in normal cases
><31:28>
>> is always 0 which signifies RTE_EVENT_TYPE_ETHDEV. But in case of
>> partial received packets PKI sets the <31:0> TAG as 0xFFFFFFFF which
>> is an invalid event type.
>>
>> Add a check to see if TAG is 0xFFFFFFFF and free the partial receive
>> packet.
>>
>> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
>
># Could you add Fixes:
># Change the subject to "net/octeontx: fix partial Rx packet handling"
># Cc stable
># Fix the following check-git-log
>
>Wrong headline prefix:
>        event/octeontx: handle partial receive packets
>

Will send v2 with updated git log

>Please see inline
>
>> ---
>>  drivers/event/octeontx/ssovf_worker.h        | 17 +++++++++++++++-
>-
>>  drivers/net/octeontx/base/octeontx_pki_var.h |  2 +-
>>  2 files changed, 16 insertions(+), 3 deletions(-)
>>
>
>>  ssows_get_work(struct ssows *ws, struct rte_event *ev)
>>  {
>> @@ -59,9 +68,13 @@ ssows_get_work(struct ssows *ws, struct
>rte_event *ev)
>>         ws->cur_grp = sched_type_queue >> 2;
>>         sched_type_queue = sched_type_queue << 38;
>>         ev->event = sched_type_queue | (get_work0 & 0xffffffff);
>> +
>>         if (get_work1 && ev->event_type == RTE_EVENT_TYPE_ETHDEV)
>{
>>                 ev->mbuf = ssovf_octeontx_wqe_to_pkt(get_work1,
>>                                 (ev->event >> 20) & 0x7F);
>> +       } else if ((get_work0 & 0xFFFFFFFF) == 0xFFFFFFFF) {
>
>Can we make it as unlikely()?

Since it's  error case I Will add in v2.


More information about the dev mailing list