dpdk.git
7 years agonet/i40e: downgrade log message
Bernard Iremonger [Fri, 14 Apr 2017 10:11:24 +0000 (11:11 +0100)]
net/i40e: downgrade log message

Change level of log message from ERR to DEBUG and reword it,
in the i40e_dev_consistent_tunnel_filter_set() function.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
7 years agodoc: add known igb_uio issue for i40e
Qiming Yang [Thu, 13 Apr 2017 03:08:33 +0000 (11:08 +0800)]
doc: add known igb_uio issue for i40e

When insmod "igb_uio" with "intr_mode=legacy and test link
status interrupt. Since INTx interrupt is not supported by
X710/XL710/XXV710, it will cause Input/Output error when
reading file descriptor.

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by Jingjing Wu <jingjing.wu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: fix description on Intel VFs
Jingjing Wu [Tue, 11 Apr 2017 05:57:18 +0000 (13:57 +0800)]
doc: fix description on Intel VFs

This patch corrects the description on Physical and Virtual Function
Infrastructure of Intel NICs. The RSS part description should belong
to ixgbe but not i40e.
This patch also add more notes to describe the queue number on Intel
X710/XL710 NICs.

Fixes: b9fcaeec5fc0 ("doc: add ixgbe VF RSS guide")
Cc: stable@dpdk.org
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agonet/i40e: ensure vector mode is not used with QinQ
Bernard Iremonger [Thu, 13 Apr 2017 09:53:05 +0000 (10:53 +0100)]
net/i40e: ensure vector mode is not used with QinQ

In rx vector mode, QinQ is not supported.
When hw_vlan_extend is set for QinQ ensure that
rx vector mode is not selected.

Fixes: 8e109464c022 ("i40e: allow vector Rx and Tx usage")
Cc: stable@dpdk.org
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agodoc: add QinQ flow to testpmd guide
Bernard Iremonger [Fri, 7 Apr 2017 15:14:52 +0000 (16:14 +0100)]
doc: add QinQ flow to testpmd guide

Add information on validating and creating QinQ flow rules to
the flow rules management section of the Testpmd User Guide.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: add release note for i40e QinQ cloud filter
Bernard Iremonger [Fri, 7 Apr 2017 15:14:51 +0000 (16:14 +0100)]
doc: add release note for i40e QinQ cloud filter

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agonet/thunderx: reduce writes to mbuf
Jerin Jacob [Fri, 14 Apr 2017 09:41:07 +0000 (15:11 +0530)]
net/thunderx: reduce writes to mbuf

With the mbuf rework, we now have 8 contiguous bytes to be
rearmed in the mbuf at 8B naturally aligned address.
Use single 8B write to avoid multiple 2B writes in Rx path.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Maciej Czekaj <maciej.czekaj@caviumnetworks.com>
7 years agonet/i40e: downgrade unnecessary error log
Wenzhuo Lu [Fri, 14 Apr 2017 01:16:34 +0000 (09:16 +0800)]
net/i40e: downgrade unnecessary error log

When receiving the unsupported AQ messages, it's taken as
an error. It's not appropriate and triggers too much
unnecessary print.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/mlx4: fix Rx after mbuf alloc failure
Charles Myers [Thu, 13 Apr 2017 22:15:24 +0000 (12:15 -1000)]
net/mlx4: fix Rx after mbuf alloc failure

Fixes issue where mlx4 driver stops receiving packets when mbuf
allocation fails in mlx4_rx_burst().

This issue appears to be caused because the code doesn't recycle the
existing mbuf to the sges array when mbuf allocation fails as is done
in the code right above it which handles (wc.status != IBV_WC_SUCCESS).

Copying the code from the above case fixes the issue.

Fixes: acac55f16412 ("mlx4: use MOFED 3.0 fast verbs interface for Rx operations")
Cc: stable@dpdk.org
Signed-off-by: Charles Myers <charles.myers@spirent.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/bonding: allow configuring jumbo frames without slaves
Ilya Maximets [Fri, 7 Apr 2017 15:07:12 +0000 (18:07 +0300)]
net/bonding: allow configuring jumbo frames without slaves

Currently, 'rte_eth_dev_configure' fails on attempt to setup
max_rx_pkt_len > 2048 if no slaves was added to bonded device.

For example:

rte_eth_dev_attach("eth_bond0,slave=05:00.0,mode=l34", &id)
conf.rxmode.jumbo_frame = 1;
conf.rxmode.max_rx_pkt_len = 9000;
rte_eth_dev_configure(id, 1, 1, &conf)

Result:
EAL: Initializing pmd_bond for eth_bond0
EAL: Create bonded device eth_bond0 on port 4 in mode 2 on socket 0.
rte_eth_dev_configure: ethdev port_id=4 \
max_rx_pkt_len 9018 > max valid value 2048

It's expected that slaves will be added to bonded device inside
'rte_eth_dev_configure' and proper 'max_rx_pktlen' configured
for all of them.

Failure happens because of hardcoded low value of 'max_rx_pktlen'.
Increasing of this value to ETHER_MAX_JUMBO_FRAME_LEN will allow
above scenario (attach + configure).

It is important because it is the way OVS wants to work with
all DPDK devices (including virtual).
Changing the default hardcoded value makes no harm because
all the slaves' related code uses only 'candidate_max_rx_pktlen'
variable.

Fixes: 6cfc6a4f0d61 ("net/bonding: inherit maximum Rx packet length")
CC: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Eric Kinzie <ehkinzie@gmail.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agonet/bonding: remove all slaves on close
Ilya Maximets [Thu, 6 Apr 2017 11:59:51 +0000 (14:59 +0300)]
net/bonding: remove all slaves on close

Some applications like OVS knows nothing about the
device type and wants to use same API to work with
all of them. But bond_pmd, unlike other pmds, requires
additional step (removing of all the slaves) before
closing the device.

In fact that bond_pmd automatically adds all the
devices from kvargs to bonding on configuration it
also should remove all of them on close.

This change is intended to have the same API for physical
and virtual devices. It allows us to handle virtual
devices in OVS in a common way.

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
7 years agonet/ixgbe: remove tpid check for flow director
Wei Zhao [Fri, 14 Apr 2017 03:34:10 +0000 (11:34 +0800)]
net/ixgbe: remove tpid check for flow director

DPDK community has several emails discussion on this topic,
these mails link is bellow:
http://dpdk.org/ml/archives/dev/2017-March/060379.html,
http://dpdk.org/ml/archives/dev/2017-March/060295.html,

items like VLAN can already have several valid "types"
(0x88a8, 0x8100, 0x9100), and who knows what will come up
in the future.

And ixgbe_flow just ignores the types when do filter configuration.
So it may be reasonable to delete the related tpid check process.

Also add some more comment log on stack explanation.

Fixes: 11777435c72 ("net/ixgbe: parse flow director filter")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
7 years agonet/ixgbe: fix duplicated check
Ferruh Yigit [Tue, 11 Apr 2017 14:24:15 +0000 (15:24 +0100)]
net/ixgbe: fix duplicated check

Same check duplicated, updated check according what commend states.

Coverity issue: 1407507
Fixes: 11777435c727 ("net/ixgbe: parse flow director filter")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
7 years agonet/mlx5: panic when destroying a queue in use
Nélio Laranjeiro [Tue, 11 Apr 2017 15:21:52 +0000 (17:21 +0200)]
net/mlx5: panic when destroying a queue in use

Since the queue release API does not allow failures (return value is void)
and the flow API does not allow a queue to be released as long as a flow
rule depends on it, the only rational decision to avoid undefined behavior
is to panic in this situation.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/mlx5: fix flow queues array allocation
Nélio Laranjeiro [Tue, 11 Apr 2017 15:21:51 +0000 (17:21 +0200)]
net/mlx5: fix flow queues array allocation

Flow queues array offset is not properly computed causing all sorts of
issues.  Address it by making the rte_flow structure less complex.

Fixes: 360663e1df46 ("net/mlx5: prepare support for RSS action rule")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/i40e: fix VF link status update
Qi Zhang [Wed, 12 Apr 2017 19:30:00 +0000 (15:30 -0400)]
net/i40e: fix VF link status update

VF link status rely on PF's notification, so when PF link status
be updated, it should notify VF to update link status also.
Current implementation only cover part of the situation when PF's link
status is updated, call i40e_notify_all_vfs_link_status in
i4e_dev_link_update will cover all situationa.

Fixes: bb6722fb5c0e ("net/i40e: fix VF bonded device link down")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agoapp/testpmd: add commands for packet type mapping
Qi Zhang [Wed, 12 Apr 2017 13:55:34 +0000 (09:55 -0400)]
app/testpmd: add commands for packet type mapping

Add below command line to configure ptype mapping.
ptype mapping get <port_id> <valid_only>.
ptype mapping replace <port_id> <target> <mask> <pkt_type>.
ptype mapping reset <port_id>.
ptype mapping update <port_id> <hw_ptype> <sw_ptype>.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
7 years agonet/i40e: configure packet type mapping
Qi Zhang [Wed, 12 Apr 2017 13:55:33 +0000 (09:55 -0400)]
net/i40e: configure packet type mapping

The patch adds 4 APIs to support configurable
PTYPE mapping for i40e device.
rte_pmd_i40e_ptype_mapping_get.
rte_pmd_i40e_ptype_mapping_replace.
rte_pmd_i40e_ptype_mapping_reset.
rte_pmd_i40e_ptype_mapping_update.
The mapping from hardware defined packet type to software defined packet
type can be updated/reset/read out with these APIs.
Also a software ptype with the most significent bit set will be regarded
as a user defined ptype (RTE_PMD_I40E_PTYPE_USER_DEFINE_MASK) so
application can use it to defined its own PTYPE naming system.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
7 years agonet/i40e: enable per-device packet type mapping
Qi Zhang [Wed, 12 Apr 2017 13:55:32 +0000 (09:55 -0400)]
net/i40e: enable per-device packet type mapping

The mapping from hardware defined packet type to software defined
packet type is static for i40e device, the patch let each ethdev to
to have their own copy of mapping table, this give the possibility
that different ethdev can be set different PTYPE mapping rule which
is the requirement to support following hardware's dynamic PTYPE
feature.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
7 years agonet/ixgbe: fix generic filter return
Wei Zhao [Wed, 12 Apr 2017 08:52:34 +0000 (16:52 +0800)]
net/ixgbe: fix generic filter return

Fix generic filter return info is not readable
when repeat to create a rule.

Fixes: 72c135a89f8 ("net/ixgbe: create consistent filter")
Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
7 years agonet/i40e: add more explanation for QoS APIs
Wenzhuo Lu [Thu, 13 Apr 2017 08:21:18 +0000 (16:21 +0800)]
net/i40e: add more explanation for QoS APIs

According to HW implementation, the bandwidth of QoS
means the L2 bandwidth, not count the bytes added by
physical layer.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/kni: remove unnecessary null check
Ferruh Yigit [Tue, 11 Apr 2017 13:51:29 +0000 (14:51 +0100)]
net/kni: remove unnecessary null check

Coverity issue: 1419721
Fixes: 75e2bc54c018 ("net/kni: add KNI PMD")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agodoc: cleanup testpmd section in dpaa2 guide
Shreyansh Jain [Thu, 13 Apr 2017 09:33:33 +0000 (15:03 +0530)]
doc: cleanup testpmd section in dpaa2 guide

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from thunderx guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:50 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from thunderx guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agodoc: refer PMD compile/test section from qede guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:49 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from qede guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from nfp guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:48 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from nfp guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from liquidio guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:47 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from liquidio guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from i40e guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:46 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from i40e guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from ena guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:45 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from ena guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from cxgbe guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:44 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from cxgbe guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from bnx2x guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:43 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from bnx2x guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: refer PMD compile/test section from ark guide
Shijith Thotton [Tue, 11 Apr 2017 18:56:42 +0000 (00:26 +0530)]
doc: refer PMD compile/test section from ark guide

Refer the section which explains driver compilation and running of
testpmd in Linux, instead of describing it in driver documentation.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
7 years agodoc: explain compiling and testing of PMD
Shijith Thotton [Tue, 11 Apr 2017 18:56:41 +0000 (00:26 +0530)]
doc: explain compiling and testing of PMD

Add a section in NIC drivers documentation to explain compiling and
testing of a PMD. It also mentions about host setup, which is required
before running testpmd.

Add label "testpmd_ug" to refer user guide.

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agonet/dpaa2: enable frame queue based dequeuing
Hemant Agrawal [Tue, 11 Apr 2017 13:49:38 +0000 (19:19 +0530)]
net/dpaa2: enable frame queue based dequeuing

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: enable DMA mapping during device scanning
Hemant Agrawal [Tue, 11 Apr 2017 13:49:37 +0000 (19:19 +0530)]
net/dpaa2: enable DMA mapping during device scanning

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoconfig: add configuration for toggling physical addressing
Hemant Agrawal [Tue, 11 Apr 2017 13:49:36 +0000 (19:19 +0530)]
config: add configuration for toggling physical addressing

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: enable physical addressing for packet buffers
Hemant Agrawal [Tue, 11 Apr 2017 13:49:35 +0000 (19:19 +0530)]
net/dpaa2: enable physical addressing for packet buffers

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: handle non-hardware backed buffer pool
Hemant Agrawal [Tue, 11 Apr 2017 13:49:34 +0000 (19:19 +0530)]
net/dpaa2: handle non-hardware backed buffer pool

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: enable stashing for LS2088A devices
Hemant Agrawal [Tue, 11 Apr 2017 13:49:33 +0000 (19:19 +0530)]
net/dpaa2: enable stashing for LS2088A devices

As the hardware determines which core will process which packet,
performance is boosted by direct cache warming/stashing as well
as by providing biasing for core-to-flow affinity, which ensures
that flow-specific data structures can remain in the core’s cache.

This patch enables the one cache line data stashing for packet
annotation data and packet context

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support basic stats
Hemant Agrawal [Tue, 11 Apr 2017 13:49:32 +0000 (19:19 +0530)]
net/dpaa2: support basic stats

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: update link status
Hemant Agrawal [Tue, 11 Apr 2017 13:49:31 +0000 (19:19 +0530)]
net/dpaa2: update link status

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support Rx packet parsing
Hemant Agrawal [Tue, 11 Apr 2017 13:49:30 +0000 (19:19 +0530)]
net/dpaa2: support Rx packet parsing

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: enable Rx and Tx operations
Hemant Agrawal [Tue, 11 Apr 2017 13:49:29 +0000 (19:19 +0530)]
net/dpaa2: enable Rx and Tx operations

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support MTU configuration
Hemant Agrawal [Tue, 11 Apr 2017 13:49:28 +0000 (19:19 +0530)]
net/dpaa2: support MTU configuration

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support promiscuous mode
Hemant Agrawal [Tue, 11 Apr 2017 13:49:27 +0000 (19:19 +0530)]
net/dpaa2: support promiscuous mode

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support L3 and L4 checksum offload
Hemant Agrawal [Tue, 11 Apr 2017 13:49:26 +0000 (19:19 +0530)]
net/dpaa2: support L3 and L4 checksum offload

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: attach the buffer pool to dpni
Hemant Agrawal [Tue, 11 Apr 2017 13:49:25 +0000 (19:19 +0530)]
net/dpaa2: attach the buffer pool to dpni

This patch configures a MC-DPNI based DPAA2 PMD network
port with a DPBP based buffer pool.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: configure MAC address at init
Hemant Agrawal [Tue, 11 Apr 2017 13:49:24 +0000 (19:19 +0530)]
net/dpaa2: configure MAC address at init

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add RSS flow distribution
Hemant Agrawal [Tue, 11 Apr 2017 13:49:23 +0000 (19:19 +0530)]
net/dpaa2: add RSS flow distribution

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: add basic operations
Hemant Agrawal [Tue, 11 Apr 2017 13:49:22 +0000 (19:19 +0530)]
net/dpaa2: add basic operations

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support MC dpni object
Hemant Agrawal [Tue, 11 Apr 2017 13:49:21 +0000 (19:19 +0530)]
net/dpaa2: support MC dpni object

This patch add support for dpni object support in MC driver.

DPNI represent a network interface object in DPAA2.

Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agonet/dpaa2: support debug log
Hemant Agrawal [Tue, 11 Apr 2017 13:49:19 +0000 (19:19 +0530)]
net/dpaa2: support debug log

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agodoc: add DPAA2 NIC details
Hemant Agrawal [Tue, 11 Apr 2017 13:49:18 +0000 (19:19 +0530)]
doc: add DPAA2 NIC details

This patch adds the NXP dpaa2 architecture and pmd details
in the Network interfaces section.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agonet/dpaa2: introduce NXP DPAA2 driver
Hemant Agrawal [Tue, 11 Apr 2017 13:49:17 +0000 (19:19 +0530)]
net/dpaa2: introduce NXP DPAA2 driver

add support for fsl-mc bus based dpaa2 pmd driver.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agomempool/dpaa2: add hardware offloaded mempool
Hemant Agrawal [Tue, 11 Apr 2017 13:42:39 +0000 (19:12 +0530)]
mempool/dpaa2: add hardware offloaded mempool

DPAA2 Hardware Mempool handlers allow enqueue/dequeue from NXP's
QBMAN hardware block.
CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS is set to 'dpaa2', if the pool
is enabled.

This memory pool currently supports packet mbuf type blocks only.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add frame queue based dq storage
Hemant Agrawal [Tue, 11 Apr 2017 13:37:27 +0000 (19:07 +0530)]
bus/fslmc: add frame queue based dq storage

This patch adds generic functions for allowing dq storage
for the frame queues.
As the frame queues are common resource for different drivers
this is helpful.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support DMA mapping for ARM SMMU
Hemant Agrawal [Tue, 11 Apr 2017 13:37:26 +0000 (19:07 +0530)]
bus/fslmc: support DMA mapping for ARM SMMU

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add physical-virtual address translation helpers
Hemant Agrawal [Tue, 11 Apr 2017 13:37:25 +0000 (19:07 +0530)]
bus/fslmc: add physical-virtual address translation helpers

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add packet FLE definitions
Hemant Agrawal [Tue, 11 Apr 2017 13:37:24 +0000 (19:07 +0530)]
bus/fslmc: add packet FLE definitions

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: define VLAN header length
Hemant Agrawal [Tue, 11 Apr 2017 13:37:23 +0000 (19:07 +0530)]
bus/fslmc: define VLAN header length

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: introduce true and false macros
Hemant Agrawal [Tue, 11 Apr 2017 13:37:22 +0000 (19:07 +0530)]
bus/fslmc: introduce true and false macros

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: define hardware annotation area size
Hemant Agrawal [Tue, 11 Apr 2017 13:37:21 +0000 (19:07 +0530)]
bus/fslmc: define hardware annotation area size

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: define queues for DPAA2 devices
Hemant Agrawal [Tue, 11 Apr 2017 13:37:20 +0000 (19:07 +0530)]
bus/fslmc: define queues for DPAA2 devices

Before DPAA2 devices can communicate using hardware queues, this patch
adds queue definitions in the FSLMC bus which the DPAA2 devices would
instantiate.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: affine dpio to crypto threads
Hemant Agrawal [Tue, 11 Apr 2017 13:37:19 +0000 (19:07 +0530)]
bus/fslmc: affine dpio to crypto threads

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support hardware mempool object
Hemant Agrawal [Tue, 11 Apr 2017 13:37:18 +0000 (19:07 +0530)]
bus/fslmc: support hardware mempool object

Each mempool instance is represented by a DPBP object
from the FSL-MC bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add dpio portal driver
Hemant Agrawal [Tue, 11 Apr 2017 13:37:17 +0000 (19:07 +0530)]
bus/fslmc: add dpio portal driver

The portal driver is bound to DPIO objects discovered on the fsl-mc bus and
provides services that:
- allow other drivers, such as the Ethernet driver, to enqueue and dequeue
  frames for their respective objects

A system will typically allocate 1 DPIO object per CPU to allow queuing
operations to happen simultaneously across all CPUs.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support debug log
Hemant Agrawal [Tue, 11 Apr 2017 13:37:16 +0000 (19:07 +0530)]
bus/fslmc: support debug log

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: scan for net and crypto device
Hemant Agrawal [Tue, 11 Apr 2017 13:37:15 +0000 (19:07 +0530)]
bus/fslmc: scan for net and crypto device

This patch will add support in fslmc vfio process to
scan and parse the dpni and dpseci object for net and crypto
devices. It will add the scanned devices to the fslmc bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support VFIO
Hemant Agrawal [Tue, 11 Apr 2017 13:37:14 +0000 (19:07 +0530)]
bus/fslmc: support VFIO

Add support for using VFIO for dpaa2 based fsl-mc bus.

There are some differences in the way vfio used for fsl-mc bus
from the eal vfio.
 - The scanning of bus for individual objects on the basis of
   the DPRC container.
 - The use and mapping of MC portal for object access

With the evolution of bus model, they can be further aligned with
eal vfio code.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agovfio: export utility functions in map file
Hemant Agrawal [Tue, 11 Apr 2017 13:37:13 +0000 (19:07 +0530)]
vfio: export utility functions in map file

adding extra vfio utility functions to map file.
They will be used by other vfio supported buses like fslmc bus
for NXP DPAA2 devices

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support MC dpbp object
Hemant Agrawal [Tue, 11 Apr 2017 13:37:12 +0000 (19:07 +0530)]
bus/fslmc: support MC dpbp object

DPBP object represent a hw based buffer pool instance
in the DPAA2 hardware.

Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: support MC dpio object
Hemant Agrawal [Tue, 11 Apr 2017 13:37:11 +0000 (19:07 +0530)]
bus/fslmc: support MC dpio object

This patch adds the DPIO object support in MC driver.

DPIO - Data Path Input Output represent the processing
context to access the QBMAN HW for packet I/O.

Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: introduce MC object functions
Hemant Agrawal [Tue, 11 Apr 2017 13:37:10 +0000 (19:07 +0530)]
bus/fslmc: introduce MC object functions

This patch introduces the DPAA2 MC(Management complex Driver).

This is a minimal set of low level functions to send and
receive commands to the fsl-mc. It includes support for basic
management commands and commands to manipulate MC objects.

This is common to be used by various DPAA2 PMDs. e.g.net, crypto
and other drivers.

This is a low level library also used in kernel.

Signed-off-by: Cristian Sovaiala <cristian.sovaiala@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: add QBMAN driver to bus
Hemant Agrawal [Tue, 11 Apr 2017 13:37:09 +0000 (19:07 +0530)]
bus/fslmc: add QBMAN driver to bus

QBMAN, is a hardware block which interfaces with the other
accelerating hardware blocks (For e.g., WRIOP) on NXP's DPAA2
SoC for queue, buffer and packet scheduling.

This patch introduces a userspace driver for interfacing with
the QBMAN hw block.

The qbman-portal component provides APIs to do the low level
hardware bit twiddling for operations such as:
  -initializing Qman software portals
  -building and sending portal commands
  -portal interrupt configuration and processing

This same/similar code is used in kernel and compat file is used
to make it working in user space.

Signed-off-by: Geoff Thorpe <geoff.thorpe@nxp.com>
Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agobus/fslmc: introduce fsl-mc bus driver
Hemant Agrawal [Tue, 11 Apr 2017 13:37:08 +0000 (19:07 +0530)]
bus/fslmc: introduce fsl-mc bus driver

The fslmc bus driver is a rte_bus driver which scans the fsl-mc bus
for NXP DPAA2 SoCs.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agomk: add CRC support to DPAA2 machine type
Hemant Agrawal [Tue, 11 Apr 2017 13:37:07 +0000 (19:07 +0530)]
mk: add CRC support to DPAA2 machine type

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agonet/ena: calculate partial checksum if DF bit is disabled
Michal Krawczyk [Mon, 10 Apr 2017 14:28:11 +0000 (16:28 +0200)]
net/ena: calculate partial checksum if DF bit is disabled

When TSO is disabled we still have to calculate partial checksum if DF bit
if turned off. This is caused by firmware bug.

First of all, we must make sure that we are dealing with IPV4 packet.
If not, we will just skip further checking of this packet and move to
the next one.

If application will not set m2_len field, we assume we that it was Ethernet
frame because we have to look inside the packet to check for the DF flag.
To make it work properly, PMD is assuming that before sending
packet application called function rte_eth_tx_prepare().

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Jakub Palider <jpalider@gmail.com>
Acked-by: Jan Medala <jan.medala@outlook.com>
7 years agonet/ena: cleanup if refilling of Rx descriptors fails
Michal Krawczyk [Mon, 10 Apr 2017 14:28:10 +0000 (16:28 +0200)]
net/ena: cleanup if refilling of Rx descriptors fails

If wrong number of descriptors for refilling was passed to the Rx
repopulate function, there was memory leak which caused memory pool to
run out of resources in longer go.

In case of fail when refilling Rx descriptors, all additional mbufs
have to be released.

Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Cc: stable@dpdk.org
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Jakub Palider <jpalider@gmail.com>
Acked-by: Jan Medala <jan.medala@outlook.com>
7 years agonet/ena: fix delayed cleanup of Rx descriptors
Michal Krawczyk [Mon, 10 Apr 2017 14:28:09 +0000 (16:28 +0200)]
net/ena: fix delayed cleanup of Rx descriptors

On RX path, after receiving bunch of packets, variable tracking
available descriptors in HW queue was not updated.

To fix this issue, variable tracking used descriptors must be updated
after receiving packets - it must be reduced by the amount of received
descriptors in current batch.

Additionally, variable next_to_clean in rx_ring must be updated before
entering ena_populate_rx_queue() to keep it up to date with the current
ring state.

Fixes: 1daff5260ff8 ("net/ena: use unmasked head and tail")
Cc: stable@dpdk.org
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Jakub Palider <jpalider@gmail.com>
Acked-by: Jan Medala <jan.medala@outlook.com>
7 years agonet/ena: fix Rx descriptors allocation
Michal Krawczyk [Mon, 10 Apr 2017 14:28:08 +0000 (16:28 +0200)]
net/ena: fix Rx descriptors allocation

When application tried to allocate 1024 descriptors, device was not
initializing properly.

This patch solves it by avoiding allocation of all descriptors in the
ring in one attempt. At least one descriptor must remain unused in the
HW ring.

Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Cc: stable@dpdk.org
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Jakub Palider <jpalider@gmail.com>
Acked-by: Jan Medala <jan.medala@outlook.com>
7 years agonet/ark: report hardware status on init
Ed Czeck [Tue, 11 Apr 2017 15:41:50 +0000 (11:41 -0400)]
net/ark: report hardware status on init

Expose additional fpga status registers.
Report hardware status during PMD init.

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
Acked-by: John Miller <john.miller@atomicrules.com>
7 years agonet/ark: set mbuf time stamp field on Rx
Ed Czeck [Tue, 11 Apr 2017 15:41:37 +0000 (11:41 -0400)]
net/ark: set mbuf time stamp field on Rx

Time stamp was carried in the packet meta data, but not
place in the mbuf. The new time stamp field is the proper
destination.

Remove the setting of data offset since this is done by
rte_pktmbuf_free()

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
Acked-by: John Miller <john.miller@atomicrules.com>
7 years agonet/mlx5: remove extra check on Rx
Nélio Laranjeiro [Tue, 11 Apr 2017 12:46:17 +0000 (14:46 +0200)]
net/mlx5: remove extra check on Rx

Removing this check improves performance as VLAN and CRC stripping are
enabled most of the time.

Convert MLX5_CQE_VLAN_STRIPPED to network order to speed up the check
instead of doing it on the completion queue entry field.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
7 years agonet/thunderx: fix stats access out of bounds
Marcin Wilk [Tue, 11 Apr 2017 12:35:13 +0000 (14:35 +0200)]
net/thunderx: fix stats access out of bounds

Trying to assign more queues to stats struct break only from one loop
when the maximum size is reached. Outside loop iteration is continued.
This leads to access an array out of bounds.

Fixes: 21e3fb0050b9 ("net/thunderx: add final bits for secondary queue support")
Cc: stable@dpdk.org
Signed-off-by: Marcin Wilk <marcin.wilk@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agonet/ixgbe: move private APIs to a specific file
Wenzhuo Lu [Tue, 11 Apr 2017 08:31:24 +0000 (16:31 +0800)]
net/ixgbe: move private APIs to a specific file

Create a new file rte_pmd_ixgbe.c for all the private
APIs. Move all the related code to the new file.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/i40e: move private APIs to a specific file
Wenzhuo Lu [Tue, 11 Apr 2017 08:31:23 +0000 (16:31 +0800)]
net/i40e: move private APIs to a specific file

Create a new file rte_pmd_i40e.c for all the private
APIs. Move all the related code to the new file.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
7 years agonet/i40e: fix default PFC setting
Jingjing Wu [Tue, 11 Apr 2017 07:35:49 +0000 (15:35 +0800)]
net/i40e: fix default PFC setting

To keep consistent with previous release, Priority Flow Control (PFC)
need to be disabled by default. This patch fixes it.

This also fixes an issue where traffic was not forwarded by testpmd
occasionally. In those cases ~4770 pps seen on one of the ports rather
than the full rate (>20mpps).

Fixes: 6f0a707e5b55 ("net/i40e: enable DCB on SRIOV VFs")

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Tested-by: David Hunt <david.hunt@intel.com>
7 years agonet/i40e: fix hash input set on X722
Jeff Guo [Thu, 6 Apr 2017 02:35:26 +0000 (10:35 +0800)]
net/i40e: fix hash input set on X722

There are some new PCTYPEs on X722, but they have not been announced
on the RTE lib, so if it can not set corresponding hash input set for
these packet type, the hash function won’t work.

So we need to handle them base on the translation of the new
PCTYPE and the original PCTYPE.

Fixes: b6a0ec418274 ("i40e: use AQ for Rx control register read/write")

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/enic: remove initialization of some mbuf fields
John Daley [Tue, 11 Apr 2017 01:37:19 +0000 (18:37 -0700)]
net/enic: remove initialization of some mbuf fields

Remove initialization of next and nb_segs mbuf fields in the Rx path
since they are now initialized in the mbuf pool.

See commit 8f094a9ac5d7 ("mbuf: set mbuf fields while in pool").

Signed-off-by: John Daley <johndale@cisco.com>
7 years agonet/thunderx: use internal byte ordering macros
Jerin Jacob [Mon, 10 Apr 2017 19:44:34 +0000 (01:14 +0530)]
net/thunderx: use internal byte ordering macros

The base code was using native GCC macros
for endian detection. Change to portable
rte_byteorder.h based endian detection.

Fixes: 262d43fe20ee ("net/thunderx/base: add HW register definitions")

Suggested-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agonet/tap: update driver param string
Pascal Mazon [Tue, 11 Apr 2017 09:01:03 +0000 (11:01 +0200)]
net/tap: update driver param string

Fixes: 2bc06869cd94 ("net/tap: add remote netdevice traffic capture")

Signed-off-by: Pascal Mazon <pascal.mazon@6wind.com>
7 years agonet/ixgbe: remove option to disable offload flags
Konstantin Ananyev [Mon, 10 Apr 2017 15:59:42 +0000 (16:59 +0100)]
net/ixgbe: remove option to disable offload flags

Having packets received without any offload flags given in the mbuf is not
very useful, and performance tests with testpmd indicates little
benefit is got with the current code by turning off the flags. This makes
the build-time option pointless, so we can remove it.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agonet/ixgbe: eliminate mbuf write on rearm
Konstantin Ananyev [Mon, 10 Apr 2017 15:59:41 +0000 (16:59 +0100)]
net/ixgbe: eliminate mbuf write on rearm

With the mbuf rework, we now have 8 contiguous bytes to be rearmed in the
mbuf just before the 8-bytes of olflags. If we don't do the rearm write
inside the descriptor ring replenishment function, and delay it to
receiving the packet, we can do a single 16B write inside the RX function
to set both the rearm data, and the flags together.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agonet/i40e: sync between x86 and arm64 vector PMD
Jianbo Liu [Thu, 6 Apr 2017 08:33:21 +0000 (16:33 +0800)]
net/i40e: sync between x86 and arm64 vector PMD

Porting two changes from x86 SSE implematation.
    net/i40e: fix checksum flag in x86 vector Rx
    net/i40e: eliminate mbuf write on rearm

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
7 years agonet/i40e: remove option to disable offload flags
Bruce Richardson [Thu, 6 Apr 2017 11:32:17 +0000 (12:32 +0100)]
net/i40e: remove option to disable offload flags

Having packets received without any offload flags given in the mbuf is not
very useful, and performance tests with testpmd indicates little to no
benefit is got with the current code by turning off the flags. This makes
the build-time option pointless, so we can remove it.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
7 years agonet/i40e: eliminate mbuf write on rearm
Bruce Richardson [Thu, 6 Apr 2017 11:32:16 +0000 (12:32 +0100)]
net/i40e: eliminate mbuf write on rearm

With the mbuf rework, we now have 8 contiguous bytes to be rearmed in the
mbuf just before the 8-bytes of olflags. If we don't do the rearm write
inside the descriptor ring replenishment function, and delay it to
receiving the packet, we can do a single 16B write inside the RX function
to set both the rearm data, and the flags together.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jianbo Liu <jianbo.liu@linaro.org>
7 years agonet/liquidio: fix null pointer check
Shijith Thotton [Mon, 10 Apr 2017 07:18:56 +0000 (12:48 +0530)]
net/liquidio: fix null pointer check

Fix null pointer check in release Rx/Tx queue APIs.

Coverity issue: 1423923
Coverity issue: 1423924
Fixes: 9a30013b9884 ("net/liquidio: add API to release Rx queue")
Fixes: cf6bfcbea178 ("net/liquidio: add API to release Tx queue")

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
7 years agonet/liquidio/base: fix mbox command initialization
Shijith Thotton [Mon, 10 Apr 2017 07:18:55 +0000 (12:48 +0530)]
net/liquidio/base: fix mbox command initialization

Initialize mail box command to request VF FLR. Data field was
uninitialized before as it was not required and caused the following
error during scan.

Coverity issue: 1384518
Fixes: cdb166963cae ("net/liquidio: add API for VF FLR")

Signed-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
7 years agonet/i40e: add missing 25G link speed
Qi Zhang [Sun, 9 Apr 2017 18:05:06 +0000 (14:05 -0400)]
net/i40e: add missing 25G link speed

Add missing 25G link speed decode in i40evf_dev_link_update.

Fixes: 75d133dd3296 ("net/i40e: enable 25G device")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
7 years agonet/i40e: fix VF link speed
Qi Zhang [Sun, 9 Apr 2017 18:05:05 +0000 (14:05 -0400)]
net/i40e: fix VF link speed

When PF notify link speed to VF, encode of link speed need to
be converted from ETH_SPEED_XXX to I40E_LINK_SPEED_XXX.

Fixes: bb6722fb5c0e ("net/i40e: fix VF bonded device link down")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>