Commit Graph

10775 Commits

Author SHA1 Message Date
Vijay Srivastava
f0afed09a6 net/sfc/base: fix build issue with PHY LED control enabled
Fixed build issue with the EFSYS_OPT_PHY_LED_CONTROL for Huntigton and
Medford.

Fixes: b1d06c75e3 ("net/sfc/base: import PHY LEDs control")
Fixes: 0a78643491 ("net/sfc/base: import PHY statistics")
Cc: stable@dpdk.org

Signed-off-by: Vijay Srivastava <vijays@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
8f64a99262 net/sfc/base: improve names for TXQ descriptor counts
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
201f052a37 net/sfc/base: improve names for RXQ descriptor counts
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
6de5190dd4 net/sfc/base: improve names for EVQ descriptor counts
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Mark Spender
37f8a41ad0 net/sfc/base: remove assertion on no longer used define
MC_CMD_INIT_RXQ_OUT_LEN is not used any more.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Mark Spender
9a57eee018 net/sfc/base: request info about outer frame in Rx events
For encapsulated packets, the firmware gives info about the inner frame
fields by default. When not using encapsulation offload, ask for info
about the outer frame instead.

On SFN8xxx with firmware version before v6.4.2.1007 driver reload is
needed after switching from full-feature to low-latency firmware
variant since the driver still thinks that firmware supports
encapsulation, but firmware does not tolerate request to provide info
about outer frame in Rx events.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Mark Spender
596b7d428d net/sfc/base: ignore error in completion event on MCDIv2 HW
With MCDIv2, the reponse length can be to big to fit into the
CMDDONE_DATALEN field in the MCDI completion event. But rather that
the length being truncated, it can overflow into the CMDDONE_ERRNO
field (this is a longstanding firmware bug). Hence the CMDDONE_ERRNO
field may not be valid.

It isn't necessary to use the value in the CMDDONE_ERRNO field though,
so it can be ignored. The actual error code is already read from the
response header on MCDIv2 capable hardware and stored in emr_rc, so
that can be used instead.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Mark Spender
0f55ea2b7a net/sfc/base: use MCDIv2 for requests with too long response
Use MCDIv2 for requests with a response size too long for MCDIv1.

Required for MC_CMD_MAC_STATS to reports the stats without using DMA.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
7fb0fbc8e1 net/sfc/base: support inner checksum offload on transmit
Inner checksum offloads may be used only if firmware supports
these tunnels.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
8890d7290f net/sfc/base: make MAC naming consistent with other modules
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
ede62b5a56 net/sfc/base: more accurately calculate number of PS credits
Maximum number of packets per 64k buffer should be rounded up
when calculating number of credits by event queue size.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
c2b6023351 net/sfc/base: enforce packed stream fake buffer size
In the case of packed stream real size of the buffer does not fit in
Rx descriptor byte count. Real size is specified on Rx queue setup.
Non-zero fake should be used to bypass hardware checks.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
01ef400459 net/sfc/base: provide simple access to RxQ state in EvQ
Packed stream Rx datapath requires access to packed stream state
stored in event queue. Number of credits is upstead in event handler
on a new buffer, packets parsing on 64k boundary crossing and
Rx doorbell push to give credits back.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
3bdf5f1721 net/sfc/base: optimize credits overflow check
Apply check against firmware maximum just before pushing.
However, it does not save from overflow inside firmware,
if firmware still have some credits.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
d8115cadb3 net/sfc/base: clarify meaning of Rx desc lbits in PS mode
There is no point to add mask plus one before mask applying since it
still does not help to avoid overflow on subtract. Modulo mask
arithmetic works perfectly for unsigned integers of the same type.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
11e993ce52 net/sfc/base: add description of the PS packets layout
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
3e3317f7f6 net/sfc/base: improve RxQ label init prototype
RxQ type provides more information which may be useful to
setup event queue appropriately.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Rybchenko
1f0769246e net/sfc/base: improve PS credits push function name
Make it clear from the name that it pushes doorbell.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Lee
f4891612e4 net/sfc/base: support MUM/SUC firmware partitions
Signed-off-by: Andrew Lee <alee@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
c14a991305 net/sfc/base: fix ignoring function return value
fix PreFAST issue, add missing annotation that function return value
should not be ignored. Fix alignment.

Fixes: 19b64c6ac3 ("net/sfc/base: import libefx base")
Cc: stable@dpdk.org

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
e9d804ad26 net/sfc/base: quieten get version methods
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
e5fff4ee25 net/sfc/base: remove duplicate NVRAM asserts
The checking performed in the ->envo_type_to_partn
internal method make these assertions unnecessary.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
3821084031 net/sfc/base: precheck and verify flash writes
Read existing flash content before writing, so the flash write can be
avoided if the existing partition content matches the new image. This
avoids unnecessary write cycles for the flash device, and may also be
faster. If the flash does need to be updated, verify the content after
writing.

Note that reading the flash content after writing but before calling
efx_nvram-rw_finish() avoids firmware bug68170, which can lead to
signed image updates failing on Medford.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
2620f47aa7 net/sfc/base: fix check in NVRAM validate
Fixes: d96a34d165 ("net/sfc/base: import NVRAM support")
Cc: stable@dpdk.org

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
e74e5d32b2 net/sfc/base: report correct partition write chunk size
If the firmware reports a non-zero write chunk size then nvram writes
may fail if a different granularity is used (e.g. for MUM firmware on
Sorrento).

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
f4332a5f48 net/sfc/base: check NVRAM locking by partition ID
Tracking which partition is locked avoids being overly conservative
when EFX_NVRAM_xxx maps to more than one partition (depnding on the
current port number).

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
90f8fc7b9d net/sfc/base: simplify NVRAM type to partition mappings
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
8586cd0964 net/sfc/base: rename firmware update verify result cap field
The existing name confuses support for secure boot with
support for reporting a verify result after an NVRAM update.

As the capability only reports support for returning a verify
result, change the name to be less confusing.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
79e2a9d018 net/sfc/base: extend NVRAM RW finish to return verify result
Extend efx_nvram_rw_finish() to return firmware verify result code.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
26b17d5ff7 net/sfc/base: report verify result from RW finish callback
This makes the verify result visible to efx_nvram_rw_finish(), which
can be extended to report it in a later patch.

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
84fc2e97a0 net/sfc/base: simplify verify result handling
Simplify verify result handling in NVRAM update finish

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andy Moreton
54a8950e37 net/sfc/base: fix result code in MCDI NVRAM update finish
Fixes: d96a34d165 ("net/sfc/base: import NVRAM support")
Cc: stable@dpdk.org

Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Mark Spender
118575d50b net/sfc/base: do not use Tx desc push with TSO descriptors
Pushing TSO option descriptors is unsafe if pacer bypass is enabled,
so to make sure that doesn't happen never push TSO option descriptors.

Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Andrew Jackson
bdf5276fc9 net/sfc/base: copy new header from firmware src
Signed-off-by: Andrew Jackson <ajackson@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-01-16 18:47:49 +01:00
Zhiyong Yang
134975073a lib: remove unnecessary pointer cast
void * pointer can be assigned to any data type pointer.
Unnecessary cast can be removed in order to keep code clearer.

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-16 01:53:35 +01:00
Erik Gabriel Carrillo
d33fbd51e5 timer: fix reset on service cores
The return value of rte_lcore_has_role is misinterpreted in the timer
reset function.  The return values of rte_lcore_has_role will be changed
in a future DPDK release, but this commit fixes this call site until
that happens.

Fixes: 351f463456 ("timer: allow reset on service cores")
Cc: stable@dpdk.org

Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2018-01-16 01:48:20 +01:00
Avi Kivity
4f438c8515 eal: remove another use of register keyword
The 'register' keyword does nothing, and has been removed in C++17.

Remove it for compatibility, like following commit:

Fixes: 0d5f2ed12f ("eal: remove use of register keyword")

Signed-off-by: Avi Kivity <avi@scylladb.com>
2018-01-15 18:58:49 +01:00
Nikhil Agarwal
39799e861b examples/l3fwd-power: disable link status interrupt
This application does not need Link Status Interrupt.
It will cause failure for the platforms not supporting LSC.

Signed-off-by: Nikhil Agarwal <nikhil.agarwal@linaro.org>
Acked-by: David Hunt <david.hunt@intel.com>
2018-01-15 18:41:16 +01:00
Nikhil Agarwal
47d834ba1a examples/l3fwd-power: replace desc done with Rx queue count
HW queue based platforms may not support descriptor done API.
This patch changes the usages to rx_queue_count API, which
is more generic.

Signed-off-by: Nikhil Agarwal <nikhil.agarwal@linaro.org>
Acked-by: David Hunt <david.hunt@intel.com>
2018-01-15 18:40:16 +01:00
Nikhil Agarwal
63de7e6e4f examples/l3fwd-power: fix frequency detection
The code assumes that the platform frequency is 2GHz.
This patch add support for dynamically detecting platform frequence.

Fixes: d7937e2e3d ("power: initial import")
Cc: stable@dpdk.org

Signed-off-by: Nikhil Agarwal <nikhil.agarwal@linaro.org>
Acked-by: David Hunt <david.hunt@intel.com>
2018-01-15 18:40:11 +01:00
Nikhil Agarwal
4ffc0a883b examples/l3fwd-power: fix Rx without interrupt
This existing code cause the platform to start receiving packet
immediately irrespective of interrupts available or not.
If the platform does not support Rx interrupt, it shall not start
receiving packets immediately. It shall let the timer management work.

Fixes: aee3bc79cc ("examples/l3fwd-power: enable one-shot Rx interrupt and polling switch")
Cc: stable@dpdk.org

Signed-off-by: Nikhil Agarwal <nikhil.agarwal@linaro.org>
Acked-by: David Hunt <david.hunt@intel.com>
2018-01-15 18:40:10 +01:00
Stephen Hemminger
c53a5faf7e examples/l3fwd: set CLI back to Unix style
The l3fwd program became chatty, and the code looks cluttered in
recent versions. DPDK programs should try for Unix (not VMS) style
and not print messages for the options user selected. Also, errors should
be printed on stderr. To make it easier to find code matching error
messages; error strings should be placed in situ rather than saved
as string vaiables.

Fixes: 268888b5b0 ("examples/l3fwd: modularize")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2018-01-15 18:40:09 +01:00
Pavan Nikhilesh
0b0ceb98db examples/l2fwd: increase pktmbuf pool size
Make pktmbuf pool size a function of ports and lcores detected instead
of using constant 8192.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-01-15 18:40:08 +01:00
Prashant Bhole
bacbf5ac50 examples: remove unnecessary dev info queries
Removed rte_eth_dev_info_get() calls and declaration of
struct rte_eth_dev_info where info is not used anymore.

Signed-off-by: Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-15 12:15:09 +01:00
Xueming Li
c89dc62533 cmdline: support backspace key
Support windows putty "\b"(Ctrl-H) backspace key.

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2018-01-15 12:04:57 +01:00
Wisam Jaddo
aac6f11f58 app/testpmd: add ethernet peer command
This command will simulate the process of setting the
eth-peer from command line.

It will be useful to perform extra testing.

usage:
 testpmd> set eth-peer <port_id> <peer_addr>.

Signed-off-by: Wisam Jaddo <wisamm@mellanox.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-15 11:51:45 +01:00
Shahaf Shuler
07e5f7bd65 app/testpmd: enable fast free Tx offload by default
Enable the DEV_TX_OFFLOAD_MBUF_FAST_FREE in case the underlying device
supports.

This is to preserve the previous offloads configuration made according
to the PMD defaults.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-15 10:58:51 +01:00
Shahaf Shuler
384161e006 app/testpmd: adjust on the fly VLAN configuration
On ethdev there is an API to configure VLAN offloads after the port
was started and without reconfiguration of the port or queues.

In the current design of the application, when the Rx offloads are
changed (through "port config all" CLI command) the port configuration
is overwritten, therefore the configuration made for the VLAN is lost.

This patch is to address the issue by a configuration of each port Rx
offloads separately instead of using the global Rx config. Such
adjustment is required due to the conversion of the application to the
new offloads API.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-15 10:57:21 +01:00
Shahaf Shuler
3926dd2b66 app/testpmd: enforce offload capabilities check
In the current design it was possible for offload to be set even though
the device is not supporting it. A warning message was printed instead.

This is a wrong behaviour, as application should set only the offloads
reported by the capabilities of the device.

This patch adds verification for the offloads being set and make sure
the offload configuration passed to the device always match its
capabilities.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-15 10:56:25 +01:00
Shahaf Shuler
28da7d752b app/testpmd: remove txqflags option
Since testpmd is now using the new Ethdev offloads API and there is
a way configure each of the tx offloads from CLI or command line,
there is no need for the txqflags configuration anymore.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2018-01-15 10:54:47 +01:00