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

Jerin Jacob jerinjacobk at gmail.com
Wed Nov 27 12:43:59 CET 2019


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

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()?


More information about the dev mailing list