Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
[Thomas: isolate MSI code from other patch and don't set info.irq twice] Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
The biggest code change is to use the standard INTX management
code that exists in more recent kernels (and provide backport version).
This also fixes the pci_lock code which was broken, since it was
not protecting against config access, and was doing trylock.
Make this driver behave like other Linux drivers.
Start at MSI-X and degrade to less desireable modes
automatically if the desired type is not available.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Since only one MSI-X entry is ever defined, there is no need to
put it as an array in the driver private data structure. One msix_entry
can just be put on the stack and initialized there.
Also remove the unused backport defines related to MSI-X.
I suspect this code was just inherited from some other project and
never cleaned up.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
It is good practice to propogate the return values of failing
functions so that more information can be reported. The failed result
of probe will make it out to errno and get printed by modprobe
and will aid in diagnosis of failures.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Fix style issues reported by checkpatch.
There was a real bug in that the setup code was returning
positive value for errors which goes against convention and
might have caused a problem.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Don't put capitialization and space in name since it will show
up in /proc/interrupts. Instead use driver name to follow the
conventions used in the kernel by other drivers.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Use Linux kernel standard coding conventions for console messages.
Bare use of printk() is not desirable and is reported as a style
problem by checkpatch. Instead use pr_info() and dev_info()
to print out log messages where appropriate.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Yao-Po Wang [Fri, 11 Jul 2014 15:37:24 +0000 (23:37 +0800)]
kni: fix deadlock in netif_receive_skb
Per netif_receive_skb function description, it may only be called from
interrupt contex, but KNI is run on kthread that like as user-space
context. It may occur deadlock, if netif_receive_skb called from kthread,
so it should be repleaced by netif_rx or adding local_bh_disable/enable
around netif_receive_skb.
Signed-off-by: Yao-Po Wang <blue119@gmail.com> Acked-by: Alex Markuze <alex@weka.io>
Add support for clang by adding a toolchain folder for it with the
appropriate files.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
[Thomas: CC from command line overrides HOSTCC] Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Add a special case to the native target makefile, where we check if
-march=native shows SSE4.2 support. If it does not, then not everything may
build, so we check if the hardware supports SSE4.2, and use a corei7 target
explicitly to get the SSE4.2 support.
Then ACL library, which requires SSE4.2, can be re-enabled for FreeBSD.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
The FreeBSD nic_uio driver was missing the #defines to include the device ids
for devices using the i40e driver. This change adds in the missing defines.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Helin Zhang <helin.zhang@intel.com>
Thomas Monjalon [Wed, 2 Jul 2014 16:31:45 +0000 (18:31 +0200)]
pkg: update RPM
- no version in name
- rename dpdk-core and dpdk-core-devel to dpdk and dpdk-devel
- devel depends on main package
- split API doc in a separated package
- prefer %global over %define
- add scripts/ directory (needed for libraries based on DPDK)
- build for Nehalem CPU (ixgbe-vec and acl don't build for default CPU)
- build pcap PMD
- build xen PMD
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Yong Liu [Thu, 3 Jul 2014 08:59:36 +0000 (16:59 +0800)]
examples/qos_sched: fix flow pause after 2M packets
After enable vector pmd, qos_sched only send 32 packets every burst.
That will cause some packets not transmitted and therefore mempool
will be drain after a while.
App qos_sched now will re-send the packets which failed to send out in
previous tx function.
Signed-off-by: Yong Liu <yong.liu@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Tested-by: Waterman Cao <waterman.cao@intel.com>
Thomas Monjalon [Thu, 3 Jul 2014 14:06:04 +0000 (16:06 +0200)]
xen: fix build
There were 2 errors:
lib/librte_pmd_xenvirt/rte_xen_lib.c:409:2:
error: zero-length gnu_printf format string [-Werror=format-zero-length]
lib/librte_pmd_xenvirt/rte_xen_lib.c:424:2:
error: format '%p' expects argument of type 'void *', but argument 4 has
type 'uintptr_t' [-Werror=format=]
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Hardware specification changed recently which requires to set
or clear TX queue disable flags before actually enabling or
disabling a specific TX queue. 'QTX_HEAD' register needs to
be cleared before setting the QENA_REQ flag.
Signed-off-by: Helin Zhang <helin.zhang@intel.com> Acked-by: Jijiang Liu <jijiang.liu@intel.com> Acked-by: Jing Chen <jing.d.chen@intel.com> Tested-by: Min Cao <min.cao@intel.com>
i40e: use new function to clear hardware before PF reset
i40e_clear_hw() was provided recently in shared code (base driver)
to clear hardware, which can cover disabling all queues.
The code changes are to remove i40e_pf_disable_all_queues() and use
i40e_clear_hw() instead.
Signed-off-by: Helin Zhang <helin.zhang@intel.com> Acked-by: Jijiang Liu <jijiang.liu@intel.com> Acked-by: Jing Chen <jing.d.chen@intel.com> Tested-by: Min Cao <min.cao@intel.com>
In file included from /usr/include/stdlib.h:320,
from i686-native-linuxapp-gcc/include/rte_mempool.h:63,
from i686-native-linuxapp-gcc/include/rte_mbuf.h:61,
from lib/librte_pmd_bond/rte_eth_bond_api.c:37:
/usr/include/sys/types.h:61: error: conflicting types for dev_t
/usr/include/linux/types.h:22: note: previous declaration of dev_t was here
/usr/include/sys/types.h:66: error: conflicting types for gid_t
/usr/include/linux/types.h:52: note: previous declaration of gid_t was here
/usr/include/sys/types.h:71: error: conflicting types for mode_t
/usr/include/linux/types.h:24: note: previous declaration of mode_t was here
/usr/include/sys/types.h:76: error: conflicting types for nlink_t
/usr/include/linux/types.h:25: note: previous declaration of nlink_t was here
/usr/include/sys/types.h:81: error: conflicting types for uid_t
/usr/include/linux/types.h:51: note: previous declaration of uid_t was here
Pablo de Lara [Tue, 1 Jul 2014 16:13:57 +0000 (17:13 +0100)]
app/test: fix and separate --vdev unit test
In EAL flags unit test, vdev test was being included
(and broken) in whitelist test. It has been separated
in different test and fixed, by calling another
primary process, instead of a secondary one.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Pablo de Lara [Mon, 30 Jun 2014 10:52:55 +0000 (11:52 +0100)]
app/test: remove writes in NULL buffer from cmdline tests
Cmdline unit test calls several functions that use snprintf,
with NULL pointer as the destination buffer. This patch
eliminates these NULL pointer tests.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Olivier Matz <olivier.matz@6wind.com> Tested-by: Waterman Cao <waterman.cao@intel.com>
Thomas Monjalon [Fri, 27 Jun 2014 09:21:11 +0000 (11:21 +0200)]
app/test: fix build switches to enable cmdline tests
There were 2 typos since these commits (in 1.6.0 releases): 21a7f4e264 fix build without librte_cmdline cac6d08c8b replace --use-device option by --pci-whitelist and --vdev
In makefiles, the build options are prefixed with CONFIG_RTE_
but in .c file, it is only RTE_.
These typos were disabling cmdline unit tests and test of "--vdev eth_ring" option.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Aaro Koskinen [Tue, 17 Jun 2014 14:32:04 +0000 (17:32 +0300)]
kni: fix build with min/max Tx rate configuration of igbvf
This follows the mainline Linux kernel commit ed616689a3d95eb6c9bdbb1ef74b0f50cbdf276a (Add support to configure SR-IOV
VF minimum and maximum Tx rate) by Sucheta Chakraborty, and enables to
build the driver against 3.16.
Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Declan Doherty [Wed, 25 Jun 2014 20:07:46 +0000 (21:07 +0100)]
bond: unit tests
Including:
- code to generate packet bursts for testing rx and tx
functionality of bonded device
- virtual/stubbed out ethdev for use as slave ethdev in testing
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Declan Doherty [Wed, 25 Jun 2014 20:07:45 +0000 (21:07 +0100)]
eal: support link bonding device initialization
Updating functionality in EAL to support adding link bonding
devices via –vdev option. Link bonding devices will be
initialized after all physical devices have been probed and
initialized.
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Declan Doherty [Wed, 25 Jun 2014 20:07:44 +0000 (21:07 +0100)]
ethdev: add unique name to devices
Adding support to rte_eth_dev_data structure to support unique
name identifier for ethdevs to support adding slave ethdevs
(specifically virtual devices which have no public unique
identifier) to a link bonding device. This changes the API
rte_eth_dev_allocate() to require a const char *name when
allocating a ethdev, which also verifies that the name is
unique and hasn’t been already used by an existed allocated
rte_eth_dev. Also contains updates to virtual pmd’s to now call
the API with a name parameter.
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Declan Doherty [Wed, 25 Jun 2014 20:07:43 +0000 (21:07 +0100)]
bond: new link bonding library
Initial release with support for
Mode 0 - Round Robin
Mode 1 - Active Backup
Mode 2 - Balance -> Supports 3 transmit polices (layer 2, layer 2+3, layer 3+4)
Mode 3 - Broadcast
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Reviewed-by: Robert Sanford <rsanford2@gmail.com>
Bruce richardson [Thu, 26 Jun 2014 03:36:38 +0000 (04:36 +0100)]
tools: allow nic status query without igb_uio
Allow the nic bind/unbind script to print out its status messages even
if the igb_uio driver is not loaded. For binding and unbinding NICs, the
behaviour is the same, and the igb_uio driver still needs to be loaded.
Signed-off-by: Bruce richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Anatoly Burakov [Wed, 18 Jun 2014 16:57:58 +0000 (17:57 +0100)]
tools: unbind ports that were erroneously bound
When binding devices to a generic driver (i.e. one that doesn't have a
PCI ID table, some devices that are not bound to any other driver could
be bound even if no one has asked them to. hence, we check the list of
drivers again, and see if some of the previously-unbound devices were
erroneously bound. if such devices are found, they are unbound back.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
David Marchand [Tue, 24 Jun 2014 13:06:52 +0000 (15:06 +0200)]
app/testpmd: allow to set part of flow control parameters
We might want to only change a parameter rather than have to set all possible
parameters, so add "partial" commands.
These commands only change the specified parameter.
To avoid duplicating code all around, a unique parser is kept. This parser uses
the .data parameter to select the right behavior.
Signed-off-by: David Marchand <david.marchand@6wind.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
David Marchand [Tue, 24 Jun 2014 13:06:50 +0000 (15:06 +0200)]
app/testpmd: add missing autoneg field to set flow control
Following commit 2d95b84aaacb3d2d0bd70367c0530d15e0cbb14e, rte_eth_fc_conf
struct contains a autoneg field that must be set by callers.
Add this parameter to testpmd.
Signed-off-by: David Marchand <david.marchand@6wind.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
The function rte_snprintf serves no useful purpose. It is the
same as snprintf() for all valid inputs. Deprecate it and
replace all uses in current code.
Leave the tests for the deprecated function in place.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 20 Jun 2014 23:34:30 +0000 (00:34 +0100)]
eal: fix usage of printf-like functions
Mark the rte_log, cmdline_printf and rte_snprintf functions as
being printf-style functions. This causes compilation errors
due to mis-matched parameter types, so the parameter types are
fixed where appropriate.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Tue, 24 Jun 2014 00:23:03 +0000 (01:23 +0100)]
mk: override HOSTCC when overriding CC
When overriding the CC variable on the commandline, the HOSTCC value
was remaining at "gcc", which caused errors on Free BSD10 when using a gcc
as e.g. gcc48, without a binary just called "gcc". This change overrides
HOSTCC when CC is overridden, which means that setting CC=gcc48, will
now also set HOSTCC=gcc48, allowing the "testhost" app to compile on
BSD10.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Tue, 24 Jun 2014 00:23:04 +0000 (01:23 +0100)]
acl: disable for bsd
Using gcc 4.8 on FreeBSD 10, support for SSE4.x is not detected by
the compiler, meaning that the ACL library, which depends on SSE4.2
cannot compile. Disable this library for the native target allows
compiles to succeed on FreeBSD 10 using gcc.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
mem: fix build because of missing stdio.h for FILE
Since commit "add FILE argument to debug functions" (591a9d7985c1230),
application which includes rte_memory.h without stdio.h will be hit
compilation failure:
/path/to/include/rte_memory.h:146:30: error: unknown type name ‘FILE’
void rte_dump_physmem_layout(FILE *f);
Only some devices support the link state interrupt configuration option.
Link state control does not work in virtual drivers
(virtio, vmxnet3, igbvf, and ixgbevf). Instead of having the application
try and guess whether it will work or not provide a driver flag that
can be checked instead.
Note: if device driver doesn't support link state control, what
would happen previously is that the code would never detect link
transitions. This prevents that.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
[Thomas: rename flag] Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Fri, 20 Jun 2014 13:13:58 +0000 (15:13 +0200)]
ethdev: read link state interrupt without link update service
It is now possible to read link status updated by interrupt without
having manual link_update() service provided by the PMD.
Indeed link_update() is useless in interrupt case. So check of this
function pointer must be done in the interrupt case only.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
Anatoly Burakov [Wed, 18 Jun 2014 14:50:35 +0000 (15:50 +0100)]
examples/ip_frag: fix socket detection
Make everything NUMA-related depend on lcore sockets, not device
sockets. This is because the init_mem() function allocates all data
structures based on NUMA nodes of the lcores in the coremask. Therefore,
when no cores are on socket 0, but there are devices on socket 0, it may
lead to segmentation faults.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Anatoly Burakov [Wed, 18 Jun 2014 14:50:34 +0000 (15:50 +0100)]
ip_frag: fix order of key compare arguments
When using key compare function, it uses key length of the first
argument to determine how long should be the keys that are compared.
However, currently we are passing a key from the fragmentation table as
first argument. the problem with this is that this key is potentially
uninitialized (i.e. contains all zeroes, including key length). this
leads to a nasty bug of comparing only the key id's and not keys
themselves.
Of course, a safer way would be to do RTE_MAX between key lengths, but
since this compare is done per-packet, every cycle counts, so we just
use the key whose length is guaranteed to be correct because it comes
from an actual packet.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Robert Sanford [Mon, 23 Jun 2014 21:17:10 +0000 (17:17 -0400)]
malloc: fix unit tests
Fix typos and false assumptions in malloc unit tests.
Without enhancements to lib rte_malloc, malloc autotest fails every
second (2nd) run. With enhancements, malloc autotest fails in
function test_multi_alloc_statistics, because we compare the wrong
sets of statistics.
Signed-off-by: Robert Sanford <rsanford2@gmail.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Robert Sanford [Mon, 23 Jun 2014 21:17:09 +0000 (17:17 -0400)]
malloc: fix linear complexity
Problems with lib rte_malloc:
1. Rte_malloc searches a heap's entire free list looking for the best
fit, resulting in linear complexity.
2. Heaps store free blocks in a singly-linked list, resulting in
linear complexity when rte_free needs to remove an adjacent block.
3. The library inserts and removes free blocks with ad hoc, in-line
code, rather than using linked-list functions or macros.
4. The library wastes potential small blocks of size 64 and 128 bytes
(plus overhead of 64 bytes) as padding when reusing free blocks or
resizing allocated blocks.
This patch addresses those problems as follows:
1. Replace single free list with a handful of free lists. Each free
list contains blocks of a specified size range, for example:
list[0]: (0 , 2^8]
list[1]: (2^8 , 2^10]
list[2]: (2^10, 2^12]
list[3]: (2^12, 2^14]
list[4]: (2^14, MAX_SIZE]
When allocating a block, start at the first list that can contain
a big enough block. Search subsequent lists, if necessary.
Terminate the search as soon as we find a block that is big enough.
2. Use doubly-linked lists, so that we can remove free blocks in
constant time.
3. Use BSD LIST macros, as defined in sys/queue.h and the QUEUE(3)
man page.
4. Change code to utilize small blocks of data size 64 and 128, when
splitting larger blocks.
Signed-off-by: Robert Sanford <rsanford2@gmail.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Cunming Liang [Thu, 26 Jun 2014 06:53:34 +0000 (14:53 +0800)]
app/testpmd: tune default parameters
We usually use testpmd fwd to demonstrate IO forwarding throughput.
For best throughput, it has to assign special parameters to testpmd.
To make it easier to run, now set it as defalut value.
Such parameters are MBUF Mempool Cache and RX/TX threshold registers.
MBCACHE: 250
RX threshold registers: pthresh=8 hthresh=8 wthresh=0
TX threshold registers: pthresh=32 hthresh=0 wthresh=0
Signed-off-by: Cunming Liang <cunming.liang@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Yong Liu <yong.liu@intel.com> Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
Cunming Liang [Thu, 26 Jun 2014 06:53:33 +0000 (14:53 +0800)]
app/testpmd: increase default burst size to 32
The vpmd RX don't accept burst size less than 32.
As vPMD is set =y by default, while default testpmd burst size is 16.
Which will cause RX nothing if not assign burst size correctly.
Signed-off-by: Cunming Liang <cunming.liang@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Yong Liu <yong.liu@intel.com> Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
Cunming Liang [Thu, 26 Jun 2014 06:53:32 +0000 (14:53 +0800)]
ixgbe: prefer enabling olflags rather than not disabling
RTE_IXGBE_RX_OLFLAGS_ENABLE gives a hint whick keeping packet type
in RX ol_flags or not.
By default it is set to update ol_flags in RX mbuf header.
If unset it, will gain addtional performance, but will lose packet
type information.
Signed-off-by: Cunming Liang <cunming.liang@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Yong Liu <yong.liu@intel.com> Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
Cunming Liang [Thu, 26 Jun 2014 06:53:30 +0000 (14:53 +0800)]
ixgbe: fix build of standard Rx with vectorized Tx
The vpmd RX routine won't be used if RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC
is not defined or its condition check fail.
The case RTE_LIBRTE_IXGBE_RX_ALLOC_BULK_ALLOC=n and RTE_IXGBE_INC_VECTOR=y
may exist when choose to use standard RX and optimized TX
(ixgbe_xmit_pkts_vec/ixgbe_xmit_pkts_simple).
Signed-off-by: Cunming Liang <cunming.liang@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Yong Liu <yong.liu@intel.com> Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
Pablo de Lara [Tue, 24 Jun 2014 14:41:29 +0000 (15:41 +0100)]
ixgbe: rework fix of media type for bypass device
This was previously solved in commit 60a70d4e042350ca
(fix link status interrupt of bypass device),
but this alternative fix reverts the previous one and solves the
same issue without modifying the base driver (also named "shared code").
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
There is a warning in base driver (shared code) on 32-bits RHEL6.3/6.5:
lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c:917:
error: integer constant is too large for ‘long’ type
As we don't modify base driver, this warning must be ignored.
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Helin Zhang <helin.zhang@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Helin Zhang [Tue, 24 Jun 2014 02:02:39 +0000 (10:02 +0800)]
app/testpmd: rework display of Rx descriptors
i40e supports 16 and 32 bytes RX descriptors which can be configured.
It needs to check the driver type and the configuration to determine
if 16 or 32 bytes RX descriptors is being used, for reading and
displaying the different sizes of RX descriptors.
Helin Zhang [Tue, 24 Jun 2014 02:02:38 +0000 (10:02 +0800)]
i40e: ignore failure when updating default macvlan filter
For NVM4.2.2 or after, the firmware has the correct configurations
and load the macvlan filter as expected. It is not needed to
Update the default macvlan filter which cannot be removed at
all during initialization.
Helin Zhang [Tue, 24 Jun 2014 02:02:33 +0000 (10:02 +0800)]
i40e: fix RSS hash copy
It wrongly gets the RSS hash result from the RX descriptor which
has been modified for receiving new packet. The fix is to get the
RSS hash result from the buffer which saves the RX descriptor.
Helin Zhang [Wed, 11 Jun 2014 13:43:38 +0000 (21:43 +0800)]
kni: fix build on Oracle Linux 6.4 and RHEL 6.5
The compile errors are copied as follows. The fixes came from
Linux drivers of ixgbe-3.21.2 and igb-5.1.2 with modifications.
The idea is to use self-defined functions no matter they have
already been defined somewhere or not.
* Oracle Linux6.4
lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h:3111:
error: redefinition of 'ether_addr_equal'
include/linux/etherdevice.h:180: note: previous definition
of 'ether_addr_equal' was here
* RHEL6.5
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3597:
error: redefinition of 'mmd_eee_cap_to_ethtool_sup_t'
include/linux/mdio.h:387: note: previous definition of
'mmd_eee_cap_to_ethtool_sup_t' was here
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3625:
error: redefinition of 'mmd_eee_adv_to_ethtool_adv_t'
include/linux/mdio.h:415: note: previous definition of
'mmd_eee_adv_to_ethtool_adv_t' was here
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3653:
error: redefinition of 'ethtool_adv_to_mmd_eee_adv_t'
include/linux/mdio.h:443: note: previous definition of
'ethtool_adv_to_mmd_eee_adv_t' was here