DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	Shahaf Shuler <shahafs@mellanox.com>, Wei Dai <wei.dai@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] Rx/Tx offloads checks behaviour in 18.05
Date: Fri, 11 May 2018 10:07:50 +0300	[thread overview]
Message-ID: <a3aae93d-3293-2644-0d16-6d9af711d2ff@solarflare.com> (raw)

Hi all,

I think that Rx/Tx offloads checks behaviour is inconsistent in next-net 
as of today.

Consistency checks are removed from PMDs and substituted with error logs 
in ethdev.
Basically application which is not switched to new offload API has no 
way to find out if,
for example, Rx scatter is supported. Rx scatter offload was introduced 
in 17.11 to
substitute corresponding flag in device Rx mode.

Not updated application could try to enable Rx scatter on device 
configure and
get failure if it is not supported.  Yes it is not fine-grained and it 
could be numerous
reasons behind the configure failure. With 18.05 configure will pass and 
moreover
hardware may be configured to do Rx scatter despite of no real support 
in PMD.
Consequences could be really different from simply dropping scattered 
packet or
delivery of truncated packets to spoiling of memory etc.

Similar could happen with multi-segment packet on Tx. Application configures
Tx queue without NOMULTISEG flag, TxQ setup passes (with error log that
multi-segment is not supported, but it is just an error log) and 
application generates
multi-segment packets which are simply truncated (if the first segment 
length is used
as packet length on transmit) or garbage is sent (if total packet length 
is used, i.e.
possible disclosure of security sensitive information since it could be 
data from
neighbour packet).

I think we have the following options:

A. Rollback corresponding changes which remove checks from PMDs
     (at least some PMDs will be not affected).

B. Fail configure if unsupported offload is requested (all PMDs must be 
converted
     in the release, so reporting of supported offloads must be correct) AND
     add check that offloads requested on Tx queue level (derived from 
txq_flags)
     are supported at least somewhere (i.e. tx_offload_capa)

C. Describe the behaviour changes in release notes to try to make it at 
least
     create for DPDK users. I don't like the option at all.

Any other ideas?

I would vote for B since it is a step forward and even if it makes some apps
to fail I think it is better than consequences of missing checks.
I'll make a patch for option B and test it meanwhile.

Andrew

             reply	other threads:[~2018-05-11  7:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-11  7:07 Andrew Rybchenko [this message]
2018-05-11 14:22 ` Ferruh Yigit
2018-05-11 16:08   ` Andrew Rybchenko
2018-05-13  5:30     ` Shahaf Shuler
2018-05-14 10:00       ` Ferruh Yigit
2018-05-14 10:19         ` Shahaf Shuler
2018-05-14 14:10           ` Ferruh Yigit
2018-05-14 14:15             ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a3aae93d-3293-2644-0d16-6d9af711d2ff@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=shahafs@mellanox.com \
    --cc=thomas@monjalon.net \
    --cc=wei.dai@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).