3094 Commits

Author SHA1 Message Date
John McNamara
4050955703 doc: remove old solved issues
Each release version will have its own Resolved Issues section.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
2015-08-11 17:28:13 +02:00
John McNamara
7b9307e957 doc: convert known issues to definition lists
The Known Issues tables have been changed to definition lists.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
2015-08-11 17:28:13 +02:00
John McNamara
f9d7ffec4a doc: move FAQ
The FAQ section have been moved to a standalone document.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
2015-08-11 17:28:13 +02:00
Thomas Monjalon
6bdae90764 doc: rename guidelines for contributors
Clarify target of guidelines by renaming the title and the directory.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2015-08-11 15:32:36 +02:00
John McNamara
426d98f756 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>
2015-08-11 12:36:34 +02:00
John McNamara
7798f17a0d doc: add documentation guidelines
Added guidelines on the purpose and structure of the DPDK
documentation, how to build it and guidelines for creating it.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2015-08-11 12:21:59 +02:00
John McNamara
2b68e48031 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>
2015-08-11 12:18:37 +02:00
Marvin Liu
67ff575ee8 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>
2015-08-11 09:43:22 +02:00
Thomas Monjalon
1b7e102356 version: 2.1.0-rc4
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
v2.1.0-rc4
2015-08-11 00:35:04 +02:00
John McNamara
eebeb3f60b 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>
2015-08-11 00:22:41 +02:00
John McNamara
0e03fe7459 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>
2015-08-11 00:19:09 +02:00
Cunming Liang
5762a5657e 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>
2015-08-10 23:31:45 +02:00
Pablo de Lara
e9f64db946 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>
2015-08-10 23:02:15 +02:00
Pablo de Lara
6f1c1e28d9 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>
2015-08-10 22:35:24 +02:00
Hyun Yoo
10cbac6ae9 examples/kni: fix crash on exit
In kni_free_kni(), p[i] should be p[port_id].

Signed-off-by: Hyun Yoo <easetheworld@gmail.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-08-10 16:25:30 +02:00
Michal Jastrzebski
b7f477920f app/test: fix bonding mode 5 Tx check
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>
2015-08-10 16:12:20 +02:00
Bernard Iremonger
c45c8bd9b9 bonding: fix device initialisation error handling
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>
2015-08-10 02:05:42 +02:00
Sergey Balabanov
85cc012ddd bonding: fix socket id for LACP slave
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>
2015-08-10 01:56:05 +02:00
Jijiang Liu
d23f7f8bcd i40e: remove unlikely prediction in Tx
The i40e_xmit_pkts() is called, which often means HW offload is used here,
so we had better remove 'unlikely' check for checksum offload.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Marvin Liu <yong.liu@intel.com>
2015-08-09 19:57:18 +02:00
Tetsuya Mukawa
5c11cefe0e 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>
2015-08-09 19:48:12 +02:00
Sergio Gonzalez Monroy
cd10c42eb5 mem: fix ivshmem freeing
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.

Fixes: ff909fe21f0 ("mem: introduce memzone freeing")

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2015-08-09 19:45:25 +02:00
Sergio Gonzalez Monroy
d1668c9762 mem: fix ivshmem in malloc heap
After the changes introduced by Dynamic Memzones, all the memsegs were
added to the malloc heap during init.

Those changes did not account for IVSHMEM memsegs which should not be
added to the malloc heap as part of available memory.

Fixes: fafcc11985a2 ("mem: rework memzone to be allocated by malloc")

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2015-08-09 19:35:50 +02:00
Thomas Monjalon
5667c8dfaa 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>
2015-08-05 14:47:53 +02:00
Thomas Monjalon
1c9d836159 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>
2015-08-04 17:08:06 +02:00
Thomas Monjalon
40cf5f884a version: 2.1.0-rc3
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
v2.1.0-rc3
2015-08-04 00:12:18 +02:00
Marvin Liu
8d085a0ab3 app/test: fix combined options --no-huge and -m
'--no-huge' option now can workable with -m option.
Unit test for eal flag should change pass criterion.

Fixes: a7de7e6beb69 ("eal: allow combining -m and --no-huge")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
2015-08-03 23:56:22 +02:00
Marvin Liu
bed17d93a6 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.

Fixes: 462321b44a80 ("mempool: limit cache size")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
[Thomas: remove unused PKT_BURST_SZ]
2015-08-03 23:44:05 +02:00
Konstantin Ananyev
33dd07136f 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>
2015-08-03 22:45:52 +02:00
Tomasz Kulasek
772180b779 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>
2015-08-03 22:45:52 +02:00
Stephen Hemminger
8ea56fadc9 tools: fix comment in bind script
The function documentation was obviously copied and not updated.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2015-08-03 19:22:42 +02:00
Nikita Kozlov
36080ff96b config: add KNI kmod option
This option permit to build librte_kni.so without building rte_kni.ko
so you can build a sdk without building kernel drivers.

Signed-off-by: Nikita Kozlov <nikita@elyzion.net>
2015-08-03 19:22:42 +02:00
Cunming Liang
81f8d2317d 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.

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
2015-08-03 19:22:42 +02:00
Stephen Hemminger
c07f42ec0b pci: cleanup scan loop
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>
2015-08-03 18:03:06 +02:00
Thomas Monjalon
3fc36d76ab 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>
2015-08-03 17:50:07 +02:00
Thomas Monjalon
87b1faa0e0 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>
2015-08-03 17:39:11 +02:00
Thomas Monjalon
a9b8635827 bnx2x: fix build with clang
Build log:
	error: unused function 'bnx2x_hilo'

No need to keep an unused function.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-08-03 17:26:29 +02:00
Thomas Monjalon
fe716d3802 bnx2x: fix build with debug enabled
Build log:
	error: unused variable ‘cid’
	error: ‘RTE_LOG_WARN’ undeclared
	error: expected ‘)’ before ‘sc’

There were unused variables defined for debug but not used in debug log because
it was ifdef'ed a the wrong condition (RTE_LIBRTE_BNX2X_DEBUG_DRIVER).

The warning were using WARN instead of WARNING.

Some debug messages had some extra parameters.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-08-03 17:25:00 +02:00
Thomas Monjalon
17f0ca796f bnx2x: fix build as shared library
Build log:
	Must Specify a librte_pmd_bnx2x.so..1 ABI version

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-08-03 17:14:53 +02:00
Wang Xiao W
55a3fb5f7c 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>
2015-08-03 16:53:07 +02:00
Wang Xiao W
aa86864085 fm10k: fix queue disabling
In Rx and Tx queue_disable functions, the index of queue should
be qnum other than i which is the iteration of time expiration.

Signed-off-by: Wang Xiao W <xiao.w.wang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
2015-08-03 16:50:21 +02:00
John McNamara
4a5d5d5422 i40e: fix ieee1588 timestamping with next ABI
Fixes issue where ieee15888 timestamping doesn't work for the i40e
pmd when RTE_ABI_NEXT is enabled.

Also refactors repeated ieee15888 flag checking and setting
code into a function.

Test report: http://dpdk.org/ml/archives/dev/2015-August/022496.html

Reported-by: Huilong Xu <huilongx.xu@intel.com>
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Tested-by: Huilong Xu <huilongx.xu@intel.com>
2015-08-03 14:48:28 +02:00
Wenzhuo Lu
cff4a985ef 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>
2015-08-03 14:42:22 +02:00
Zhe Tao
830118e7f3 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>
2015-08-03 13:50:00 +02:00
Robert Sanford
a4b7a5a45c 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>
2015-08-03 12:43:01 +02:00
Robert Sanford
6d2d5e19e0 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>
2015-08-03 12:43:01 +02:00
Robert Sanford
a91311f45b 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>
2015-08-03 12:43:01 +02:00
Chao Zhu
ce10b21bf6 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().

Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
2015-08-03 12:43:01 +02:00
John McNamara
5668a2b58e ethdev: fix ABI breakage
Fix for ABI breakage introduced in LRO addition. Moves
lro bitfield to the end of the struct/member.

Fixes: 8eecb3295aed (ixgbe: add LRO support)

Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Vlad Zolotarov <vladz@cloudius-systems.com>
2015-08-03 12:43:01 +02:00
Thomas Monjalon
a102e32660 config: remove kni options for bsd
KNI is a Linux-only kernel module.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-08-03 12:42:55 +02:00
Thomas Monjalon
1690936b14 config: enable same drivers options for linux and bsd
Enable vector ixgbe and i40e bulk alloc for bsd as it is
already done for linux.

Fixes: 304caba12643 ("config: fix bsd options")
Fixes: 0ff3324da2eb ("ixgbe: rework vector pmd following mbuf changes")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-08-03 00:38:27 +02:00