Pablo de Lara [Mon, 17 Aug 2015 16:58:32 +0000 (17:58 +0100)]
app/test: initialize table parameters
In table_autotest, the structures containing the parameters
to create the tables were not initialized, and therefore,
some checks could fail and so the unit test.
Also, due to this initialization, one of the tests that was
checking if the table was improperly initialized has been
removed, as it is not needed anymore (duplicated)
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Maciej Gajdzica [Wed, 12 Aug 2015 12:41:27 +0000 (14:41 +0200)]
app/test: fix table alignment check
In commit: 1129992baa61d72c5 checking for offset alignment was removed.
Unit tests wasn't updated to reflect that change. This patch changes
checks with unaligned offsets to make tests pass.
Fixes: 1129992baa61 ("port: fix unaligned access to metadata") Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com> Acked-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Sergey Balabanov [Wed, 12 Aug 2015 09:11:04 +0000 (12:11 +0300)]
mempool: fix explicit cast to build C++ app
When DPDK is being compiled in C++ project using g++ then
'invalid conversion from' error appears. Added explicit
typecast on function return to get rid of the error.
Sergey Balabanov [Wed, 12 Aug 2015 09:11:04 +0000 (12:11 +0300)]
mbuf: fix explicit cast to build C++ app
When DPDK is being compiled in C++ project using g++ then
'invalid conversion from' error appears. Added explicit
typecast on function return to get rid of the error.
Thomas Monjalon [Sun, 16 Aug 2015 22:40:43 +0000 (00:40 +0200)]
doc: announce ring PMD functions removal
These functions are marked as deprecated for a long time: 61934c0956d4 ("ring: convert to use of PMD_REGISTER_DRIVER and fix linking")
As suggested in this patch, it should be removed:
http://dpdk.org/ml/archives/dev/2015-June/019253.html
Suggested-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Sun, 16 Aug 2015 22:26:09 +0000 (00:26 +0200)]
doc: announce removal of kni functions using port id
These functions are marked as deprecated for a long time: fbf895d44cfe ("kni: identify device by name")
As suggested in this patch, it should be removed:
http://dpdk.org/ml/archives/dev/2015-June/019254.html
Suggested-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Sun, 16 Aug 2015 21:55:18 +0000 (23:55 +0200)]
doc: announce legacy 7-tuple acl rule removal
These functions are marked as deprecated for a long time.
As suggested in this patch, it should be removed:
http://dpdk.org/ml/archives/dev/2015-June/019255.html
Suggested-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Wenzhuo Lu [Fri, 10 Jul 2015 02:24:27 +0000 (10:24 +0800)]
doc: announce ABI changes for new flow director modes
For x550 supports 2 new flow director modes, MAC VLAN and Cloud.
The MAC VLAN mode means the MAC and VLAN are monitored.
The Cloud mode is for VxLAN and NVGRE, and the tunnel type,
TNI/VNI, inner MAC and inner VLAN are monitored.
So, there're a few new lookup fields for these 2 new modes, like MAC,
tunnel type, TNI/VNI.
We have to change the ABI to support these new lookup fields.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
To fix the FVL's flow director issue for SCTP flow, rte_eth_fdir_filter
need to be change to support SCTP flow keys extension. Here announce
the ABI deprecation.
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Acked-by: Cunming Liang <cunming.liang@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Jingjing Wu [Tue, 11 Aug 2015 02:12:04 +0000 (10:12 +0800)]
doc: announce old flow director API removal
APIs for flow director filters has been replaced by rte_eth_dev_filter_ctrl
by previous releases. Enic, ixgbe and i40e are switched to support filter_ctrl
APIs, so the old APIs are useless, and ready to be removed now.
This patch announces the ABI change for these APIs removing.
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: Helin Zhang <helin.zhang@intel.com> Acked-by: Jijiang Liu <jijiang.liu@intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
John McNamara [Tue, 11 Aug 2015 11:57:42 +0000 (12:57 +0100)]
doc: restructure release notes
Restructured the Release Notes documentation into a more useful structure
that is easier to use and to update between releases.
The main changes are:
* Each release version has it's own section with New Features,
Resolved Issues, Known Issues and API/ABI Changes.
* Redundant sections have been removed.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Fri, 10 Jul 2015 15:45:21 +0000 (16:45 +0100)]
doc: move doxygen section to the doc guidelines
Moved and refactored the Doxygen guidelines from the Coding Style doc
to the Documentation Guidelines doc. Replaced the existing Doxygen
references with links.
Signed-off-by: John McNamara <john.mcnamara@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
John McNamara [Fri, 10 Jul 2015 15:45:19 +0000 (16:45 +0100)]
doc: reset the default sphinx literal block format
Set the default literal block format for Sphinx docs
to 'none' instead of the implicit default of 'python'.
This means that default :: blocks won't have any
highlighting applied. Explicit highlighting via
the code-block:: directive is already available and
in use in the docs.
Signed-off-by: John McNamara <john.mcnamara@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Marvin Liu [Tue, 11 Aug 2015 06:49:23 +0000 (14:49 +0800)]
examples/vm_power: fix physical core mask
Host cpu mapping structure can only support 64 cpus. When run vm_power sample
on platform with more than 64 cpus, will generate improper physical core mask.
After limited supported host cpus to 64 will fix this issue.
Fixes: e9f64db94637 ("examples/vm_power: show warning when more than 64 cores") Signed-off-by: Marvin Liu <yong.liu@intel.com>
John McNamara [Wed, 10 Jun 2015 17:08:47 +0000 (18:08 +0100)]
drivers: add warning note to base dirs
This patch adds a note to the README files in the
drivers/net/pmd/base dirs to highlight that the code should not
be modifed by the user apart from the pmd_osdep.[ch] files.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Wed, 10 Jun 2015 17:08:46 +0000 (18:08 +0100)]
doc: add a prog guide note about driver base dirs
This patch updates the "Source Organisation" section of the
Programmers Guide to add an note that the code in the
drivers/net/pmd/base directories should not be modifed
by the user apart from the pmd_osdep.[ch] files.
Also fixes some grammar and rst issues in that section.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Cunming Liang [Thu, 6 Aug 2015 02:19:10 +0000 (10:19 +0800)]
doc: add Rx interrupt in prog guide
The patch updates the env_abstraction_layer.rst part in prog_guide.
It adds the RX interrupt event declaration and revises the others in
interrupt event section.
Signed-off-by: Cunming Liang <cunming.liang@intel.com> Acked-by: Danny Zhou <danny.zhou@intel.com>
Pablo de Lara [Thu, 6 Aug 2015 11:07:41 +0000 (12:07 +0100)]
examples/vm_power: show warning when more than 64 cores
When using VM power manager app on systems with more than 64 cores,
app could not run even though user does not use cores 64 or higher.
The problem happens only in that case, in which case it will result
in an undefined behaviour.
Thefere, this patch allows the user to run the app on a system with more
than 64 cores, warning the user not to use cores higher than 64 in the VM(s).
Add new known issue where VM power manager app may not work
in a system with more than 64 cores, in release notes.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Tested-by: Marvin Liu <yong.liu@intel.com> Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Pablo de Lara [Sun, 9 Aug 2015 10:28:45 +0000 (11:28 +0100)]
examples/l3fwd: fix build with exact-match enabled
L3fwd was trying to use an inexistent function "simple_ipv6_fwd_4pkts",
instead it should be "simple_ipv6_fwd_8pkts", and "simple_ipv8_fwd_4pkts"
instead of "simple_ipv4_fwd_8pkts".
clang reports some unused functions, used only for LPM lookup:
examples/l3fwd/main.c:545:1: error: unused function 'send_packetsx4'
examples/l3fwd/main.c:1165:1: error: unused function 'rfc1812_process'
Fixes: 80fcb4d4 ("examples/l3fwd: increase lookup burst size to 8") Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
[Thomas: more #if to fix clang warnings] Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Test failed on verification if number of bytes
transmitted on each slave is not less than 90%
and greater than 110% of mean value of bytes transmitted
thru one slave. This was verified on a real system
but is difficult to achieve using virtualpmd.
That's why for unit tests only, it is sufficient to verify that with
high load (2 seconds transmission) all slaves are transmitting
so the traffic is balanced.
Fixes: 0c8396e6d786 ("bond: unit tests for mode 5") Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
If the name parameter to rte_eth_bond_create() was NULL,
there was a segmentation fault because eth_dev was also NULL.
Add error handling of mac_addrs memory allocation.
Add call to rte_eth_dev_release_port() in error handling.
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Tested-by: Marvin Liu <yong.liu@intel.com> Acked-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
On slave activation in LACP (8023AD) SOCKET_ANY_ID (which is -1)
is being casted to unsigned char and then to signed int.
The result is that socket_id has value of 255, not -1.
This results to memory allocation failure.
Fixes: 46fb43683679 ("bond: add mode 4") Signed-off-by: Sergey Balabanov <balabanovsv@ecotelecom.ru> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tetsuya Mukawa [Fri, 7 Aug 2015 09:21:26 +0000 (18:21 +0900)]
ethdev: fix illegal port access
To obtain detachable flag, pci_drv is accessed in rte_eth_dev_is_detachable().
But pci_drv is only valid if port is enabled. Not to cause illegal access,
add rte_eth_dev_is_valid_port() before accessing.
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
There is no sync between host and guest to allow removal of memzones,
and freeing them result in undefined behavior.
In the guest, we identify IVSHMEM memsegs/memzones by having
ioremap_addr != 0. In the host, nothing is done to the memzone, meaning
ioremap_addr == 0.
As a solution, mark memzones being added to IVSHMEM in the host, by
setting ioremap_addr, then return an error whenever we try to free an
IVSHMEM memzone.
Thomas Monjalon [Wed, 5 Aug 2015 08:53:00 +0000 (10:53 +0200)]
eal/ppc: fix build
Byte ordering macros were used without including the needed header.
Fixes: ce10b21bf624 ("eal/ppc: fix cpu cycle count for little endian") Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Thomas Monjalon [Tue, 4 Aug 2015 14:19:43 +0000 (16:19 +0200)]
pci: fix bsd build with gcc
GCC 4.8 raises this error:
lib/librte_eal/bsdapp/eal/eal_pci.c:453:15: error: cast discards
'__attribute__((const))' qualifier from pointer target type
.pi_data = *(u_int32_t *)buf,
^
Note: this assignment seems useless because pi_data is filled
with memset later.
Fixes: 632b2d1deeed ("eal: provide functions to access PCI config") Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Marvin Liu [Wed, 29 Jul 2015 03:22:01 +0000 (11:22 +0800)]
app/test: fix sched mempool allocation
In previous setting, mempool size and cache_size were both 32.
It does not satisfy with cache_size checking rule by now.
Cache size should be less than CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE and
mempool size / 1.5.
ixgbe: fix Rx with buffer address not word aligned
Niantic HW expects Header Buffer Address in the RXD to be word aligned.
So, if mbuf's buf_physaddr is not word aligned then
RX path will not work properly.
Right now, in ixgbe PMD we always setup Packet Buffer Address(PBA) and
Header Buffer Address (HBA) to the same value:
buf_physaddr + RTE_PKTMBUF_HEADROOM.
As ixgbe PMD doesn't support split header feature anyway,
the issue can be fixed just by always setting HBA in the RXD to zero.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tomasz Kulasek [Fri, 26 Jun 2015 08:07:34 +0000 (10:07 +0200)]
ixgbe: support RSS and flow director hashes in vector Rx
This patch adds management of PKT_RX_FDIR and PKT_RX_RSS_HASH ol_flags in
vPMD for unified packet type as well as for 16 bit field packet_type when
RTE_NEXT_ABI is not defined.
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
eal/linux: fix socket value for undetermined numa node
The patch sets zero as the default value of pci device numa_node
if the socket could not be determined.
It provides the same default value as FreeBSD which has no NUMA support,
and makes the return value of rte_eth_dev_socket_id() be consistent
with the API description.
Do some cleanup of pci scan loop.
* check errors first
* don't initialize variables where not necessary
* cuddle else (follow existing style)
* chop off conditional after return
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Thomas Monjalon [Thu, 30 Jul 2015 13:41:33 +0000 (15:41 +0200)]
pci: fix build on FreeBSD
Build log:
lib/librte_eal/bsdapp/eal/eal_pci.c:462:9: error:
incompatible integer to pointer conversion passing 'u_int32_t'
(aka 'unsigned int') to parameter of type 'void *'
It is fixed by passing the pointer of pi.pi_data to memcpy.
By the way, it seems strange that pi_data is initialized twice:
.pi_data = *(u_int32_t *)buf
memcpy(&pi.pi_data, buf, len);
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Tue, 28 Jul 2015 15:47:04 +0000 (17:47 +0200)]
bnx2x: fix part of 32-bit build
Example of errors:
error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘uint64_t
error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘unsigned int’
Only 2 files are fixed. The others errors are left as exercise to the authors.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Wang Xiao W [Fri, 31 Jul 2015 05:05:47 +0000 (13:05 +0800)]
fm10k: fix Tx queue cleaning after start error
When a Tx queue fails to start in fm10k_dev_start, all Rx queues
and Tx queues that are started should be cleaned before the
function returns an error.
Signed-off-by: Wang Xiao W <xiao.w.wang@intel.com> Acked-by: Jing Chen <jing.d.chen@intel.com>
Wenzhuo Lu [Fri, 31 Jul 2015 01:20:30 +0000 (09:20 +0800)]
igb: fix ieee1588 timestamping
Ieee1588 reads system time to set its timestamp. On 1G NICs, for example,
i350, system time is disabled by default. It means the ieee1588 timestamp
will always be 0.
This patch enables system time when ieee1588 is enabled.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
Zhe Tao [Thu, 30 Jul 2015 03:19:02 +0000 (11:19 +0800)]
lpm: fix depth small entry add
When adding a "depth small" entry, if its extended flag is not set and
its depth is smaller than the one in the tbl24, nothing should be done
otherwise will operate on the wrong memory area.
Signed-off-by: Zhe Tao <zhe.tao@intel.com> Acked-by: Cunming Liang <cunming.liang@intel.com>
Robert Sanford [Mon, 27 Jul 2015 22:46:06 +0000 (18:46 -0400)]
timer: fix race condition
Eliminate problematic race condition in rte_timer_manage() that can
lead to corruption of per-lcore pending-lists (implemented as
skip-lists). The race condition occurs when rte_timer_manage() expires
multiple timers on lcore A, while lcore B simultaneously invokes
rte_timer_reset() for one of the expiring timers (other than the first
one).
Lcore A splits its pending-list, creating a local list of expired timers
linked through their sl_next[0] pointers, and sets the first expired
timer to the RUNNING state, all during one list-lock round trip.
Lcore A then unlocks the list-lock to run the first callback, and that
is when A and B can have different interpretations of the subsequent
expired timers' true state. Lcore B sees an expired timer still in the
PENDING state, atomically changes the timer to the CONFIG state, locks
lcore A's list-lock, and reinserts the timer into A's pending-list.
The two lcores try to use the same next-pointers to maintain both lists!
Our solution is to remove expired timers from the pending-list and try
to set them all to the RUNNING state in one atomic step, i.e.,
rte_timer_manage() should perform these two actions within one
ownership of the list-lock.
After splitting the pending-list at the current point in time and trying
to set all expired timers to the RUNNING state, we must put back into
the pending-list any timers that we failed to set to the RUNNING state,
all while still holding the list-lock. It is then safe to release the
lock and run the callback functions for all expired timers that remain
on our local run-list.
Signed-off-by: Robert Sanford <rsanford@akamai.com>
Robert Sanford [Mon, 27 Jul 2015 22:46:05 +0000 (18:46 -0400)]
timer: add race condition test
Add new timer-manage race-condition test: We wrote a test to confirm
our suspicion that we could crash rte_timer_manage() under the right
circumstances. We repeatedly set several timers to expire at roughly
the same time on the master core. The master lcore just delays and runs
rte_timer_manage() about ten times per second. The slave lcores all
watch the first timer (timer-0) to see when rte_timer_manage() is
running on the master, i.e., timer-0's state is not PENDING.
At this point, each slave attempts to reset a subset of the timers to
a later expiration time. The goal here is to have the slaves moving
most of the timers to a different place in the master's pending-list,
while the master is traversing the same next-pointers (the slaves'
sl_next[0] pointers) and running callback functions. This eventually
results in the master traversing a corrupted linked-list.
In our observations, it results in an infinite loop.
Signed-off-by: Robert Sanford <rsanford@akamai.com>
Robert Sanford [Mon, 27 Jul 2015 22:46:04 +0000 (18:46 -0400)]
timer: fix synchronization in stress test
Fix app/test timer stress test 2: Sometimes this test fails and
seg-faults because the slave lcores get out of phase with the master.
The master uses a single int, 'ready', to synchronize multiple slave
lcores through multiple phases of the test.
To resolve, we construct simple synchronization primitives that use one
atomic-int state variable per slave. The master tells the slaves when to
start, and then waits for all of them to finish. Each slave waits for
the master to tell it to start, and then tells the master when it has
finished.
Signed-off-by: Robert Sanford <rsanford@akamai.com>
Chao Zhu [Mon, 3 Aug 2015 07:16:18 +0000 (15:16 +0800)]
eal/ppc: fix cpu cycle count for little endian
On IBM POWER8 PPC64 little endian architecture, the definition of tsc
union will be different. This patch fix this to enable the right output
from rte_rdtsc().
Header buffer address for header split will be filled with the
physical address for DMA, which is actually not needed at all,
as header split hasn't been supported. Hardware requires the
least bit of header address which is 'Descriptor Done' bit when
write back should be set to 0 by driver.
The issue is that if the user wants to reserve an odd number of
bytes between the mbuf header and data buffer, the physical address
to be filled in the descriptor would happen to be odd. That means
the DD bit would be set to non-zero by driver. That will result in
reporting descriptor done wrongly.
Wenzhuo Lu [Thu, 30 Jul 2015 02:39:00 +0000 (10:39 +0800)]
e1000: fix descriptor done flag with odd address
Header buffer address for header split will be filled with the physical
address for DMA, which is actually not needed at all, as header split
hasn't been supported. Hardware requires the least bit of header address
which is 'Descriptor Done' bit when write back should be set to 0 by driver.
The issue is that if the user wants to reserve an odd number of bytes between
the mbuf header and data buffer, the physical address to be filled in the
descriptor would happen to be odd. That means the DD bit would be set to
non-zero by driver. That will result in reporting descriptor done wrongly.
It looks better to have a data buffer address that is aligned to
8 bytes. This is the case when there is no mbuf private area, but
if there is one, the alignment depends on the size of this area
that is located between the mbuf structure and the data buffer.
Indeed, some drivers expects to have the buffer address aligned
to an even address, and moreover an unaligned buffer may impact
the performance when accessing to network headers.
Add a check in rte_pktmbuf_pool_create() to verify the alignment
constraint before creating the mempool. For applications that use
the alternative way (direct call to rte_mempool_create), also
add an assertion in rte_pktmbuf_init().
librte_pmd_mlx4.so needs to be linked with libibverbs otherwise, the PMD is
not able to open Mellanox devices and the following message is printed by
testpmd at startup
"librte_pmd_mlx4: cannot access device, is mlx4_ib loaded?".
Applications dependency on libibverbs are moved to be only valid in static
mode, in shared mode, applications do not depend on it anymore,
librte_pmd_mlx4.so keeps this dependency and thus is linked with libibverbs.
MLX4 cannot be supported in combined shared library because there is no clean
way of adding -libverbs to the combined library.
mk: set library dependencies in shared object file
Some .so libraries needs to be linked with external libraries. For that the
LDLIBS and EXTRA_LDFLAGS variables should be present on the link line when
those .so files are created. PMD Makefile is responsible for filling the
LDLIBS variable with the link to the external library it needs.
Compiling for dpdk x86_x32 gives the following error:
In file included from /usr/include/sys/sysctl.h:63:0,
from lib/librte_eal/common/eal_common_timer.c:39:
/usr/include/bits/sysctl.h:19:3: error: #error "sysctl system call is unsupported in x32 kernel"
# error "sysctl system call is unsupported in x32 kernel"
^
Including sysctl.h was added by mistake when merging bsd and linux EAL
timer code. It can be safely removed in this file, fixing the
compilation.
Thomas Monjalon [Thu, 30 Jul 2015 18:03:19 +0000 (20:03 +0200)]
log: use simple macro
For consistency, RTE_LOG macro should be used instead of rte_log function.
The macro can be pruned at build time, though these logs have a high level
and should not pruned.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Some drivers was not following DPDK convention and
was leaving logging always in even if LOG_LEVEL was configured
to disable debug logs.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
[Thomas: apply same fix to i40e, fm10k and bnx2x] Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Michael Qiu [Wed, 24 Jun 2015 07:56:25 +0000 (15:56 +0800)]
app/testpmd: fix error message when closing port twice
When close one port twice, testpmd will give out wrong messagse.
testpmd> port stop 0
Stopping ports...
Checking link statuses...
Port 0 Link Up - speed 0 Mbps - full-duplex
Port 1 Link Up - speed 0 Mbps - full-duplex
Done
testpmd> port close 0
Closing ports...
Done
testpmd> port close 0
Closing ports...
Port 0 is now not stopped
Done
testpmd>
Signed-off-by: Michael Qiu <michael.qiu@intel.com>
oerrors was txdgpc - hw_stats->gptc,
txdgpc is the number of packets DMA'ed by the host
and was being reset on every call to read stats so it could be < gptc.
Because we currently have no way to add txdgpc to struct hw_stats so
that we can maintain a persistent value per port oerrors has now been
set to 0. References to txdgpc is now removed as we don't use it. This
patch also removes rxnfgpc as it's not used anywhere.
Fixes: afebc86be134 ("ixgbe: refactor stats register reads") Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
For 2.1 release, in attempt to minimize number of RX routines to support,
ixgbe scatter and ixgbe LRO RX routines were merged into one
that can handle both cases.
Though I completely missed the fact, that while LRO could only be used
when HW CRC strip is enabled, scatter RX should work for both cases
(HW CRC strip on/off).
That patch restores missed functionality.
Fixes: 9d8a92628f21 ("ixgbe: remove simple scalar scattered Rx method") Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Xuelin Shi [Wed, 29 Jul 2015 06:38:20 +0000 (14:38 +0800)]
ixgbe: fix data access on big endian cpu
1. cpu use data owned by ixgbe must use rte_le_to_cpu_xx(...)
2. cpu fill data to ixgbe must use rte_cpu_to_le_xx(...)
3. checking pci status with converted constant
Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
This patch fixes the issue:
Testpmd crashed with Segmentation fault when setup tx queues on vf
Steps for reproduce:
- create one vf device from i40e driver
- bind vf device to igb_uio and start testpmd
With debugging tools, we saw the struct i40e_vf is cleared after
memcpy(&dev->data->dev_conf, dev_conf, sizeof(dev->data->dev_conf)) in
rte_eth_dev_configure, which should not happen, and the pointer to
i40e_vf isn't in the range of i40e_adapter.
The root cause is the dev_private_size in i40e virtual function driver
struct rte_i40evf_pmd was set incorrectly.
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Tested-by: Marvin Liu <yong.liu@intel.com>
Build log:
lib/librte_eal/common/eal_common_pci.c:188:4: error:
implicit declaration of function pci_config_space_set
The function rte_eal_pci_probe_one_driver, which calls
pci_config_space_set, was moved to eal_common_pci.c,
but pci_config_space_set was left in eal_pci.c with static specifier.
Fixes: 4d4ebca4 ("pci: merge probing and closing functions for linux and bsd") Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Thomas Monjalon [Tue, 28 Jul 2015 16:22:39 +0000 (18:22 +0200)]
config: disable bnx2x driver
This driver has too many issues:
- too big
- bad coding style
- no git history (dropped in 2 patches)
- no documentation
- no BSD support
- no maintainer
And the biggest one, constraining this disabling:
- many build issues
If the last 4 issues are not fixed in the next release 2.2,
the driver must be removed.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
When adding with cuckoo hash a key which was already inserted
a new slot is dequeued and then enqueued back, but the enqueue
operation was not done properly.