dpdk.git
8 years agonet/bnxt: remove support for few devices
Ajit Khaparde [Mon, 7 Nov 2016 15:11:39 +0000 (09:11 -0600)]
net/bnxt: remove support for few devices

Some of the production parts will arrive after the 16.11 release.
Back off support for those devices. We will add these IDs again
at an appropriate time.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
8 years agonet/bnxt: add a fallthrough comment in cascading switch
Ajit Khaparde [Mon, 7 Nov 2016 15:11:55 +0000 (09:11 -0600)]
net/bnxt: add a fallthrough comment in cascading switch

The cascading switch statement in bnxt_hwrm.c is missing the FALLTHROUGH
comment. Adding that.

Coverity issue: 127552

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
8 years agonet/bnxt: fix data type for vnic attributes entry size
Ajit Khaparde [Mon, 7 Nov 2016 15:12:04 +0000 (09:12 -0600)]
net/bnxt: fix data type for vnic attributes entry size

Prevent the arithmetic in bnxt_alloc_vnic_attributes from causing
any unintentional havoc because of the usage of a signed variable.

Coverity issue: 137874

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
8 years agodoc: update release notes for mlx5
Nelio Laranjeiro [Thu, 3 Nov 2016 13:45:31 +0000 (14:45 +0100)]
doc: update release notes for mlx5

Add list of tested and validated NICs too.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: update mlx5 dependencies
Nelio Laranjeiro [Wed, 2 Nov 2016 13:46:43 +0000 (14:46 +0100)]
doc: update mlx5 dependencies

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: add speed capabilities feature for mlx5
Nelio Laranjeiro [Thu, 27 Oct 2016 15:04:22 +0000 (17:04 +0200)]
doc: add speed capabilities feature for mlx5

Fixes: 75ef62a94301 ("net/mlx5: fix link speed capability information")
Fixes: 188408719888 ("net/mlx5: fix support for newer link speeds")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agonet/mlx: fix support for new Rx checksum flags
Nelio Laranjeiro [Wed, 2 Nov 2016 10:39:39 +0000 (11:39 +0100)]
net/mlx: fix support for new Rx checksum flags

Fixes: 5842289a546c ("mbuf: add new Rx checksum flags")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
8 years agonet/mlx5: define explicit fields for Rx offloads
Nelio Laranjeiro [Wed, 2 Nov 2016 10:39:38 +0000 (11:39 +0100)]
net/mlx5: define explicit fields for Rx offloads

This commit redefines the completion queue element structure as the
original lacks the required fields.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
8 years agonet/mlx5: fix Rx checksum macros
Nelio Laranjeiro [Wed, 2 Nov 2016 10:39:37 +0000 (11:39 +0100)]
net/mlx5: fix Rx checksum macros

Add missing:

 - MLX5_CQE_RX_IPV4_PACKET
 - MLX5_CQE_RX_IPV6_PACKET
 - MLX5_CQE_RX_OUTER_IPV4_PACKET
 - MLX5_CQE_RX_OUTER_IPV6_PACKET
 - MLX5_CQE_RX_TUNNEL_PACKET
 - MLX5_CQE_RX_OUTER_IP_CSUM_OK
 - MLX5_CQE_RX_OUTER_TCP_UDP_CSUM_OK

Fixes: 51a50a3d9b8f ("net/mlx5: add definitions for data path without Verbs")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
8 years agonet/mlx5: fix handling of small mbuf sizes
Raslan Darawsheh [Mon, 24 Oct 2016 08:10:59 +0000 (11:10 +0300)]
net/mlx5: fix handling of small mbuf sizes

When mbufs are smaller than MRU, multi-segment support must be enabled to
default set when not in promiscuous or allmulticast modes.

Fixes: 9964b965ad69 ("net/mlx5: re-add Rx scatter support")

Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
8 years agonet/mlx5: fix buffer alignment in Tx
Elad Persiko [Tue, 1 Nov 2016 08:13:27 +0000 (08:13 +0000)]
net/mlx5: fix buffer alignment in Tx

Constraint alignment was not respected in Tx because of a
wrong use of vector instruction.

Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path")

Signed-off-by: Elad Persiko <eladpe@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
8 years agodoc: update release notes with enic changes
John Daley [Thu, 3 Nov 2016 18:01:33 +0000 (11:01 -0700)]
doc: update release notes with enic changes

Signed-off-by: John Daley <johndale@cisco.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agonet/enic: fix max packet length check
John Daley [Tue, 1 Nov 2016 18:08:28 +0000 (11:08 -0700)]
net/enic: fix max packet length check

When the device was configured with an explicit maximum packet length,
it would fail if the value was greater than MTU configured in CIMC/UCSM
(plus L2 header length). It should have been compared against maximum
allowed by the device.

Fixes: bb34ffb848a0 ("net/enic: determine max egress packet size and max MTU")

Signed-off-by: John Daley <johndale@cisco.com>
8 years agonet/ena: check for free buffers prior Tx
Jakub Palider [Sat, 29 Oct 2016 01:06:15 +0000 (03:06 +0200)]
net/ena: check for free buffers prior Tx

Signed-off-by: Tal Avraham <talavr@annapurnalabs.com>
Signed-off-by: Jakub Palider <jpa@semihalf.com>
8 years agonet/ena: use unmasked head and tail
Jakub Palider [Sat, 29 Oct 2016 01:06:14 +0000 (03:06 +0200)]
net/ena: use unmasked head and tail

The next_to_clean and next_to_use ring pointers sometimes were kept
wrapped around ring size, sometimes used beyond this limit. From now
on we increment them without regard to ring size limits, but when
reading the values they are wrapped accordingly. Moreover unit16_t
are unsed whenever possible.

Signed-off-by: Tal Avraham <talavr@annapurnalabs.com>
Signed-off-by: Jakub Palider <jpa@semihalf.com>
8 years agonet/i40e: fix VF bonded device link down
Qiming Yang [Fri, 4 Nov 2016 09:10:51 +0000 (17:10 +0800)]
net/i40e: fix VF bonded device link down

If VF device is used as slave of a bond device, it will be polled
periodically through alarm. Interrupt is involved here. And then
VF will send I40E_VIRTCHNL_OP_GET_LINK_STAT message to
PF to query the status. The response is handled by interrupt
callback. Interrupt is involved here again. That's why bond
device cannot bring up.

This patch removes I40E_VIRTCHNL_OP_GET_LINK_STAT
message. Link status in VF driver will be updated when PF driver
notify it, and VF stores this link status locally. VF driver just
returns the local status when being required.

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agonet/i40e: fix link status change interrupt
Qiming Yang [Fri, 4 Nov 2016 09:10:50 +0000 (17:10 +0800)]
net/i40e: fix link status change interrupt

Previously, link status interrupt in i40e is achieved by checking
LINK_STAT_CHANGE_MASK in PFINT_ICR0 register which is provided only
for diagnostic use. Instead, drivers need to get the link status
change notification by using LSE (Link Status Event).

This patch enables LSE and calls LSC callback when the event is
received. This patch also removes the processing on
LINK_STAT_CHANGE_MASK.

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agonet/i40e: fix floating VEB
Beilei Xing [Fri, 4 Nov 2016 11:08:08 +0000 (19:08 +0800)]
net/i40e: fix floating VEB

Turning off S-TAG identification will impact floating VEB,
VFs can't communicate with each other.
This patch fixes this issue by judging whether floating
VEB is enabled, S-TAG identification will be turned off
only when floating VEB is disabled.

Fixes: 4d61120d5ce7 ("net/i40e: fix dropping packets with ethertype 0x88A8")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agonet/i40e: fix DCB configuration
Jingjing Wu [Fri, 4 Nov 2016 05:42:33 +0000 (13:42 +0800)]
net/i40e: fix DCB configuration

Removing stopping LLDP in firmware is a workaround for a
known errata which can cause Rx hang. But the changing will
cause DCB configuration fails. That is because when LLDP is
enabled, the return value of i40e_init_dcb is success. But
following check just considered the case when LLDP agent
is disabled.
This patch fixes this issue.

Fixes: fcbd40d4327b ("net/i40e: fix Rx hang when disable LLDP")

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
8 years agoapp/testpmd: fix DCB configuration
Bernard Iremonger [Thu, 3 Nov 2016 17:35:38 +0000 (17:35 +0000)]
app/testpmd: fix DCB configuration

Data Centre Bridge (DCB) configuration fails when SRIOV is
enabled if nb_rxq or nb_txq are greater than nb_q_per_pool.

The failure occurs during configuration of the ixgbe PMD when
it is started, in the ixgbe_check_mq_mode function.

Fixes: 2a977b891f99 ("app/testpmd: fix DCB configuration")

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agodoc: add ixgbe specific API
Bernard Iremonger [Fri, 14 Oct 2016 16:35:08 +0000 (17:35 +0100)]
doc: add ixgbe specific API

Add information about new ixgbe PMD API.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agonet/ixgbe: fix VF registers
Wenzhuo Lu [Sun, 6 Nov 2016 16:57:04 +0000 (11:57 -0500)]
net/ixgbe: fix VF registers

Some VF registers are using PF's name or address by mistake.
Although some of them are sharing the same addresses.

Fixes: 0198848a47f5 ("ixgbe: add access to specific device info")

Reported-by: Xuekun Hu <xuekun.hu@intel.com>
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
8 years agonet/e1000: fix forced configuration of speed and duplex
Ananda Sathyanarayana [Wed, 2 Nov 2016 23:36:55 +0000 (16:36 -0700)]
net/e1000: fix forced configuration of speed and duplex

From the code, it looks like, hw->mac.autoneg, variable is used to
switch between calling either autoneg function or forcing
speed/duplex function. But this variable is not modified in
eth_em_start/eth_igb_start routines (it is always set to 1)
even while forcing the link speed.

Following discussion thread has some more information on this:
http://dpdk.org/ml/archives/dev/2016-October/049272.html

Signed-off-by: Ananda Sathyanarayana <ananda@versa-networks.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
8 years agovhost: remove references to vhost-cuse
Yuanhan Liu [Wed, 2 Nov 2016 03:15:01 +0000 (11:15 +0800)]
vhost: remove references to vhost-cuse

vhost-cuse is removed, update corresponding comments that are still
referencing it.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: update vhost sample guide
Yuanhan Liu [Wed, 2 Nov 2016 03:15:00 +0000 (11:15 +0800)]
doc: update vhost sample guide

For vhost-switch sample, the old guide takes too many words on
vhost-cuse, which is mainly due to vhost-cuse is invented before
vhost-user.

Now vhost-cuse is removed, meaning the best part of the doc is useless.
Instead of amending one piece here and there, this patch simply removes
the most part of the doc and replace it with a simple test guide.

For tep_term sample, mainly for removing the part has "vhost-cuse".

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: update vhost programming guide
Yuanhan Liu [Wed, 2 Nov 2016 03:14:59 +0000 (11:14 +0800)]
doc: update vhost programming guide

vhost-cuse has been removed in this release. Update the doc, with the
vhost-cuse part being removed.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agonet/virtio: fix multiple queue enabling
Yuanhan Liu [Mon, 7 Nov 2016 09:25:06 +0000 (17:25 +0800)]
net/virtio: fix multiple queue enabling

When queue number shrinks to 1 from X, the following code stops us
sending the multiple queue ctrl message:

        if (nb_queues > 1) {
                if (virtio_set_multiple_queues(dev, nb_queues) != 0)
                        return -EINVAL;
        }

This ends up with still X queues being enabled, which is obviously
wrong. Fix it by replacing the check with a multiple queue enabled
or not check.

Fixes: 823ad647950a ("virtio: support multiple queues")

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
8 years agonet/virtio: fix less queues being enabled
Yuanhan Liu [Sat, 5 Nov 2016 09:41:04 +0000 (17:41 +0800)]
net/virtio: fix less queues being enabled

From the virtio spec of view, multiple-queue is always enabled/disabled
in queue pairs. DPDK somehow allows the case when Tx and Rx queue number
are different.

Currently, virtio PMD get the queue pair number from the nb_rx_queues
field, which could be an issue when Tx queue number > Rx queue number.
Say, 2 Tx queues and 1 Rx queues. This would end up with 1 quues being
enabled. Which is wrong.

The fix is straightforward. Just pick a bigger number and enable that many
of queues.

Fixes: 823ad647950a ("virtio: support multiple queues")

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
8 years agonet/virtio: remove started field
Yuanhan Liu [Sat, 5 Nov 2016 09:41:03 +0000 (17:41 +0800)]
net/virtio: remove started field

The "hw->started" field was introduced to stop touching queues
on restart. We never touches queues on restart any more, thus
it's safe to remove this flag.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/virtio: complete init stage at the right place
Yuanhan Liu [Sat, 5 Nov 2016 09:41:02 +0000 (17:41 +0800)]
net/virtio: complete init stage at the right place

Invoking vtpci_reinit_complete() at port start stage doesn't make any
sense, instead, it should be done at the end of dev init stage.

So move it here.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/virtio: move queue configure code to proper place
Yuanhan Liu [Sat, 5 Nov 2016 09:41:01 +0000 (17:41 +0800)]
net/virtio: move queue configure code to proper place

The only piece of code of virtio_dev_rxtx_start() is actually doing
queue configure/setup work. So, move it to corresponding queue_setup
callback.

Once that is done, virtio_dev_rxtx_start() becomes an empty function,
thus it's being removed.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/virtio: initiate vring at init stage
Yuanhan Liu [Sat, 5 Nov 2016 09:41:00 +0000 (17:41 +0800)]
net/virtio: initiate vring at init stage

virtio_dev_vring_start() is actually doing the vring initiation job.
And the vring initiation job should be done at the dev init stage, as
stated with great details in former commit.

So move it there, and rename it to virtio_init_vring().

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/virtio: allocate queue at init stage
Yuanhan Liu [Sat, 5 Nov 2016 09:40:59 +0000 (17:40 +0800)]
net/virtio: allocate queue at init stage

Queue allocation should be done once, since the queue related info (such
as vring addreess) will only be informed to the vhost-user backend once
without virtio device reset.

That means, if you allocate queues again after the vhost-user negotiation,
the vhost-user backend will not be informed any more. Leading to a state
that the vring info mismatches between virtio PMD driver and vhost-backend:
the driver switches to the new address has just been allocated, while the
vhost-backend still sticks to the old address has been assigned in the init
stage.

Unfortunately, that is exactly how the virtio driver is coded so far: queue
allocation is done at queue_setup stage (when rte_eth_tx/rx_queue_setup is
invoked). This is wrong, because queue_setup can be invoked several times.
For example,

    $ start_testpmd.sh ... --txq=1 --rxq=1 ...
    > port stop 0
    > port config all txq 1 # just trigger the queue_setup callback again
    > port config all rxq 1
    > port start 0

The right way to do is allocate the queues in the init stage, so that the
vring info could be persistent with the vhost-user backend.

Besides that, we should allocate max_queue pairs the device supports, but
not nr queue pairs firstly configured, to make following case work.

    $ start_testpmd.sh ... --txq=1 --rxq=1 ...
    > port stop 0
    > port config all txq 2
    > port config all rxq 2
    > port start 0

Since the allocation is switched to init stage, the free should also
moved from the rx/tx_queue_release to dev close stage. That leading we
could do nothing an empty rx/tx_queue_release() implementation.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
8 years agonet/virtio: simplify queue allocation
Yuanhan Liu [Sat, 5 Nov 2016 09:40:58 +0000 (17:40 +0800)]
net/virtio: simplify queue allocation

Let rxq/txq/cq be the union field of the virtqueue struct. This would
simplifies the vq allocation a bit: we don't need calculate the vq_size
any more based on the queue type.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/virtio: simplify queue memzone name
Yuanhan Liu [Sat, 5 Nov 2016 09:40:57 +0000 (17:40 +0800)]
net/virtio: simplify queue memzone name

Instead of setting up a queue memzone name like "port0_rxq0", "port0_txq0",
it could be simplified a bit to something like "port0_vq0", "port0_vq1" ...

Meanwhile, the code is also simplified a bit.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/virtio: revert fix restart
Yuanhan Liu [Sat, 5 Nov 2016 09:40:56 +0000 (17:40 +0800)]
net/virtio: revert fix restart

This reverts commit 9a0615af7746 ("virtio: fix restart"); conflict is
manually addressed.

Kyle reported an issue with above commit

    qemu-kvm: Guest moved used index from 5 to 1

with following steps,

    1) Start my virtio interfaces
    2) Send some traffic into/out of the interfaces
    3) Stop the interfaces
    4) Start the interfaces
    5) Send some more traffic

And here are some quotes from Kyle's analysis,

    Prior to the patch, if an interface were stopped then started, without
    restarting the application, the queues would be left as-is, because
    hw->started would be set to 1. Now, calling stop sets hw->started to 0,
    which means the next call to start will "touch the queues". This is the
    unintended side-effect that causes the problem.

We should not touch the queues once the init is done, otherwise, the vring
state of virtio PMD driver and vhost-user would be inconsistent, leading
some issue like above.

Thus this patch is reverted.

Fixes: 9a0615af7746 ("virtio: fix restart")

Reported-by: Kyle Larose <klarose@sandvine.com>
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
8 years agonet/ring: remove unnecessary NULL check
Mauricio Vasquez B [Wed, 2 Nov 2016 13:46:09 +0000 (08:46 -0500)]
net/ring: remove unnecessary NULL check

Coverity detected this as an issue because internals->data will never be NULL,
then the check is not necessary.

Coverity issue: 137873
Fixes: d082c0395bf6 ("ring: fix memory leak when detaching")

Signed-off-by: Mauricio Vasquez B <mauricio.vasquez@polito.it>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
8 years agopci: fix probing error if no driver found
Igor Ryzhov [Thu, 4 Aug 2016 11:50:06 +0000 (14:50 +0300)]
pci: fix probing error if no driver found

The rte_eal_pci_probe_one function could return false positive result if
no driver is found for the device.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Acked-by: David Marchand <david.marchand@6wind.com>
8 years agopci: unset driver if probe fails
David Marchand [Mon, 7 Nov 2016 09:03:29 +0000 (10:03 +0100)]
pci: unset driver if probe fails

dev->driver should be set only if a driver did take the device.

Signed-off-by: David Marchand <david.marchand@6wind.com>
8 years agoexamples/ipsec-secgw: fix configuration string termination
Fan Zhang [Thu, 3 Nov 2016 12:12:40 +0000 (12:12 +0000)]
examples/ipsec-secgw: fix configuration string termination

Coverity issue: 137854, 137855
Fixes: 0d547ed03717 ("examples/ipsec-secgw: support configuration file")

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
8 years agoapp/test: fix hanging in SNOW 3G performance test
Arek Kusztal [Fri, 28 Oct 2016 11:37:09 +0000 (12:37 +0100)]
app/test: fix hanging in SNOW 3G performance test

This commit fixes problem with device hanging because of
wrong pointer values in snow3g performance test

Fixes: 97fe6461c7cb ("app/test: add SNOW 3G performance test")

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
8 years agocryptodev: clarify how operations affect buffers
Fiona Trahe [Wed, 2 Nov 2016 17:53:46 +0000 (17:53 +0000)]
cryptodev: clarify how operations affect buffers

Updated comments on API to clarify which parts of mbufs are
copied or changed by crypto operations.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
8 years agoapp/test: fix crash when checking LPM performance twice
Nikita Kozlov [Tue, 1 Nov 2016 11:55:55 +0000 (12:55 +0100)]
app/test: fix crash when checking LPM performance twice

num_route_entries needs to be resetted.

Fixes: 17d60f5b5eea ("app/test: remove large IPv4 LPM data file")

Signed-off-by: Nikita Kozlov <nikita@elyzion.net>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Wei Dai <wei.dai@intel.com>
Acked-by: Wei Dai <wei.dai@intel.com>
8 years agolpm: fix freeing memory
Wei Dai [Thu, 3 Nov 2016 10:15:59 +0000 (18:15 +0800)]
lpm: fix freeing memory

The memory pointed by lpm->rules_tbl should also be freed
when memory malloc for tbl8 fails in rte_lpm_create_v1604( ).
And the memory pointed by lpm->tbl8 should also be freed
when the lpm object is freed in rte_lpm_free_v1604( ).

Fixes: f1f7261838b3 ("lpm: add a new config structure for IPv4")

Signed-off-by: Morten Brørup <mb@smartsharesystems.com>
Signed-off-by: Wei Dai <wei.dai@intel.com>
8 years agocfgfile: fix API comments
Dmitriy Yakovlev [Wed, 19 Oct 2016 00:33:03 +0000 (03:33 +0300)]
cfgfile: fix API comments

Fixed style and return values in Doxygen comments.

Fixes: eaafbad419bf ("cfgfile: library to interpret config files")

Signed-off-by: Dmitriy Yakovlev <bombermag@gmail.com>
8 years agonet: remove mempool dependency
Ferruh Yigit [Tue, 1 Nov 2016 17:03:31 +0000 (17:03 +0000)]
net: remove mempool dependency

Fixes: b25c2a8c692d ("net: introduce net library")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
8 years agodoc: add net library in release notes
Ferruh Yigit [Tue, 1 Nov 2016 17:03:30 +0000 (17:03 +0000)]
doc: add net library in release notes

Fixes: b25c2a8c692d ("net: introduce net library")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agopci: probe only devices without any driver
Ben Walker [Tue, 25 Oct 2016 21:50:40 +0000 (14:50 -0700)]
pci: probe only devices without any driver

If the user asks to probe multiple times, the probe
callback should only be called on devices that don't have
a driver already loaded.

This is useful if a driver is registered after the
execution of a program has started and the list of devices
needs to be re-scanned.

Signed-off-by: Ben Walker <benjamin.walker@intel.com>
8 years agoeal/ppc: fix file descriptor leak when getting CPU features
Jianbo Liu [Fri, 4 Nov 2016 09:46:43 +0000 (15:16 +0530)]
eal/ppc: fix file descriptor leak when getting CPU features

Close the file descriptor after finish using it.

Fixes: 9ae15538 ("eal/ppc: cpu flag checks for IBM Power")

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Jan Viktorin <viktorin@rehivetech.com>
8 years agoeal/arm: fix file descriptor leak when getting CPU features
Jianbo Liu [Fri, 4 Nov 2016 09:46:42 +0000 (15:16 +0530)]
eal/arm: fix file descriptor leak when getting CPU features

Close the file descriptor after finish using it.

Fixes: b94e5c94 ("eal/arm: add CPU flags for ARMv7")
Fixes: 97523f82 ("eal/arm: add CPU flags for ARMv8")

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Jan Viktorin <viktorin@rehivetech.com>
8 years agoethdev: rename library for consistency
Thomas Monjalon [Sun, 6 Nov 2016 18:18:23 +0000 (19:18 +0100)]
ethdev: rename library for consistency

The library was named libethdev without rte_ prefix.
It is now fixed, the library namespace is consistent.

Note: the ABI version has already been changed in this release cycle.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agolib: fix ABI version after device model rework
Shreyansh Jain [Thu, 27 Oct 2016 11:29:12 +0000 (16:59 +0530)]
lib: fix ABI version after device model rework

rte_device/driver generalization patches [1] were merged without a change
in the LIBABIVER variable. This patches bumps the macro of affected libs:

- libcryptodev and libetherdev have been bumped
- librte_eal version changed in
  d7e61ad3ae36 ("log: remove deprecated history dump")

Details of ABI/API changes:
- EAL [version already bumped in: d7e61ad3ae36]
  |- type field was removed from rte_driver
  |- rte_pci_device now embeds rte_device
  |- rte_pci_resource renamed to rte_mem_resource
  |- numa_node and devargs of rte_pci_driver is moved to rte_driver
  |- APIs for device hotplug (attach/detach) moved into EAL
  |- API rte_eal_pci_device_name added for PCI device naming
  |- vdev registration API introduced (rte_eal_vdrv_register,
  |  rte_eal_vdrv_unregister

- librte_crypto (v 1=>2)
  |- removed rte_cryptodev_create_unique_device_name API
  |- moved device naming to EAL

- librte_ethdev (v 4=>5)
  |- rte_eth_dev_type is removed
  |- removed dev_type from rte_eth_dev_allocate API
  |- removed API rte_eth_dev_get_device_type
  |- removed API rte_eth_dev_get_addr_by_port
  |- removed API rte_eth_dev_get_port_by_addr
  |- removed rte_cryptodev_create_unique_device_name API
  |- moved device naming to EAL

Also, deprecation notice from 16.07 has been removed and release notes for
16.11 added.

[1] http://dpdk.org/ml/archives/dev/2016-September/047087.html

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
8 years agomk: fix install-doc without html
Thomas Monjalon [Sun, 6 Nov 2016 16:42:12 +0000 (17:42 +0100)]
mk: fix install-doc without html

When trying to install PDF, man pages or examples without having built
neither HTML API nor HTML guides, there was an error:

% make install-doc
tar: html: Cannot stat: No such file or directory

The fix is to check the html directory before installing HTML files.

Fixes: e4552b9cc603 ("mk: install doc")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agoscripts: remove zlib dependency to test qede build
Thomas Monjalon [Sun, 6 Nov 2016 18:36:04 +0000 (19:36 +0100)]
scripts: remove zlib dependency to test qede build

The driver qede does not depend on zlib anymore.

Fixes: 7d178e9ef614 ("net/qede: remove zlib dependency and enable PMD")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Harish Patil <harish.patil@qlogic.com>
8 years agoscripts: ignore const struct checks
Thomas Monjalon [Fri, 4 Nov 2016 15:27:38 +0000 (16:27 +0100)]
scripts: ignore const struct checks

checkpatch raise some false positives when run outside of the kernel tree.

The script checkpatch.pl from the kernel checks a list
of structs known to be const.
It is obviously not relevant as DPDK has not such list.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agoscripts: show full headline with checkpatch
Thomas Monjalon [Thu, 3 Nov 2016 08:12:33 +0000 (09:12 +0100)]
scripts: show full headline with checkpatch

The Subject in an email can be split on two lines.
In such case, the second line (starting with a space) can be
joined to the first one.

It is handled differently when parsing stdin or a file.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agoscripts: add standard input to checkpatch
Thomas Monjalon [Wed, 2 Nov 2016 14:39:45 +0000 (15:39 +0100)]
scripts: add standard input to checkpatch

It is now possible to check a patch by providing an email
through stdin.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agoscripts: fix quiet checkpatch
Thomas Monjalon [Wed, 2 Nov 2016 14:22:30 +0000 (15:22 +0100)]
scripts: fix quiet checkpatch

The commit e13fbc065c7f ("scripts: improve quiet checkpatch")
removed the line "total: 1 errors, 0 warnings, 7 lines checked"
from the quiet report.
Later, commit e7c38f471384 ("scripts: remove useless checkpatch notes")
removed few lines before "total:.*lines checked", so it was not working
well for quiet reporting.

Better to keep the "total:" line in quiet mode and remove the other ones.
That's why the checkpatch.pl option --no-summary is not used anymore
by reverting the commit e13fbc065c7f.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agoscripts: show fixes with release version of bug
Thomas Monjalon [Fri, 30 Sep 2016 14:18:42 +0000 (16:18 +0200)]
scripts: show fixes with release version of bug

This script can help to find commits to backport in stable branches.

Fixes are found if there is the word "fix" in the headline or
if there is a tag Fixes: or Reverts: in the message.
Chained fixes of fixes are explored to find the oldest origin.
Fixes of not released bugs are ignored.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
8 years agoversion: 16.11-rc2
Thomas Monjalon [Wed, 26 Oct 2016 21:51:42 +0000 (23:51 +0200)]
version: 16.11-rc2

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
8 years agoscripts: add more git log checks
Ferruh Yigit [Fri, 23 Sep 2016 12:47:27 +0000 (13:47 +0100)]
scripts: add more git log checks

Alphabetically sorted items to check and
added git log capitalization checks for LRO, NIC and PMD

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
8 years agodoc: add basic guide for devbind
Christian Ehrhardt [Wed, 31 Aug 2016 07:50:12 +0000 (09:50 +0200)]
doc: add basic guide for devbind

This summarizes the "how to call dpdk-devbind" in one place to be
picked up by html/pdf/man-page docs.

That knowledge was available before but spread in various docs along
examples (which are great and have to be kept) as well as in the
--usage/--help option of the tool itself.

As a root only program in sbin it should belong to section 8
"8   System administration commands (usually only for root)"

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Luca Boccassi <lboccass@brocade.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: add basic guide for pmdinfo
Christian Ehrhardt [Wed, 31 Aug 2016 07:50:11 +0000 (09:50 +0200)]
doc: add basic guide for pmdinfo

This summarizes the "how to call dpdk-pmdinfo" in one place to be picked
up by html/pdf/man-page docs.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Luca Boccassi <lboccass@brocade.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: render and install man pages
Christian Ehrhardt [Wed, 31 Aug 2016 07:50:10 +0000 (09:50 +0200)]
doc: render and install man pages

This enables the rendering of rst into man pages as well as installing
them (if built) along the binaries. To do so there is a new make target
"doc-guides-man" which will render the rst files into man format.

Currently these three tools had docs that were compatible "enough" to
make up for a reasonable manpage.
- testpmd
- dpdk-pdump
- dpdk-procinfo

Since a man page should be installed along the binary they are not
installed in install-doc but install-runtime insteade. If not explicitly
built by the "doc-guides-man" target before calling install-runtime
there is no change to the old behaviour.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Luca Boccassi <lboccass@brocade.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: move tool guides in their own subdirectory
Christian Ehrhardt [Wed, 31 Aug 2016 07:50:09 +0000 (09:50 +0200)]
doc: move tool guides in their own subdirectory

This is to clarify the scope of these documents that are more tools than
sample applications.
Also this is a preparation step to add more tools and generate man pages
off of their rst files.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Luca Boccassi <lboccass@brocade.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agodoc: add pdump limitation note
Reshma Pattan [Thu, 13 Oct 2016 15:09:02 +0000 (16:09 +0100)]
doc: add pdump limitation note

The note i.e. "The dpdk-pdump tool can only be used in
conjunction with a primary process which has the packet
capture framework initialized already" is added to
doc/guides/sample_app_ug/pdump.rst to facilitate
easy understanding on the usage of the tool.

Suggested-by: Jianfeng Tan <jianfeng.tan@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
8 years agopdump: revert PCI device name conversion
Reshma Pattan [Tue, 25 Oct 2016 16:31:38 +0000 (17:31 +0100)]
pdump: revert PCI device name conversion

Earlier ethdev library created the device names in the
"bus:device.func" format hence pdump library implemented
its own conversion method for changing the user passed
device name format "domain:bus:device.func" to "bus:device.func"
for finding the port id using device name using ethdev library
calls. Now after ethdev and eal rework
http://dpdk.org/dev/patchwork/patch/15855/,
the device names are created in the format "domain:bus:device.func",
so pdump library conversion is not needed any more, hence removed
the corresponding code.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
8 years agoapp/test: use correct offsets in AES performance test
Fiona Trahe [Mon, 24 Oct 2016 12:00:00 +0000 (13:00 +0100)]
app/test: use correct offsets in AES performance test

offsets for digest and data need to be adjusted
to take prepended IV into account

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
8 years agocrypto/qat: rework request builder for performance
Fiona Trahe [Mon, 24 Oct 2016 11:59:59 +0000 (12:59 +0100)]
crypto/qat: rework request builder for performance

QAT PMD adjusts the buffer start address and offsets passed
to the device so that the DMAs in and out of the device are
64-byte aligned.
This gives more consistent throughput, which had been
variable depending on how the application set up the mbuf.
The message builder code had to be considerably re-factored
to do this efficiently.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
8 years agocrypto/openssl: rename libcrypto to openssl
Slawomir Mrozowicz [Tue, 18 Oct 2016 11:36:13 +0000 (13:36 +0200)]
crypto/openssl: rename libcrypto to openssl

This patch replaces name "libcrypto" to "openssl" from file directories,
symbol prefixes and sub-names connected with old name.
Renamed poll mode driver files, test files, and documentations.
It is done to better name association with library because
the cryptography operations are using Openssl library crypto API.

Fixes: d61f70b4c918 ("crypto/libcrypto: add driver for OpenSSL library")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
8 years agoapp/test: add crypto continual performance tests
Arek Kusztal [Thu, 13 Oct 2016 12:17:41 +0000 (13:17 +0100)]
app/test: add crypto continual performance tests

This commit adds continual performace tests to Intel(R) QuickAssist
Technology tests suite. Performance tests are run continually with
some number of repeating loops.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
8 years agoapp/test: add corrupted data for qat
Arek Kusztal [Thu, 13 Oct 2016 10:03:46 +0000 (11:03 +0100)]
app/test: add corrupted data for qat

This commit adds tests with corrupted data to the Intel QuickAssist
Technology tests suite in test_cryptodev.c

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
8 years agonet/i40e: fix Rx hang when disable LLDP
Qi Zhang [Wed, 19 Oct 2016 20:40:13 +0000 (04:40 +0800)]
net/i40e: fix Rx hang when disable LLDP

Remove stopping LLDP as a workaround for a known
errata which can cause Rx hang.

Ref: Item #70 from
http://www.intel.com/content/www/us/en/embedded/products/networking/xl710-10-40-controller-spec-update.html

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agonet/ixgbe: support multiqueue mode VMDq DCB with SRIOV
Bernard Iremonger [Wed, 26 Oct 2016 15:28:40 +0000 (16:28 +0100)]
net/ixgbe: support multiqueue mode VMDq DCB with SRIOV

Allow Data Center Bridge (DCB) configuration when SRIOV is enabled.

Signed-off-by: Rahul R Shah <rahul.r.shah@intel.com>
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
8 years agonet/mlx5: fix support for newer link speeds
Nélio Laranjeiro [Wed, 26 Oct 2016 09:44:02 +0000 (11:44 +0200)]
net/mlx5: fix support for newer link speeds

Not all speed capabilities can be reported properly before Linux 4.8 (25G,
50G and 100G speeds are missing), moreover the API to retrieve them only
exists since Linux 4.5, this commit thus implements compatibility code for
all versions.

Fixes: e274f5732225 ("ethdev: add speed capabilities")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
8 years agonet/mlx5: fix link speed capability information
Nélio Laranjeiro [Wed, 26 Oct 2016 09:44:01 +0000 (11:44 +0200)]
net/mlx5: fix link speed capability information

Make hard-coded values dynamic to return correct link speed capabilities
(not all ConnectX-4 NICs support everything).

Fixes: e274f5732225 ("ethdev: add speed capabilities")

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
8 years agonet/i40e: fix hash filter on X722
Jeff Guo [Tue, 25 Oct 2016 02:42:36 +0000 (22:42 -0400)]
net/i40e: fix hash filter on X722

When verifying the Hash filtering on X722, we found a problem that
the hash value in descriptor is incorrect. The root cause is that X722
uses different way of hash key word selection compared with X710/XL710.
This patch fixes it by setting X722 specific key selection.

Fixes: 98f055707685 ("i40e: configure input fields for RSS or flow director")

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agonet/i40e: fix flow director on X710
Jeff Guo [Tue, 25 Oct 2016 02:25:41 +0000 (22:25 -0400)]
net/i40e: fix flow director on X710

Because some registers are only supported by X722, for example,
I40E_GLQF_FD_PCTYPES, the driver needs to use the mac type to distinguish
the behavior of X722 from X710 and other NICs, or it would result in
errors on X710.

Fixes: 8c5cb3c11513 ("net/i40e: add packet type translation for X722")

Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
8 years agonet/ixgbe: fix VF VLAN insert API
E. Scott Daniels [Wed, 19 Oct 2016 14:47:33 +0000 (15:47 +0100)]
net/ixgbe: fix VF VLAN insert API

The final parameter to rte_pmd_ixgbe_set_vf_vlan_insert is uint8_t
and treated as a binary flag when it needs to be a uint16_t
and treated as a VLAN id.  The data sheet (sect 8.2.3.27.13) describes
the right most 16 bits as the VLAN id that is to be inserted; the
16.11  code is accepting only a 1 or 0 thus effectively only
allowing the VLAN id 1 to be inserted (0 disables the insertion
setting).

This patch changes the final parm name to represent the data that
is being accepted (vlan_id), changes the type to permit all valid
VLAN ids, and validates the parameter based on the range of 0 to
4095. Corresponding changes to prototype and documentation in the
.h file.

Fixes: 49e248223e9f71 ("net/ixgbe: add API for VF management")

Signed-off-by: E. Scott Daniels <daniels@research.att.com>
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
8 years agonet/qede: update driver version
Rasesh Mody [Wed, 19 Oct 2016 04:11:46 +0000 (21:11 -0700)]
net/qede: update driver version

This patch updates the qede pmd version to 1.2.0.1.

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agodoc: update qede guide
Rasesh Mody [Wed, 19 Oct 2016 04:11:45 +0000 (21:11 -0700)]
doc: update qede guide

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
8 years agonet/qede: remove zlib dependency and enable PMD
Rasesh Mody [Wed, 19 Oct 2016 04:11:44 +0000 (21:11 -0700)]
net/qede: remove zlib dependency and enable PMD

The QEDE PMD now uses unzipped firmware file eliminating the dependency
on zlib. Hence remove LDLIBS entry form the Makefile and enable qede
PMD by default.

Fixes: 6adac0bf30b3 ("qede: add missing external dependency and disable by default")

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agonet/qede: add queue statistics
Rasesh Mody [Wed, 19 Oct 2016 04:11:43 +0000 (21:11 -0700)]
net/qede: add queue statistics

This patch adds support for pulling per queue statistics.

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agonet/qede: fix status block index for VF queues
Harish Patil [Wed, 19 Oct 2016 04:11:42 +0000 (21:11 -0700)]
net/qede: fix status block index for VF queues

o Fix the fastpath status block index such that each queue pair shares
the same index value.

o Add ecore_vf_get_num_sbs() API that returns the number of status
blocks assigned by PF. Use that to decide how many VF queues can be
advertised. Additionally, restrict maximum number of VF queues to 16
for 100G VF case.

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: fix driver version string
Harish Patil [Wed, 19 Oct 2016 04:11:41 +0000 (21:11 -0700)]
net/qede: fix driver version string

This patch fixes the base driver version display.
The driver version notation is:
<Base-Version_PMD-Version>

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: skip slow path polling for 100G VF device
Harish Patil [Wed, 19 Oct 2016 04:11:40 +0000 (21:11 -0700)]
net/qede: skip slow path polling for 100G VF device

There is no need to poll for slowpath events for VF
device since the ramrod responses are received over
PF-VF backchannel synchronously. So the fix is to
restrict the slowpath polling for PF device only.

Fixes: 2af14ca79c0a ("net/qede: support 100G")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede/base: support to initiate PF FLR
Harish Patil [Wed, 19 Oct 2016 04:11:39 +0000 (21:11 -0700)]
net/qede/base: support to initiate PF FLR

Add support to send PF FLR request to the management firmware to
bringup the device in clean slate. This cleanup is necessary
in some corner cases where the device would be left in a bad
state from its previous operations. The driver will send PF FLR
request before slowpath initialization.

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede/base: change queue start
Rasesh Mody [Wed, 19 Oct 2016 04:11:38 +0000 (21:11 -0700)]
net/qede/base: change queue start

Changed q_{rx,tx}_start APIs to use common queue start parameters

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agonet/qede: support scatter gather
Sony Chacko [Wed, 19 Oct 2016 04:11:37 +0000 (21:11 -0700)]
net/qede: support scatter gather

Add scatter gather support to enable transmit and receive of larger
packets.

Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
8 years agonet/qede: fix RSS
Harish Patil [Wed, 19 Oct 2016 04:11:36 +0000 (21:11 -0700)]
net/qede: fix RSS

This patch contains few RSS related changes as follows:

o Fix inadvertent initializing of rss_params outside of the
  if block in qed_update_vport() which could cause FW exception.

o Fix disabling of RSS when hash function is 0.

o Rename qede_config_rss() to qede_check_vport_rss_enable()
  for better clarity.

o Avoid code duplication using a helper function
  qede_init_rss_caps().

Fixes: 4c98f2768eef ("net/qede: support RSS hash configuration")
Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: enable and disable VLAN filtering
Harish Patil [Wed, 19 Oct 2016 04:11:35 +0000 (21:11 -0700)]
net/qede: enable and disable VLAN filtering

The device doesn't explicitly support enable/disable
of VLAN filtering. However, VLAN filtering takes effect
when a matching VLAN is configured. So in order to
support enable/disable of VLAN filtering, VLAN 0 is
added/removed respectively. A check is added to ensure that
the user removes all the configured VLANs before disabling
VLAN filtering.

Also VLAN offloads shall be enabled by default and
vlan_tci_outer is to set to 0 for Q-in-Q packets.

Fixes: 2ea6f76 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: fix VLAN filters
Harish Patil [Wed, 19 Oct 2016 04:11:34 +0000 (21:11 -0700)]
net/qede: fix VLAN filters

 - fix to prevent duplicate VLAN filters

librte_ether does not keep track of VLAN filters
configured, so it becomes driver's responsibility to
keep track of it and prevent duplicate filter
programming. The fix is to use a singly linked
list for tracking the entries and there by prevent
duplicates.

 - fix num vlan filters

Fix num vlan filter when filling Ethernet device information.

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: remove unused code
Harish Patil [Wed, 19 Oct 2016 04:11:33 +0000 (21:11 -0700)]
net/qede: remove unused code

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agonet/qede: add 100G link speed capability
Harish Patil [Wed, 19 Oct 2016 04:11:32 +0000 (21:11 -0700)]
net/qede: add 100G link speed capability

This patch fixes the missing 100G link speed advertisement
when the 100G support was initially added.

Fixes: 2af14ca79c0a ("net/qede: support 100G")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede/base: allow MTU change
Harish Patil [Wed, 19 Oct 2016 04:11:31 +0000 (21:11 -0700)]
net/qede/base: allow MTU change

Add support to allow MTU change on a deactivated vport in
the qede/base driver and the core driver shall utilize the same.

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: fix port (re)configuration
Harish Patil [Wed, 19 Oct 2016 04:11:30 +0000 (21:11 -0700)]
net/qede: fix port (re)configuration

Some applications set port configuration params like promisc mode
before calling dev_start(). This config results in a firmware exception
since this operation internally translates to sending of VPORT-UPDATE
before VPORT-START ramrod which is considered illegal from firmware
standpoint. So the fix is to send VPORT-START ramrod sooner
in dev_configure() rather than deferring it to dev_start().
This requires a bit of reshuffling in the code to move sending of
VPORT-START from qede_start_queues() to qede_dev_configure()
and VPORT-STOP from qede_stop_queues() to qede_dev_stop().

This sequence change also exposes a flaw in the port restart
flows where the fastpath resource allocation routine qede_init_fp()
functionalities need to be split, so that appropriate action is taken
based on the current port state. Eg: Do not re-initialize the status
block in a port restart case. This change ensures port start/stop
can be paired.

A new port state QEDE_DEV_CONFIG is added to distinguish between
port started from scratch vs port requiring a reconfig (like MTU).
The function qede_config_rx_mode() is removed since the individual
port config will be replayed anyways on a restart.

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
8 years agonet/qede: support unequal number of Rx/Tx queues
Sony Chacko [Wed, 19 Oct 2016 04:11:29 +0000 (21:11 -0700)]
net/qede: support unequal number of Rx/Tx queues

Previous release of the qede PMD had a limitation that the
driver expects the number of tx and rx queues to be the same.
This patch fixes this issue by making appropriate changes in
control and data path.

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
8 years agonet/qede/base: support MFW crash dump
Rasesh Mody [Wed, 19 Oct 2016 04:11:28 +0000 (21:11 -0700)]
net/qede/base: support MFW crash dump

Add support for management firmware(MFW) crash dump collection.

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agonet/qede/base: enhance comments
Rasesh Mody [Wed, 19 Oct 2016 04:11:27 +0000 (21:11 -0700)]
net/qede/base: enhance comments

Comment additions and modifications

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
8 years agonet/qede/base: rename pmm prefix to eth
Rasesh Mody [Wed, 19 Oct 2016 04:11:26 +0000 (21:11 -0700)]
net/qede/base: rename pmm prefix to eth

Renamed following to match with HSI changes
 - PMM_* to ETH_*
 - pmm_* to eth_*

Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>