[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