dpdk.git
9 years agoapp/testpmd: fix default flow control values
Ding Zhi [Mon, 1 Jun 2015 12:11:09 +0000 (14:11 +0200)]
app/testpmd: fix default flow control values

This variable has undefined values in some cases.

Fixes: 422a20a4e62d ("app/testpmd: fix uninitialized flow control variables")

Signed-off-by: Ding Zhi <zhi.ding@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
[Thomas: split lines to conform with guidelines]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoexamples/qos_sched: use librte_cfgfile
Michal Jastrzebski [Fri, 5 Jun 2015 09:28:17 +0000 (11:28 +0200)]
examples/qos_sched: use librte_cfgfile

This is a modification of qos_sched example to use
librte_cfgfile for parsing configuration file.

Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
9 years agomlx4: fix 32-bit build
Nelio Laranjeiro [Fri, 22 May 2015 14:17:31 +0000 (16:17 +0200)]
mlx4: fix 32-bit build

Fix warning messages "cast to pointer from integer of different size" when
compiling DPDK in 32 bit with Mellanox PMD.

SGE addresses are 64 bit integers, converting them to pointers must be done
through uintptr_t to avoid compilation warnings when those have a different
size.

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
9 years agovhost: enable live migration
Krishna Murthy [Wed, 27 May 2015 03:01:31 +0000 (11:01 +0800)]
vhost: enable live migration

When we migrate VM, without this feature, qemu will report error:
"migrate: Migration disabled: vhost lacks VHOST_F_LOG_ALL feature".

Signed-off-by: Krishna Murthy <krishna.j.murthy@intel.com>
9 years agombuf: optimize refcnt update
Olivier Matz [Mon, 8 Jun 2015 14:57:22 +0000 (16:57 +0200)]
mbuf: optimize refcnt update

In __rte_pktmbuf_prefree_seg(), there was an optimization to avoid using
a costly atomic operation when updating the mbuf reference counter if
its value is 1. Indeed, it means that we are the only owner of the mbuf,
and therefore nobody can change it at the same time.

We can generalize this optimization directly in rte_mbuf_refcnt_update()
so the other callers of this function, like rte_pktmbuf_attach(), can
also take advantage of this optimization.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
9 years agoapp/testpmd: fix reply to a multicast ICMP request
Ivan Boule [Thu, 28 May 2015 15:05:23 +0000 (17:05 +0200)]
app/testpmd: fix reply to a multicast ICMP request

Set the IP source and destination addresses in the IP header of the
ICMP reply as follows:
  - Use the request IP source address as the reply IP destination address
  - If the request IP destination address is a multicast IP address
      - choose a reply IP source address different from the request IP
        source address,
      - re-compute the IP header checksum.
    Otherwise
      - switch the request IP source and destination addresses in the
        reply,
      - keep the IP header checksum unchanged.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
9 years agoixgbe: add multicast MAC address filtering
Ivan Boule [Thu, 28 May 2015 15:05:22 +0000 (17:05 +0200)]
ixgbe: add multicast MAC address filtering

Support the function "set_mc_addr_list" in the "ixgbe" and in the
"ixgbe-vf" Poll Mode Drivers.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
9 years agoe1000: add multicast MAC address filtering
Ivan Boule [Thu, 28 May 2015 15:05:21 +0000 (17:05 +0200)]
e1000: add multicast MAC address filtering

Support the PMD function "set_mc_addr_list" in the "igb", "igb-vf",
and "em" Poll Mode Drivers.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
9 years agoapp/testpmd: new command to add/remove multicast MAC addresses
Ivan Boule [Thu, 28 May 2015 15:05:20 +0000 (17:05 +0200)]
app/testpmd: new command to add/remove multicast MAC addresses

Add the new interactive command:
    mcast_addr add|remove X <mcast_addr>
to add/remove the multicast MAC address <mcast_addr> to/from the set of
multicast addresses filtered by port <X>.
Command used to test the function "rte_eth_dev_set_mc_addr_list"
that has been added to the API of PMDs.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
9 years agoethdev: add multicast address filtering
Ivan Boule [Fri, 29 May 2015 08:56:25 +0000 (10:56 +0200)]
ethdev: add multicast address filtering

With the current PMD API, the receipt of multicast packets on a given
port can only be enabled by invoking the "rte_eth_allmulticast_enable"
function.
This method may not work on Virtual Functions in SR-IOV architectures
when the host PF driver does not allow such operation on VFs.
In such cases, joined multicast addresses must be individually added
in the set of multicast addresses that are filtered by the [VF] port.

For this purpose, a new function "set_mc_addr_list" is introduced
into the set of functions that are exported by a Poll Mode Driver.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
[Thomas: export new function in .map]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agovirtio: fix crash if CQ is not negotiated
Damjan Marion [Mon, 25 May 2015 10:20:52 +0000 (12:20 +0200)]
virtio: fix crash if CQ is not negotiated

Fix NULL dereference if virtio control queue is not negotiated.

Signed-off-by: Damjan Marion <damarion@cisco.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
9 years agovirtio: fix ring size negotiation
Stephen Hemminger [Thu, 11 Jun 2015 15:53:27 +0000 (08:53 -0700)]
virtio: fix ring size negotiation

Negotiate the virtio ring size. The host may allow for very large
rings but application may only want a smaller ring.
Conversely, if the number of descriptors requested exceeds the virtio
host queue size, then just silently use the smaller host size.

This fixes issues with virtio in non-QEMU envirionments.
For example Google Compute Engine allows up to 16K elements
in ring.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
9 years agovirtio: clarify feature bit handling
Stephen Hemminger [Thu, 11 Jun 2015 15:53:26 +0000 (08:53 -0700)]
virtio: clarify feature bit handling

Change the features from bit mask to bit number. This allows the
DPDK driver to use the definitions from Linux (yes the header
files already use a license compatiable with DPDK). This makes DPDK
driver handle future feature bit changes.

Get rid of double negative code in the feature bit intialization.
Instead just have a new define with the list of feature bits implemented.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
9 years agovirtio: do not set mac table unless negotiated
Stephen Hemminger [Thu, 11 Jun 2015 15:53:25 +0000 (08:53 -0700)]
virtio: do not set mac table unless negotiated

Don't attempt to set the MAC address table unless the host allows
it in feature negotiation. Also, don't return a value from mac_table_set
since all callers ignore the return value.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
9 years agovirtio: do not enable/disable Rx modes unless supported
Stephen Hemminger [Thu, 11 Jun 2015 15:53:24 +0000 (08:53 -0700)]
virtio: do not enable/disable Rx modes unless supported

If negotiation with host says that controlling Rx mode is
not supported, then don't try.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
9 years agovirtio: remove blank lines
Stephen Hemminger [Thu, 11 Jun 2015 15:53:23 +0000 (08:53 -0700)]
virtio: remove blank lines

Putting blank line between function and following conditional
just wastes screen space, and makes code less obvious.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
9 years agodrivers: explicit initialization of pci drivers
Stephen Hemminger [Fri, 29 May 2015 15:47:51 +0000 (08:47 -0700)]
drivers: explicit initialization of pci drivers

Upcoming drivers will need to be able to support other bus types.
This is a transparent change to how struct eth_driver is initialized.
It has not function or ABI layout impact, but makes adding a later
bus type (Xen, Hyper-V, ...) much easier.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoexamples: fix whitespace
Stephen Hemminger [Thu, 4 Jun 2015 14:43:25 +0000 (07:43 -0700)]
examples: fix whitespace

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
9 years agoapp: fix whitespace
Stephen Hemminger [Thu, 4 Jun 2015 14:43:24 +0000 (07:43 -0700)]
app: fix whitespace

Fix trailing whitespace, space before tab and empty lines at end of file.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
[Thomas: fix indent and alignment in test_acl.h and test_sched.c]

9 years agodrivers: fix whitespace
Stephen Hemminger [Thu, 4 Jun 2015 14:43:27 +0000 (07:43 -0700)]
drivers: fix whitespace

Note: ignored whitespace issues in base (external code).

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Helin Zhang <helin.zhang@intel.com>
9 years agolib: fix whitespace
Stephen Hemminger [Thu, 4 Jun 2015 14:43:23 +0000 (07:43 -0700)]
lib: fix whitespace

More places with trailing whitespace, and empty blank lines

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
9 years agokni: fix whitespace
Stephen Hemminger [Thu, 4 Jun 2015 14:43:19 +0000 (07:43 -0700)]
kni: fix whitespace

Ran this code base through a script which:
  - removes trailing whitespace
  - removes space before tabs
  - removes blank lines at end of file

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Helin Zhang <helin.zhang@intel.com>
9 years agoeal: fix whitespace
Stephen Hemminger [Thu, 4 Jun 2015 14:43:20 +0000 (07:43 -0700)]
eal: fix whitespace

Eliminate trailing whitespace, space after tabs, and extra blank lines

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
9 years agomk, scripts: remove useless blank lines
Stephen Hemminger [Thu, 4 Jun 2015 14:43:26 +0000 (07:43 -0700)]
mk, scripts: remove useless blank lines

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
9 years agovmxnet3: fix spelling
Stephen Hemminger [Wed, 10 Jun 2015 16:09:37 +0000 (09:09 -0700)]
vmxnet3: fix spelling

Fix spelling errors in strings and comments.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Yong Wang <yongwang@vmware.com>
9 years agomk: fix combined library build
Sergio Gonzalez Monroy [Tue, 9 Jun 2015 09:37:28 +0000 (10:37 +0100)]
mk: fix combined library build

The combined lib was being created after building the lib root dir.
With the new directory hierarchy, it should be created after the
drivers root dir instead.

Fixes: 980ed498eb1dd0 ("drivers: create new directory")

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tested-by: Li Wei <lw@cn.fujitsu.com>
9 years agoi40evf: fix jumbo frame support
Helin Zhang [Thu, 4 Jun 2015 06:54:32 +0000 (14:54 +0800)]
i40evf: fix jumbo frame support

It wouldn't check the configured maximum packet length, and then
the scattered receiving function wouldn't be selected at all even
if it wants to receive a jumbo frame. The fix is to select the
correct RX function according to the configurations.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
9 years agodoc: add coding style
Bruce Richardson [Wed, 3 Jun 2015 13:58:13 +0000 (14:58 +0100)]
doc: add coding style

Add coding standards document to guides directory. This document
codifies the current DPDK C coding conventions, to make it easier for
contributors to see the format their code should be in.

Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoacl: remove subtree calculations at build stage
Konstantin Ananyev [Wed, 3 Jun 2015 17:45:19 +0000 (18:45 +0100)]
acl: remove subtree calculations at build stage

As now subtree_id is not used acl_merge_trie() any more,
there is no point to calculate and maintain that information.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
9 years agoacl: add new test case for ranges build
Konstantin Ananyev [Wed, 3 Jun 2015 17:45:18 +0000 (18:45 +0100)]
acl: add new test case for ranges build

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
9 years agoacl: fix matching rule
Konstantin Ananyev [Wed, 3 Jun 2015 17:45:17 +0000 (18:45 +0100)]
acl: fix matching rule

Reported by Zi Hu:
"
cat test_data/rule1
@192.168.0.0/24 192.168.0.0/24 400 : 500 0 : 52 6/0xff
@192.168.0.0/24 192.168.0.0/24 400 : 500 54 : 65280 6/0xff
@192.168.0.0/24 192.168.0.0/24 400 : 500 0 : 65535 6/0xff

cat test_data/trace1
0xc0a80005 0xc0a80009 450 53 0x06

I run the test by:
sudo ./testacl -n 2 -c 4 -- --rulesf=./test_data/rule1
 --tracef=./test_data/trace1

The result shows that the packet matches the second rule,  which is wrong.
The dest port of the pkt is 53, so it should match the third rule.
"

Indeed there is problem at ACL build stage.
Sometimes acl_merge_trie() is too aggressive in trying to conserve
space at build time.
So it takes a wrong assumptions and didn't duplicate a node,
even when it should.
The easiest and safest fix seems to always duplicate a left non-root/non-leaf
node first, and let the further code to destroy the node, if it is not needed.

Reported-by: Zi Hu <huzilucky@gmail.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
9 years agobonding: remove useless memset
Stephen Hemminger [Wed, 3 Jun 2015 21:13:10 +0000 (14:13 -0700)]
bonding: remove useless memset

Remove 2 unneeded memset's.  The info area is already cleared rte_eth_dev_info_get
and the statistics buffer is cleared by rte_eth_stats_get

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agonull: remove useless memset
Stephen Hemminger [Wed, 3 Jun 2015 21:13:12 +0000 (14:13 -0700)]
null: remove useless memset

The stats area is already cleared before calling eth_stats_get().

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoethdev: remove useless memset
Stephen Hemminger [Wed, 3 Jun 2015 21:13:11 +0000 (14:13 -0700)]
ethdev: remove useless memset

eth_stats is already cleared by rte_eth_stats_get

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoeal/linux: fix numa node detection
Bruce Richardson [Wed, 22 Apr 2015 13:31:55 +0000 (14:31 +0100)]
eal/linux: fix numa node detection

Using the "physical_package_id" as a fallback for determining the
numa node of a core tends to be unreliable. Fix this by using a
detection routine which reads the numa information from
/sys/devices/system/node and just returns a numa node of 0 on
failure.

Reported-by: Wang Sheng-Hui <shhuiw@gmail.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
9 years agoexamples/l3fwd: make destination mac address configurable
Andrey Chilikin [Mon, 18 May 2015 12:13:24 +0000 (13:13 +0100)]
examples/l3fwd: make destination mac address configurable

Add a command-line parameter to l3fwd, to allow the user to specify the
destination mac address for each ethernet port used.

Signed-off-by: Andrey Chilikin <andrey.chilikin@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
9 years agoexamples/load_balancer: fix build with gcc 5.1
Thomas Monjalon [Tue, 2 Jun 2015 13:42:08 +0000 (15:42 +0200)]
examples/load_balancer: fix build with gcc 5.1

GCC 5.1 detects more out-of-bounds accesses:
error: array subscript is above array bounds [-Werror=array-bounds]

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
9 years agoip_frag: fix build with gcc 5.1
Bruce Richardson [Fri, 29 May 2015 14:34:14 +0000 (15:34 +0100)]
ip_frag: fix build with gcc 5.1

On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counter.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
9 years agonull: fix build with gcc 5.1
Bruce Richardson [Fri, 29 May 2015 14:34:16 +0000 (15:34 +0100)]
null: fix build with gcc 5.1

On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counters, or, in the case of stats reset,
by blindly zeroing the whole array, rather than just the part that is in
use.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
9 years agoi40e: fix build with gcc 5.1
Bruce Richardson [Fri, 29 May 2015 14:34:15 +0000 (15:34 +0100)]
i40e: fix build with gcc 5.1

On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counter.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
9 years agomem: fix build with gcc 5.1
Bruce Richardson [Fri, 29 May 2015 14:34:13 +0000 (15:34 +0100)]
mem: fix build with gcc 5.1

On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by ensuring the
bounds check in the loop takes account of the array size.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
9 years agoconfig: increase max queues per port
Jijiang Liu [Thu, 28 May 2015 01:36:18 +0000 (09:36 +0800)]
config: increase max queues per port

The default value of RTE_MAX_QUEUES_PER_PORT is 256, which is too small
for some configurations for i40e. There will return an error when
configured queue number is larger than 256 in rte_eth_dev_configure().

For example, in vHost sample, PF queue number: 64,
configured vmdq pool number: 63, each vmdq pool has 4 queues,
there will be required 316 queues in a port.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
9 years agofm10k: fix maximum VF number
Michael Qiu [Tue, 2 Jun 2015 02:28:48 +0000 (10:28 +0800)]
fm10k: fix maximum VF number

In DPDK, max_vfs means vf numbers created, not the max number vfs
the device supported.

Signed-off-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
9 years agoi40e: fix condition to get VMDQ infos
Jijiang Liu [Tue, 19 May 2015 05:55:39 +0000 (13:55 +0800)]
i40e: fix condition to get VMDQ infos

To get device VMDQ info when only i40e VMDQ feature is enabled.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
9 years agokni: fix missing header dependencies
Bruce Richardson [Mon, 25 May 2015 12:23:54 +0000 (13:23 +0100)]
kni: fix missing header dependencies

The file rte_kni.h depends upon a number of other headers, some of which
are missing from the #include lines. The following #includes are added:
 * rte_memory.h - for the definition of phys_addr_t
 * rte_mempool.h - for the definition of mempool struct and the mempool
   create function.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Marc Sune <marc.sune@bisdn.de>
9 years agoeal: fix missing header dependency
Bruce Richardson [Mon, 25 May 2015 12:23:53 +0000 (13:23 +0100)]
eal: fix missing header dependency

rte_pci.h depends upon stdio.h for the definition of the FILE type. Add
in #include <stdio.h> to the file to satisfy this dependency in cases
where the including C file does not already include stdio.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Marc Sune <marc.sune@bisdn.de>
9 years agoapp/testpmd: compute checksum in ICMP reply
Adrien Mazarguil [Fri, 22 May 2015 17:03:12 +0000 (19:03 +0200)]
app/testpmd: compute checksum in ICMP reply

ICMP echo replies with invalid checksums may be dropped by network nodes or
ignored by the ping utility.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
9 years agoapp/testpmd: fix MAC address in ARP reply
Adrien Mazarguil [Fri, 22 May 2015 11:07:31 +0000 (13:07 +0200)]
app/testpmd: fix MAC address in ARP reply

In the icmpecho forwarding mode, ARP replies from testpmd contain
invalid zero-filled MAC addresses. This is broken since the commit below.

Fixes: 31db4d38de72 ("net: change arp header struct declaration")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
9 years agomempool: fix pages computation to determine number of objects
Konstantin Ananyev [Wed, 27 May 2015 08:40:05 +0000 (09:40 +0100)]
mempool: fix pages computation to determine number of objects

In rte_mempool_obj_iter(), when element boundary coincides with page boundary,
even if a single page is required per object, a loop checks that the next page
is contiguous and drops the first one otherwise.
This commit checks subsequent pages only when several are required per object.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Reviewed-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
9 years agomempool: fix returned value after counting objects
Adrien Mazarguil [Mon, 25 May 2015 16:27:45 +0000 (18:27 +0200)]
mempool: fix returned value after counting objects

rte_mempool_xmem_usage()'s return type is ssize_t which has the same
architecture-dependent width as size_t but is signed.

On 64-bit architectures, returning a negative uint32_t value without casting
to ssize_t first does not work as intended, the sign bit is lost and the
returned value is garbage.

This commit fixes an assertion failure in testpmd on 64 bit architectures
when combining --no-huge and --mp-anon outside of Xen Dom0:

 PANIC in mempool_anon_create():
 line 170        assert "elt_num == mp->size" failed

Fixes: 148f963fb532 ("xen: core library changes")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
9 years agocmdline: fix small memory leak
Erik Ziegenbalg [Wed, 20 May 2015 00:04:55 +0000 (17:04 -0700)]
cmdline: fix small memory leak

A function in cmdline.c has a return that does not free buf properly.

Signed-off-by: Erik Ziegenbalg <eziegenb@brocade.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: John McNamara <john.mcnamara@intel.com>
9 years agodoc: refactor table numbers into references
John McNamara [Mon, 18 May 2015 11:34:07 +0000 (12:34 +0100)]
doc: refactor table numbers into references

This change adds automatic table references to the docs. The
table numbers in the generated Html and PDF docs are now
automatically numbered based on section.

Requires Sphinx >= 1.3.1.

This change:

* Adds a RST table:: directive to each table caption.

* Indents the tables to the required directive level.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
9 years agodoc: refactor figure numbers into references
John McNamara [Mon, 18 May 2015 11:34:06 +0000 (12:34 +0100)]
doc: refactor figure numbers into references

This change adds automatic figure references to the docs. The
figure numbers in the generated Html and PDF docs are now
automatically numbered based on section.

Requires Sphinx >= 1.3.1.

The patch makes the following changes.

* Changes image:: tag to figure:: and moves image caption
  to the figure.

* Adds captions to figures that didn't previously have any.

* Un-templates the |image-name| substitution definitions
  into explicit figure:: tags. They weren't used more
  than once anyway and Sphinx doesn't support them
  for figure.

* Adds a target to each image that didn't previously
  have one so that they can be cross-referenced.

* Renamed existing image target to match the image
  name for consistency.

* Replaces the Figures lists with automatic :numref:
  :ref: entries to generate automatic numbering
  and captions.

* Replaces "Figure" references with automatic :numref:
  references.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
9 years agodoc: add sphinx numref compatibility fallback
John McNamara [Mon, 18 May 2015 11:34:08 +0000 (12:34 +0100)]
doc: add sphinx numref compatibility fallback

This change adds some simple handling for the :numref: directive
for Sphinx versions prior to 1.3.1. This allows the Guides
documentation to be built with older versions of Sphinx and still
produce reasonable results.

The patch replaces the :numref: reference with a link to the
target (for all Sphinx doc types). It doesn't try to label
figures/tables.

Full numref support with automatic figure/table numbering and
links can be obtained by upgrading to Sphinx 1.3.1 or later.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoxenvirt: move drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:57:00 +0000 (16:57 +0100)]
xenvirt: move drivers/net/

Move xenvirt PMD to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agovmxnet3: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:59 +0000 (16:56 +0100)]
vmxnet3: move to drivers/net/

Move vmxnet3 PMD to drivers/net directory.
As part of the move, rename the "vmxnet3" subdirectory, containing the
original FreeBSD drivers, from "vmxnet3" to the more standard name
"base", to indicate it contains the base drivers used for the
implementation.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agovirtio: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:58 +0000 (16:56 +0100)]
virtio: move to drivers/net/

Move virtio PMD to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoring: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:57 +0000 (16:56 +0100)]
ring: move to drivers/net/

Move ring PMD to drivers directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agopcap: move drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:56 +0000 (16:56 +0100)]
pcap: move drivers/net/

Move pcap pmd to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agonull: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:55 +0000 (16:56 +0100)]
null: move to drivers/net/

Move null PMD to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agomlx4: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:54 +0000 (16:56 +0100)]
mlx4: move to drivers/net/

move mlx4 PMD to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoixgbe: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:53 +0000 (16:56 +0100)]
ixgbe: move to drivers/net/

move ixgbe PMD to drivers/net directory.
As part of the move, we rename the ixgbe directory, containing the
ixgbe "base driver" code, from "ixgbe" to "base".

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoi40e: move to drivers/net/
Bruce Richardson [Mon, 18 May 2015 11:05:12 +0000 (12:05 +0100)]
i40e: move to drivers/net/

Move i40e PMD to drivers/net directory.
As part of the move, rename the "i40e" directory, containing the "base
driver" code, from "i40e" to "base".

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agofm10k: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:51 +0000 (16:56 +0100)]
fm10k: move to drivers/net/

move fm10k PMD to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoenic: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:50 +0000 (16:56 +0100)]
enic: move to drivers/net/

move enic PMD to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
[Thomas: move vnic/ to base/]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoe1000: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:49 +0000 (16:56 +0100)]
e1000: move to drivers/net/

Move e1000 pmd to drivers/net directory
As part of move, rename "e1000" subdirectory, which contains the code
from the "base driver", to "base".

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agobond: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:48 +0000 (16:56 +0100)]
bond: move to drivers/net/

Move bonded ethdev pmd to drivers/net

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agoaf_packet: move to drivers/net/
Bruce Richardson [Fri, 15 May 2015 15:56:47 +0000 (16:56 +0100)]
af_packet: move to drivers/net/

move af_packet pmd to drivers/net directory

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agodrivers: create new directory
Bruce Richardson [Fri, 15 May 2015 15:56:46 +0000 (16:56 +0100)]
drivers: create new directory

Add a new top-level "drivers" directory to which all PMDs will be moved
for easier maintenance of both lib folder and drivers themselves. This
new directory is a dependency of all the apps in the app folder, so
the makefiles for each app are updated.
To the new top-level directory add a "net" subdirectory to classify
more specifically our existing PMDs as ethernet drivers

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
[Thomas: fix dependencies and merge several patches]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
9 years agomk: use relative rather than absolute pmd paths
Bruce Richardson [Fri, 15 May 2015 15:56:45 +0000 (16:56 +0100)]
mk: use relative rather than absolute pmd paths

In the Makefiles for the PMDs, the paths to the files are often
specified using the full path from $(RTE_SDK) variable. These paths can
be shortened, and make more flexible in case of a future path change by
specifying the paths using $(SRCDIR) instead.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
9 years agomempool: limit cache size
Zoltan Kiss [Mon, 18 May 2015 15:35:14 +0000 (16:35 +0100)]
mempool: limit cache size

Otherwise cache_flushthresh can be bigger than n, and
a consumer can starve others by keeping every element
either in use or in the cache.

Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
9 years agolib: fix 32-bit build with debug enabled
Olivier Matz [Mon, 18 May 2015 08:18:00 +0000 (10:18 +0200)]
lib: fix 32-bit build with debug enabled

When debug is enabled for 32 bits targets, it triggers some format
errors that are not visible in 64 bits. Fix them by using the proper
format from inttypes.h or the proper cast.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
9 years agoexamples: add dependencies for timer and vm_power_manager
Olivier Matz [Mon, 18 May 2015 08:18:01 +0000 (10:18 +0200)]
examples: add dependencies for timer and vm_power_manager

Do not compile these examples if the related dpdk option is not
enabled, as it's done for other examples. It allows to build
the examples directory with a reduced dpdk configuration.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
9 years agoexamples/netmap: fix build for x32 ABI
Olivier Matz [Mon, 18 May 2015 08:17:59 +0000 (10:17 +0200)]
examples/netmap: fix build for x32 ABI

Fix a cast issue:
examples/netmap_compat/lib/compat_netmap.c:827:10: error: cast to
  pointer from integer of different size [-Werror=int-to-pointer-cast]

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
9 years agoexamples/bond: fix build with clang
Olivier Matz [Mon, 18 May 2015 08:17:58 +0000 (10:17 +0200)]
examples/bond: fix build with clang

Fix the following compilation error:

examples/bond/main.c:717:1: error: control reaches end of
  non-void function [-Werror,-Wreturn-type]

The prompt() function does not return anything, so fix its prototype
to be void.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
9 years agoexamples/ip_pipeline: fix build with clang 3.6
Thomas Monjalon [Tue, 19 May 2015 09:34:16 +0000 (11:34 +0200)]
examples/ip_pipeline: fix build with clang 3.6

This error is detected:
    examples/ip_pipeline/cmdline.c:272:15: error: address of array
          'params->file_path' will always evaluate to 'true'
            if (!params->file_path) {
                ~~~~~~~~~^~~~~~~~~

file_path is an array in a structure so it's unneeded to check it.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
9 years agoi40e/base: fix build with clang
Helin Zhang [Mon, 18 May 2015 15:40:56 +0000 (23:40 +0800)]
i40e/base: fix build with clang

When compiling with clang, it detects that a variable used for debug
is unused (debug_mask is never set):
    lib/librte_pmd_i40e/i40e/i40e_nvm.c:708:20: error: unused variable
          'i40e_nvm_update_state_str' [-Werror,-Wunused-variable]
    STATIC const char *i40e_nvm_update_state_str[] = {
                       ^
As we are not supposed to modify the base driver (except for update
synchronization from Intel), it was ignored with GCC thanks to the
option -Wno-unused-variable but clang was forgotten.

Fixes: 6b5aaf47d571 ("i40e/base: replace NVM debug logs")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Tetsuya Mukawa <mukawa@igel.co.jp>
9 years agoi40e/base: fix build with icc
Helin Zhang [Mon, 18 May 2015 15:40:55 +0000 (23:40 +0800)]
i40e/base: fix build with icc

Below compile error can be found on ICC 13.0.0, which is a warning
treated as error. Forcedly disabling the warning can fix it.

Error log:
lib/librte_pmd_i40e/i40e/i40e_nvm.c(1022): error #188: enumerated
type mixed with another type
hw->aq.asq_last_status = old_asq_status;
                       ^

Fixes: 3b7271f3958a ("i40e/base: catch NVM write semaphore timeout and retry")

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Tetsuya Mukawa <mukawa@igel.co.jp>
9 years agocmdline: add polling mode
Pawel Wodkowski [Wed, 13 May 2015 12:00:01 +0000 (14:00 +0200)]
cmdline: add polling mode

This patch adds the ability to process console input in the same thread
as packet processing by using poll() function.

Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
9 years agocmdline: fix missing includes
Pawel Wodkowski [Wed, 13 May 2015 12:00:00 +0000 (14:00 +0200)]
cmdline: fix missing includes

When including only some of library headers some definitions
are missing and build fails.

Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
9 years agoport: add IPv6 reassembly port
Maciej Gajdzica [Thu, 30 Apr 2015 12:02:34 +0000 (14:02 +0200)]
port: add IPv6 reassembly port

Added new port type - IPv6 reassembly port.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
9 years agoport: add IPv6 fragmentation port
Maciej Gajdzica [Thu, 30 Apr 2015 12:02:33 +0000 (14:02 +0200)]
port: add IPv6 fragmentation port

Added new port type - IPv6 Fragmentation port

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
9 years agoport: remove constant default MTU
Maciej Gajdzica [Thu, 30 Apr 2015 12:02:32 +0000 (14:02 +0200)]
port: remove constant default MTU

p->mtu field should be used instead.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
9 years agoi40e/base: update adminq commands
Helin Zhang [Thu, 30 Apr 2015 15:03:39 +0000 (23:03 +0800)]
i40e/base: update adminq commands

Miscellaneous modifications are added as follows for future use.
- Admin queue command opcodes
- struct i40e_aqc_arp_proxy_data
- struct i40e_aq_set_phy_config
- struct i40e_aqc_nvm_config_data_immediate_field
- struct i40e_aqc_oem_param_change
- struct i40e_aqc_opc_oem_ocsd_initialize
- struct i40e_aqc_opc_oem_ocbb_initialize
In addition, sturcture and command length check at compile time
are added for each admin queue opcodes in order to report any
potential issues as early as possible.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: rework structures and macros
Helin Zhang [Thu, 30 Apr 2015 15:03:38 +0000 (23:03 +0800)]
i40e/base: rework structures and macros

Several structures as follows were modified for future use.
- struct i40e_link_status
- struct i40e_nvm_info
- struct i40e_veb_tc_stats
In addition, shadow RAM macros and enum were modified for future
use as well.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: future proof some sizeof calls
Helin Zhang [Thu, 30 Apr 2015 15:03:36 +0000 (23:03 +0800)]
i40e/base: future proof some sizeof calls

Make sure the sizeof() calls are taking the size of the actual
struct that we care about. By using the pointer variable, it will
always get the right struct size, even if the variable type
changes sometime in the future.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: add new interfaces
Helin Zhang [Thu, 30 Apr 2015 15:03:27 +0000 (23:03 +0800)]
i40e/base: add new interfaces

Four new interfaces are added for future use, as follows, together
with their relevant strucure and macro definitions.
- i40e_aq_read_nvm_config()
- i40e_aq_write_nvm_config()
- i40e_aq_set_lldp_mib()
- i40e_read_pba_string()
In addition, removed i40e_read_nvm_srrd() as needed.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: add more virtual channel operations
Helin Zhang [Thu, 30 Apr 2015 15:03:37 +0000 (23:03 +0800)]
i40e/base: add more virtual channel operations

Virtual channel operations of I40E_VIRTCHNL_OP_EVENT and
I40E_VIRTCHNL_OP_CONFIG_RSS are added for future use.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: add iSCSI capability
Helin Zhang [Thu, 30 Apr 2015 15:03:34 +0000 (23:03 +0800)]
i40e/base: add iSCSI capability

Add parsing and reporting of iSCSI capability for a given device
or function.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: add AOC PHY types
Helin Zhang [Thu, 30 Apr 2015 15:03:33 +0000 (23:03 +0800)]
i40e/base: add AOC PHY types

Add the 10G and 40G AOC phy types to the case statement in
get_media_type so that the correct information gets reported back
to the user.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: workaround for PHY type with firmware < 4.4
Helin Zhang [Thu, 30 Apr 2015 15:03:32 +0000 (23:03 +0800)]
i40e/base: workaround for PHY type with firmware < 4.4

The FW for SW3E is incorrectly reporting a breakout cable as PHY
type 0x3 when it should be 0x16 (I40E_PHY_TYPE_10GBASE_SFPP_CU).
As this is supposed to be fixed in the next FW version
(FW versions >= 4.4), if we get this value back from FW and the
version is < 4.4, reassign it to I40E_PHY_TYPE_10GBASE_SFPP_CU.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: find partition id in NPAR mode and disable FCoE
Helin Zhang [Thu, 30 Apr 2015 15:03:31 +0000 (23:03 +0800)]
i40e/base: find partition id in NPAR mode and disable FCoE

In NPAR mode the driver instance might be controlling the base
partition or one of the other "fake" PFs. There are some things
that can only be done by the base partition, aka partition_id 1.
This code does a bit of work to find how many partitions are there
in per port and what is the current partition_id. In addition,
FCOE is disabled by default, as it was pushed out from the firmware.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: fix hardware port number for pass-thru
Helin Zhang [Thu, 30 Apr 2015 15:03:30 +0000 (23:03 +0800)]
i40e/base: fix hardware port number for pass-thru

Getting the pf_id from the function number was a good place to
start, but when the PF was setup in pass-thru mode, the PCI
bus/device/function was virtualized and the number in the VM is
different from the number in the bare metal. This caused HW
configuration issues when the wrong pf_id was used to set up the
HMC and other structures. The PF_FUNC_RID register has the real
bus/device/function information as configured by the BIOS, so use
that for a better number.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: update LED blinking
Helin Zhang [Thu, 30 Apr 2015 15:03:28 +0000 (23:03 +0800)]
i40e/base: update LED blinking

As it is requried to blink the LEDs only, it should ignore the
activity LEDs. Also a fix is added to clear the GPIO blink field
specifically.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: remove useless wrapper for link info
Helin Zhang [Thu, 30 Apr 2015 15:03:26 +0000 (23:03 +0800)]
i40e/base: remove useless wrapper for link info

As i40e_update_link_info() is just a simple wrapper of AQ command
interface of i40e_aq_get_link_info(), the AQ command interface
should be used directly.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: clean adminq debug
Helin Zhang [Thu, 30 Apr 2015 15:03:29 +0000 (23:03 +0800)]
i40e/base: clean adminq debug

A sparse complaint in i40e_debug_aq in a funky buffer write goes
away by straightening out the code out to something less convoluted.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: enhance adminq init and ASQ send
Helin Zhang [Thu, 30 Apr 2015 15:03:25 +0000 (23:03 +0800)]
i40e/base: enhance adminq init and ASQ send

The timeout of ASQ command is enlarged from 100 ms to 250 ms to
wait longer time for the response. nvm_busy is not needed anymore.
Also nvm_release_on_done and nvmupd_state will be set during
adminq init.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: use FLAG_RD when sending driver version to firmware
Helin Zhang [Thu, 30 Apr 2015 15:03:35 +0000 (23:03 +0800)]
i40e/base: use FLAG_RD when sending driver version to firmware

When sending driver version to FW, FLAG_SI is not needed as it is
done as part of i40e_fill_default_descriptor function call, and it
should be replaced by FLAG_BUF and FLAG_RD.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: grab NVM devstarter version instead of image version
Helin Zhang [Thu, 30 Apr 2015 15:03:24 +0000 (23:03 +0800)]
i40e/base: grab NVM devstarter version instead of image version

The NVM image version has useful data but it is a per image version,
and every image can have a different one. While for the dev starter
version, all the images for release will have the same version. So
it would be better to use dev starter version number.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
9 years agoi40e/base: store firmware version
Helin Zhang [Thu, 30 Apr 2015 15:03:22 +0000 (23:03 +0800)]
i40e/base: store firmware version

Since the FW build number is available in the AQ response, save it
off for future use.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>