88 Commits

Author SHA1 Message Date
Hemant Agrawal
d2ef05d5c1 net/dpaa2: optimize Rx/Tx path
Merge the offload with parse function to save on instructions.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-21 15:51:52 +01:00
Hemant Agrawal
043b36f621 net/dpaa2: support more than 16 burst size in Rx
This patch enhances the Rx function to support more than
16 burst size.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-21 15:51:52 +01:00
Nipun Gupta
2d37886318 net/dpaa2: support atomic queues
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-19 16:09:56 +01:00
Nipun Gupta
496324d2a5 bus/fslmc: add flag to configure DCA in QBMAN multi Tx
With the current QBMAN multi-tx API, we need to create separate
enqueue descriptors for each of the packet which is required to
be enqueued to the hardware, once we support Atomic Queues
(with DCA) in dpaa2 drivers. Creating enqueue descriptor for
each packet is costly and have significant performance impact.
This patch introduces a flag parameter in the QBMAN multi-tx API,
so that DCA configuration (and later on ORP/ODP for ordered queues)
can be passed using flags and be updated in the EQCR using this flag.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-19 16:09:56 +01:00
Thomas Monjalon
cebe3d7b3d ethdev: remove useless parameter in callback process
The pointer to the user parameter of the callback registration is
automatically pass to the callback function.
There is no point to allow changing this user parameter by a caller.
That's why this parameter is always set to NULL by PMDs and set only
in ethdev layer before calling the callback function.

The history is that the user parameter was initially used
by the callback implementation to pass some information
between the application and the driver:
	c1ceaf3ad056 ("ethdev: add an argument to internal callback function")
Then a new parameter has been added to leave the user parameter
to its standard usage of context given at registration:
	d6af1a13d7a1 ("ethdev: add return values to callback process API")

The NULL parameter in the internal callback processing function
is now removed. It makes clear that the callback parameter is user
managed and opaque from a DPDK point of view.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-16 18:47:49 +01:00
Nipun Gupta
03e87e6e26 net/dpaa2: prefetch the parse results from next fd
As there were less number of CPU cycles in between when we access
the parse results and when we prefetch them, this patch modifies
the prefetch of the next parse result.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
2018-01-16 18:47:49 +01:00
Nipun Gupta
48e7f15609 net/dpaa2: optimize Tx path for best case
This patch handles the non-sg packets in more optimized way.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
2018-01-16 18:47:49 +01:00
Nipun Gupta
7ec5e530f9 net/dpaa2: optimize Rx path packet parsing
Parsing the annotation has multiple if checks in the data path.
These are reduced for common cases like IPv4/IPv6 and UDP/TCP
packets to enhance performance of these generic cases.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
2018-01-16 18:47:49 +01:00
Nipun Gupta
a5852a94ba net/dpaa2: add parse function for LX2 device
Adding support for DPDK packet parsing logic for LX2
platform to accommodate the new FRC format introduced in LX2.

Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
2018-01-16 18:47:49 +01:00
Hemant Agrawal
5a307f50ba net/dpaa2: add VLAN insert offload
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-16 18:47:49 +01:00
Ashish Jain
44ea735587 net/dpaa2: align the frame size in MTU set
Setting correct frame size in dpaa2_dev_mtu_set
api call. Also correcting the correct max frame size
setting in hardware while dev_configure for jumbo frames

Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
2018-01-16 18:47:49 +01:00
Hemant Agrawal
f40adb40c1 net/dpaa2: add Rx queue count support
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-16 18:47:49 +01:00
Hemant Agrawal
e0ded73b5b bus/fslmc: expose platform SoC value register
This patch expose the dpaa2 soc platform family type.
This is required to make some soc variant specific
decision during configuration and runtime.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-16 18:47:49 +01:00
Hemant Agrawal
92b7e33ef6 net/dpaa2: advertise link status as driver flag
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-16 18:47:49 +01:00
Hemant Agrawal
f7768afac1 bus/fslmc: support dynamic IOVA
This patch add support for dynamic iova detection for DPAA2
devices and use of virtual address in such cases.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-16 18:47:49 +01:00
Hemant Agrawal
131a75b6e4 drivers: use SPDX tag in NXP dpaa2 files
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-04 22:41:39 +01:00
Akhil Goyal
f998967365 net/dpaa2: set queues after reconfiguration
if dpaa2_dev_tx_queue_setup is called multiple times, the
assignment of device->data->tx_queues is not done, as a result
tx_queues remain NULL after reconfiguration.

This patch sets the tx_queues from the device private data to the
usable device tx queues.

Fixes: 7ae777d064e8 ("net/dpaa2: add support for congestion notification")
Cc: stable@dpdk.org

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-11-01 22:17:06 +01:00
Shreyansh Jain
a57bbb68d4 event/dpaa2: fix shared build
Fixes: cbc12b0a96f5 ("mk: do not generate LDLIBS from directory dependencies")
Fixes: b677d4c6d281 ("net/dpaa2: add API for event Rx adapter")

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2017-10-26 23:04:54 +02:00
David Harton
289ba0c0f5 ethdev: allow returning error on VLAN offload ops
Some devices may not support or fail setting VLAN offload
configuration based on dynamic circumstances so the
vlan_offload_set_t vector is modified to return an int so
the caller can determine success or not.

rte_eth_dev_set_vlan_offload is updated to return the
value provided by the vector when called along with restoring
the original offload configs on failure.

Existing vlan_offload_set_t vectors are modified to return
an int.  Majority of cases return 0 but a few that actually
can fail now return their failure codes.

Finally, a vlan_offload_set_t vector is added to virtio
to facilitate dynamically turning VLAN strip on or off.

Signed-off-by: David Harton <dharton@cisco.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-10-26 02:33:01 +02:00
Olivier Matz
380a7aab1a mbuf: rename deprecated VLAN flags
PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT are deprecated for a while.
As explained in [1], these flags were kept to let the applications and
PMDs move to the new flag. There is also a need to support Rx vlan
offload without vlan strip (at least for the ixgbe driver).

This patch renames the old flags for this feature, knowing that some
PMDs were using PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT to indicate that
the vlan tci has been saved in the mbuf structure.

It is likely that some PMDs do not set the proper flags when doing vlan
offload, and it would be worth making a pass on all of them.

Link: [1] http://dpdk.org/ml/archives/dev/2017-June/067712.html

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-10-26 02:33:01 +02:00
Nipun Gupta
b677d4c6d2 net/dpaa2: add API for event Rx adapter
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-25 14:03:43 +02:00
Olivier Matz
cbc12b0a96 mk: do not generate LDLIBS from directory dependencies
The list of libraries in LDLIBS was generated from the DEPDIRS-xyz
variable. This is valid when the subdirectory name match the library
name, but it's not always the case, especially for PMDs.

The patches removes this feature and explicitly adds the proper
libraries in LDLIBS.

Some DEPDIRS-xyz variables become useless, remove them.

Reported-by: Gage Eads <gage.eads@intel.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Gage Eads <gage.eads@intel.com>
2017-10-24 02:14:57 +02:00
Matan Azrad
d5b0924ba6 ethdev: add return value to stats get dev op
The stats_get dev op API doesn't include return value, so PMD cannot
return an error in case of failure at stats getting process time.

Since PCI devices can be removed and there is a time between the
physical removal to the RMV interrupt, the user may get invalid stats
without any indication.

This patch changes the stats_get API return value to be int instead of
void.

All the net PMDs stats_get dev ops are adjusted by this patch.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-10-12 01:52:49 +01:00
Hemant Agrawal
2bfea039a4 net/dpaa2: improve debug messaging
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
21ce788c83 net/dpaa2: checksum support as per user config
Instead of enabling the RX checksum by default, make it
enable only with user ethernet configuration

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
acb95928e7 net/dpaa2: log that VLAN extend offload not supported
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
790ec226e9 net/dpaa2: fix the Tx handling of non HW pool bufs
The current code is sending 8 packet in each internal loop.
In some of the conditions, mbuf is being allocated or freed.
In case of error, the code is returning without taking care of
such buffer. It is better to send already prepared buffer and err
for the current failure only.

Fixes: 9e5f3e6d3658 ("net/dpaa2: handle non-hardware backed buffer pool")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
1d6329b2fc net/dpaa2: support extra stats
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
63d5c3b00c net/dpaa2: support RSS hash update and get
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
638233dc29 net/dpaa2: remove RSS restriction with num of queues
DPAA2 HW does not have such restrictions.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
bd4d941926 net/dpaa2: increase the dist param to 64 bit
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
dc3039d270 net/dpaa2: improve error and logs for flow distribution
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
aa8c595aca net/dpaa2: check physical link state on up cmd
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
c5acbb5ea2 net/dpaa2: support link status event
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
d47f0292b8 net/dpaa2: support congestion overhead
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:17 +02:00
Hemant Agrawal
69293c7762 bus/fslmc: remove unused funcs and align names in QBMAN
name alignment for check command and result functions
putting them as separate functions instead of changing the original
functions.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:24:16 +02:00
Haiying Wang
43f7ff9de4 bus/fslmc: add QBMAN API to do enqueue with multiple frames
Clean it up and update the prototype.

Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 03:21:57 +02:00
Shreyansh Jain
16bbc98a3e bus/fslmc: update MC to 10.3.x
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-10-06 01:26:00 +02:00
Shreyansh Jain
bad555df14 net/dpaa2: update driver type field
Shifting from existing device identifier to driver type field.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Reviewed-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-10-06 01:08:40 +02:00
Hemant Agrawal
a084096398 net/dpaa2: enable Tx congestion state check
For larger packet size congestion is observed on Tx Queues.
This patch enables Tx Queue congestion state check support.
If congested, try to resend the packet few times.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-30 20:24:55 +02:00
Hemant Agrawal
e729ec76c1 net/dpaa2: support secondary process attach
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-19 11:09:13 +03:00
Stephen Hemminger
ba9219fe42 drivers/dpaa2: remove duplicate includes
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-16 17:30:06 +02:00
Hemant Agrawal
645bd25ad8 drivers: add newline in dpaa2 logs
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 16:01:30 +02:00
Hemant Agrawal
de85636da0 bus/fslmc: set the dpaa2 device name
rte_eth_dev_allocated expect the device name to be filled.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:55:18 +02:00
Hemant Agrawal
f090a4c3c6 net/dpaa2: fix flow control switch case break
Fixes: 977d0006ada1 ("net/dpaa2: add support for flow control")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-14 15:51:54 +02:00
Shreyansh Jain
fcee050aa1 update NXP copyright headers
NXP Copyright has been wrongly worded with '(c)' at various places.
This patch removes these extra characters. It also removes
"All rights reserved".

Only NXP copyright syntax is changed. Freescale copyright is not
modified.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2017-07-10 12:26:40 +02:00
Hemant Agrawal
774e9ea919 net/dpaa2: add support for multi seg buffers
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-06 15:00:56 +02:00
Hemant Agrawal
29dfa62f5f net/dpaa2: add support for frame based Tx congestion
Change from byte based to frame based.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-06 15:00:56 +02:00
Hemant Agrawal
4260d5038c net/dpaa2: disable Tx congestion notification
Making it off by default.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-06 15:00:56 +02:00
Hemant Agrawal
30db823e04 net/dpaa2: check SoC version for stashing enable
Instead of qbman version, check the SoC version for stashing
enablement decision.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2017-07-06 15:00:56 +02:00