dpdk.git
10 years agodistributor: enhance and fix tag matching
Qinglai Xiao [Mon, 10 Nov 2014 14:44:02 +0000 (16:44 +0200)]
distributor: enhance and fix tag matching

With introduction of in_flight_bitmask, the whole 32 bits of tag can be
used. Further more, this patch fixed the integer overflow when finding
the matched tags.
The maximum number workers is now defined as 64, which is length of
double-word. The link between number of workers and RTE_MAX_LCORE is
now removed. Compile time check is added to ensure the
RTE_DISTRIB_MAX_WORKERS is less than or equal to size of double-word.

Signed-off-by: Qinglai Xiao <jigsaw@gmail.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agombuf: add usr alias for hash
Qinglai Xiao [Mon, 10 Nov 2014 12:52:46 +0000 (14:52 +0200)]
mbuf: add usr alias for hash

This field is added for librte_distributor. User of librte_distributor
is advocated to set value of mbuf->hash.usr before calling
rte_distributor_process. The value of usr is the tag which stands as
identifier of flow.

Signed-off-by: Qinglai Xiao <jigsaw@gmail.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agoeal: update i40e supported devices
Helin Zhang [Thu, 13 Nov 2014 08:29:52 +0000 (16:29 +0800)]
eal: update i40e supported devices

According to the changes of the i40e base driver, two device
IDs (0x1573, 0x1582) are not supported anymore, and one new
device ID (0x1586) is supported. The list of i40e device IDs
DPDK supported should be modified accordingly.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agodoc: fix file attributes of guides
Bernard Iremonger [Tue, 11 Nov 2014 13:39:38 +0000 (13:39 +0000)]
doc: fix file attributes of guides

The file attributes of the rst files have been changed to 644

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agodoc: sample application user guide
Bernard Iremonger [Tue, 11 Nov 2014 12:27:01 +0000 (12:27 +0000)]
doc: sample application user guide

The 1.7 DPDK_SampleApp_UG document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the table of contents.
The top level index file has been modified to include this guide.

This document contains some png image files. If any of thes png files are modified
they should be replaced with an svg file.

This is the fifth document from a set of 6 documents.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agoapp/test: measure cycles per packet in Rx/Tx
Cunming Liang [Wed, 12 Nov 2014 06:24:35 +0000 (14:24 +0800)]
app/test: measure cycles per packet in Rx/Tx

The unit test can be used to measure cycles per packet in different rx/tx routines.
The NIC works in loopback mode. So it doesn't require test equipment to measure throughput.
As result, the unit test shows the average cycles per packet consuming.
When doing the test, make sure the link is UP.

Usage Example:
1. Run unit test app in interactive mode
    app/test -c f -n 4 -- -i
2. Run and wait for the result
    pmd_perf_autotest

There's option to choose rx/tx pair, default is vector.
    set_rxtx_mode [vector|scalar|full|hybrid]
Note: To get acurate scalar fast, please choose 'vector' or 'hybrid' without INC_VEC=y in config

It supports to measure standalone rx or tx.
Usage Example:
Choose rx or tx standalone, default is both
    set_rxtx_anchor [rxtx|rxonly|txonly]

It also supports to measure standalone RX burst cycles.
In this way, it won't repeat re-send received packets.
Now it measures two situations, poll before/after xmit(w or w/o desc. cache conflict)
Usage Example:
Set stream control mode, by default is continuous
    set_rxtx_sc [continuous|poll_before_xmit|poll_after_xmit]

Test report: http://dpdk.org/ml/archives/dev/2014-October/007145.html

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoapp/test: allow to create packets of different sizes
Cunming Liang [Wed, 12 Nov 2014 06:24:30 +0000 (14:24 +0800)]
app/test: allow to create packets of different sizes

Add support to allow packet burst generator to create packets
in different sizes.

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
10 years agoixgbe: fix reconfiguration of Rx method
Cunming Liang [Wed, 12 Nov 2014 06:24:31 +0000 (14:24 +0800)]
ixgbe: fix reconfiguration of Rx method

The scattered_rx configuration is updated in dev_start().
For the execution sequence "stop, re-configure and then re-start",
it expects using the new configuration.
But during re-configure, the stored data may still be the old one.
The patch clean the configuration anyway in dev_stop().
So that make sure always get the best Rx routine.

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
10 years agoethdev: fix Rx/Tx return in debug mode
Cunming Liang [Wed, 12 Nov 2014 06:24:36 +0000 (14:24 +0800)]
ethdev: fix Rx/Tx return in debug mode

Per definition, rte_eth_rx_burst/rte_eth_tx_burst/rte_eth_rx_queue_count
returns the packet number.
When RTE_LIBRTE_ETHDEV_DEBUG turns on, retval of FUNC_PTR_OR_ERR_RTE was
set to -ENOTSUP. It makes confusing.
The patch always return 0 no matter no packet or there's error.

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoether: new function to format mac address
Cunming Liang [Wed, 12 Nov 2014 06:24:32 +0000 (14:24 +0800)]
ether: new function to format mac address

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
10 years agovhost: enable promiscuous and multicast
Ouyang Changchun [Sat, 8 Nov 2014 04:26:16 +0000 (12:26 +0800)]
vhost: enable promiscuous and multicast

This is to enable user space vhost receiving and forwarding broadcast
and multicast packets:
Use new option in command line to enable promisc mode;
Enable 2 bits in VMDQ RX mode: ETH_VMDQ_ACCEPT_BROADCAST and ETH_VMDQ_ACCEPT_MULTICAST.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agovirtio: support promiscuous and allmulticast
Ouyang Changchun [Sat, 8 Nov 2014 04:26:15 +0000 (12:26 +0800)]
virtio: support promiscuous and allmulticast

Add codes for supporting promiscuous and allmulticast enable and disable.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoixgbe: VMDQ Rx mode
Ouyang Changchun [Sat, 8 Nov 2014 04:26:14 +0000 (12:26 +0800)]
ixgbe: VMDQ Rx mode

Config PFVML2FLT register in ixgbe PMD to enable it receive broadcast and multicast packets;
also factorize the common logic with ixgbe_set_pool_rx_mode.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoigb: VMDQ Rx mode
Ouyang Changchun [Sat, 8 Nov 2014 04:26:13 +0000 (12:26 +0800)]
igb: VMDQ Rx mode

Config VM offload register in igb PMD to enable it receive broadcast and multicast packets.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoethdev: VMDQ Rx mode
Ouyang Changchun [Sat, 8 Nov 2014 04:26:12 +0000 (12:26 +0800)]
ethdev: VMDQ Rx mode

Add vmdq rx mode field into rx config struct, it is flag from ETH_VMDQ_ACCEPT_*.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoexamples/vmdq: fix code style
Huawei Xie [Mon, 10 Nov 2014 00:29:39 +0000 (08:29 +0800)]
examples/vmdq: fix code style

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
10 years agoexamples/vmdq: use new VMDQ API
Huawei Xie [Mon, 10 Nov 2014 00:29:38 +0000 (08:29 +0800)]
examples/vmdq: use new VMDQ API

This patch supports new VMDQ API in vmdq example.
Besides, it allows users to specify num_pools different with
max_nb_pools, thus the polling thread needn't to poll queues
of all pools.

Due to i40e implementation issue, there is no default mac for
VMDQ pool, so app needs to specify mac address for each pool
explicitly.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
10 years agokni: add build-time checks for mbuf mapping
Jia Yu [Fri, 7 Nov 2014 17:49:15 +0000 (09:49 -0800)]
kni: add build-time checks for mbuf mapping

Adding this check is to avoid breakage from future data structure changes.

Signed-off-by: Jia Yu <jyu@vmware.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agokni: fix build
Thomas Monjalon [Fri, 7 Nov 2014 14:45:34 +0000 (15:45 +0100)]
kni: fix build

Since commit 08b563ffb19 ("mbuf: replace data pointer by an offset"),
KNI vhost compilation (CONFIG_RTE_KNI_VHOST=y) was broken.

rte_pktmbuf_mtod() is not used in the kernel context but is replaced
by a simple addition of the base address and the offset.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
10 years agoapp,examples: remove references to drivers config
Thomas Monjalon [Fri, 7 Nov 2014 11:48:59 +0000 (12:48 +0100)]
app,examples: remove references to drivers config

These references to drivers break the layering isolation between
application and drivers.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
10 years agodistributor: add comments
Bruce Richardson [Thu, 6 Nov 2014 13:55:32 +0000 (13:55 +0000)]
distributor: add comments

Add in some additional comments around more complex areas of the code
so as to make the code easier to read and understand.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agoeal: fix C++ compilation after headers rework
David Marchand [Fri, 7 Nov 2014 06:26:20 +0000 (07:26 +0100)]
eal: fix C++ compilation after headers rework

Following the big headers rework, all C++ stuff has moved to arch-specific
headers. The generic headers should not contain this so that this is done only
once.
There was a remaining #ifdef __cplusplus in "eal: split CPU cycle operation to
architecture specific" (fa4001c30ee9).

Reported-by: Keunhong Lee <dlrmsghd@gmail.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoi40e: fix build with icc
Thomas Monjalon [Thu, 6 Nov 2014 22:56:59 +0000 (23:56 +0100)]
i40e: fix build with icc

Since commit d798a94 ("mac vlan filter"),
ICC reports this error:
lib/librte_pmd_i40e/i40e_ethdev.c(1763): error #188:
enumerated type mixed with another type

Indeed, RTE_ETH_FILTER_NONE comes from enum rte_filter_type but
enum rte_filter_op is expected.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoi40evf: support configurable crc stripping
Helin Zhang [Thu, 6 Nov 2014 12:53:50 +0000 (20:53 +0800)]
i40evf: support configurable crc stripping

Configurable CRC stripping needs to be supported in VF,
and the configuration should be finally set in relevant
RX queue context with PF host support.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoi40e: support configurable crc stripping
Helin Zhang [Thu, 6 Nov 2014 12:53:49 +0000 (20:53 +0800)]
i40e: support configurable crc stripping

Support of configurable crc stripping in context of
VF RX queues.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoi40e: fix code style
Helin Zhang [Thu, 6 Nov 2014 12:53:48 +0000 (20:53 +0800)]
i40e: fix code style

Rename some local variables to express more accurately
and briefly. Fix several code style issues reported by
checkpatch.pl. Line warpping for some source lines which
has more than 80 characters, and merge lines together for
those source lines which does not need any line wrapping
actually. Add macros for numeric or calculating memory
sizes.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoi40evf: rework mailbox version check
Helin Zhang [Thu, 6 Nov 2014 12:53:47 +0000 (20:53 +0800)]
i40evf: rework mailbox version check

API version number is straightfoward enough for checking
the PF host, and no need to use 'host_is_dpdk'.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoconfig: remove useless option for i40e crc stripping
Helin Zhang [Thu, 6 Nov 2014 12:53:46 +0000 (20:53 +0800)]
config: remove useless option for i40e crc stripping

Remove 'CONFIG_RTE_LIBRTE_I40E_PF_DISABLE_STRIP_CRC'
from config files, as nowhere uses it.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agovhost: fix mem path check
Ouyang Changchun [Mon, 3 Nov 2014 08:11:53 +0000 (16:11 +0800)]
vhost: fix mem path check

Commit aec8283d47 fixes the compilation issue, but it leads to
one runtime issue: early exit wrongly. In some case, 'path' is NULL, but
'resolved_path' has effective path, it should continue going ahead rather
than exit.
This is due to that qemu unlink the file after it maps the huge page file.
In this special case, it is ok to check the resolved path
when path is NULL if errno indicates "No such file or directory".

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Huawei Xie <huawei.xie@intel.com>
10 years agovhost: fix code style
Huawei Xie [Wed, 5 Nov 2014 23:31:41 +0000 (07:31 +0800)]
vhost: fix code style

Fix alignment issues, lengthy lines, misordered type and other coding style issues.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
10 years agodoc: testpmd application user guide
Bernard Iremonger [Tue, 4 Nov 2014 13:56:59 +0000 (13:56 +0000)]
doc: testpmd application user guide

The 1.7 DPDK_TestPMD_App_UG  document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the table of contents.
The top level index file has been modified to include this guide.

This is the fourth document from a set of 6 documents.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agoexamples/vhost: check offset with vlan
Ouyang Changchun [Wed, 5 Nov 2014 07:10:35 +0000 (15:10 +0800)]
examples/vhost: check offset with vlan

This patch checks the packet length offset value, and checks if the
extra bytes inside buffer cross page boundary.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoexamples/vhost: rework duplicated code
Ouyang Changchun [Wed, 5 Nov 2014 07:10:34 +0000 (15:10 +0800)]
examples/vhost: rework duplicated code

Extract a function to replace duplicated codes in one copy and zero copy TX function.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoexamples/vhost: fix packet length
Ouyang Changchun [Wed, 5 Nov 2014 07:10:33 +0000 (15:10 +0800)]
examples/vhost: fix packet length

As HW vlan strip will reduce the packet length by minus length of vlan tag,
so it need restore the packet length by plus it.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Huawei Xie <huawei.xie@intel.com>
10 years agoeal: factorize x86 headers
David Marchand [Tue, 28 Oct 2014 12:50:57 +0000 (13:50 +0100)]
eal: factorize x86 headers

No need to keep the same code duplicated for 32 and 64bits x86.

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Chao Zhu <bjzhuc@cn.ibm.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: install all arch headers
David Marchand [Tue, 28 Oct 2014 12:50:56 +0000 (13:50 +0100)]
eal: install all arch headers

Architecture can have their own specific headers, just install all headers from
arch directory.

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Chao Zhu <bjzhuc@cn.ibm.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split CPU flags operations to architecture specific
Chao Zhu [Tue, 28 Oct 2014 12:50:55 +0000 (13:50 +0100)]
eal: split CPU flags operations to architecture specific

This patch splits CPU flags related operations from DPDK and push them
to architecture specific arch directories, so that other processor
architecture can implement its own CPU flag functions to support DPDK.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split memcpy operation to architecture specific
Chao Zhu [Tue, 28 Oct 2014 12:50:54 +0000 (13:50 +0100)]
eal: split memcpy operation to architecture specific

This patch splits the SSE based memory copy function from DPDK and push
them to architecture specific arch directories. Other processor
architecture can implement its own vector based memory copy functions.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split spinlock operations to architecture specific
Chao Zhu [Tue, 28 Oct 2014 12:50:53 +0000 (13:50 +0100)]
eal: split spinlock operations to architecture specific

This patch splits the spinlock operations from DPDK and push them to
architecture specific arch directories, so that other processor
architecture to support DPDK can be easily adopted.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split prefetch operations to architecture specific
Chao Zhu [Tue, 28 Oct 2014 12:50:52 +0000 (13:50 +0100)]
eal: split prefetch operations to architecture specific

This patch splits the prefetch operations from DPDK and push them to
architecture specific arch directories, so that other processor
architecture to support DPDK can implement their own functions.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split CPU cycle operation to architecture specific
Chao Zhu [Tue, 28 Oct 2014 12:50:51 +0000 (13:50 +0100)]
eal: split CPU cycle operation to architecture specific

This patch splits the CPU TSC read operations from DPDK and push them to
architecture specific arch directories, so that other processors that
don't have tsc register can implement its own functions.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split byte order operations to architecture specific
Chao Zhu [Tue, 28 Oct 2014 12:50:50 +0000 (13:50 +0100)]
eal: split byte order operations to architecture specific

This patch splits the byte order operations from DPDK and push them to
architecture specific arch directories, so that other processor
architecture to support DPDK can be easily adopted.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal: split atomic operations to architecture specific
David Marchand [Tue, 28 Oct 2014 12:50:48 +0000 (13:50 +0100)]
eal: split atomic operations to architecture specific

This patch first adds architecture specific directories to eal.
Then split the atomic operations to architecture specific and generic files.
Architecture specific files are put into the corresponding architecture
directory and common header are put into generic directory.

Update documentation generation with new generic/ directory.

Signed-off-by: Chao Zhu <bjzhuc@cn.ibm.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoeal/linux: fix inaccurate numa node error comment
Matthew Hall [Thu, 30 Oct 2014 03:40:08 +0000 (03:40 +0000)]
eal/linux: fix inaccurate numa node error comment

Signed-off-by: Matthew Hall <mhall@mhcomputing.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agoeal/bsd: fix pci mapping in secondary process
Pablo de Lara [Thu, 30 Oct 2014 12:23:39 +0000 (12:23 +0000)]
eal/bsd: fix pci mapping in secondary process

On FreeBSD, when initializing a secondary process,
EAL was complaining if there were ports not bound
to nic_uio module, exiting the application, which
should not happen, as this is expected behaviour,
and not an error

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agomk: fix bsd module build
Sergio Gonzalez Monroy [Thu, 30 Oct 2014 16:58:54 +0000 (16:58 +0000)]
mk: fix bsd module build

When building shared libs (for both GCC and CLANG targets), -fPIC flag
has been added to CFLAGS and leaks to BSD module build system causing
the following error:

fatal error: error in backend: Cannot select: 0x802ad8010: i64 = X86ISD::WrapperRIP 0x802ade110
      [ID=13]
  0x802ade110: i64 = TargetGlobalAddress<i8** @__stack_chk_guard> 0 [TF=5] [ID=10]

Reset CFLAGS to MODULE_CFLAGS before building BSD module.

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
10 years agoixgbe: fix build with icc
Bruce Richardson [Mon, 3 Nov 2014 17:01:08 +0000 (17:01 +0000)]
ixgbe: fix build with icc

When using Intel C++ compiler(icc) 14.0.1.106 or the older icc 13.x
version, the mbuf initializer variable was not getting configured
correctly, as the mb_def variable was not set correctly. This is due
to an issue with icc (DPD200249565 which already been fixed in
icc 14.0.2 and newer compiler release) where it incorrectly calculates
the field offsets with initializers when zero-sized fields
are used in a structure.
To work around this, the code in ixgbe_rxq_vec_setup does not setup the
fields using an initializer, but instead assigns the values individually
in code.
NOTE: There is no performance impact to this change as the queue
setup functions are not data-plane APIs, but are only used at app
initialization.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoi40e: fix build with debug enabled
Choonho Son [Wed, 5 Nov 2014 15:15:47 +0000 (00:15 +0900)]
i40e: fix build with debug enabled

The commit 15dbb63ef9e9 ("VXLAN packet identification") didn't compile,
if CONFIG_RTE_LIBRTE_I40E_DEBUG_DRIVER is enabled.

Signed-off-by: Choonho Son <choonho.son@gmail.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
10 years agoapp/test: fix pci registration
Pablo de Lara [Sat, 1 Nov 2014 20:04:02 +0000 (20:04 +0000)]
app/test: fix pci registration

Since commit a155d430119 ("support link bonding device initialization"),
rte_eal_pci_probe() is called in rte_eal_init().
pci_autotest called it to bind devices to the test_driver and test_driver2.
Therefore, the function is called twice and devices already allocated
will cause the test fail.

This patch solves that issue, unregistering all previous drivers before
calling rte_eal_pci_probe() for the first time, so DPDK does not try
to allocate data for the devices, binding them to their previous
drivers again.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
10 years agoapp/test: fix memory needs since tailq rework
Anatoly Burakov [Wed, 5 Nov 2014 12:11:17 +0000 (12:11 +0000)]
app/test: fix memory needs since tailq rework

As a result of moving tailq's into local memory, some tailq data
is now reserved in rte_malloc heaps (because it needs to be
shared across DPDK processes). The first thing DPDK initializes
is a log mempool, and since it creates a tailq, it reserves
space in rte_malloc heap before allocating the mempool itself.
By default, rte_malloc allocates way more space than is necessary,
so under some conditions (namely, overall memory available is low)
this results in malloc heap eating up so much memory that log
mempool is not able to allocate its memzone.

This patch fixes the unit tests to account for that change.

Reported-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tested-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoi40e: full VMDQ pools support
Chen Jing D(Mark) [Tue, 4 Nov 2014 10:01:29 +0000 (18:01 +0800)]
i40e: full VMDQ pools support

1. Function i40e_vsi_* name change to i40e_dev_* since PF can contains
   more than 1 VSI after VMDQ enabled.
2. i40e_dev_rx/tx_queue_setup change to have capability of setup
   queues that belongs to VMDQ pools.
3. Add queue mapping. This will do a convertion between queue index
   that application used and real NIC queue index.
3. i40e_dev_start/stop change to have capability switching VMDQ queues.
4. i40e_pf_config_rss change to calculate actual main VSI queue numbers
   after VMDQ pools introduced.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoi40e: enhance mac address operations
Chen Jing D(Mark) [Tue, 4 Nov 2014 10:01:28 +0000 (18:01 +0800)]
i40e: enhance mac address operations

Change i40e_macaddr_add and i40e_macaddr_remove functions to support
multiple macaddr add/delete. In the meanwhile, support macaddr ops
on different pools.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoi40e: add VMDQ support
Chen Jing D(Mark) [Tue, 4 Nov 2014 10:01:27 +0000 (18:01 +0800)]
i40e: add VMDQ support

The change includes several parts:
1. Get maximum number of VMDQ pools supported in dev_init.
2. Fill VMDQ info in i40e_dev_info_get.
3. Setup VMDQ pools in i40e_dev_configure.
4. i40e_vsi_setup change to support creation of VMDQ VSI.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoixgbe: new VMDQ argument
Chen Jing D(Mark) [Tue, 4 Nov 2014 10:01:26 +0000 (18:01 +0800)]
ixgbe: new VMDQ argument

Assign new VMDQ arguments with correct values.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoigb: new VMDQ argument
Chen Jing D(Mark) [Tue, 4 Nov 2014 10:01:25 +0000 (18:01 +0800)]
igb: new VMDQ argument

Assign new VMDQ arguments with correct values.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoethdev: VMDQ enhancements
Chen Jing D(Mark) [Tue, 4 Nov 2014 10:01:24 +0000 (18:01 +0800)]
ethdev: VMDQ enhancements

The change includes several parts:
1. Clear pool bitmap when trying to remove specific MAC.
2. Define RSS, DCB and VMDQ flags to combine rx_mq_mode.
3. Use 'struct' to replace 'union', which to expand the rx_adv_conf
   arguments to better support RSS, DCB and VMDQ.
4. Fix bug in rte_eth_dev_config_restore function, which will restore
   all MAC address to default pool.
5. Define additional 3 arguments for better VMDQ support.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoi40e: fix PF interrupt handler
Helin Zhang [Tue, 4 Nov 2014 08:08:14 +0000 (16:08 +0800)]
i40e: fix PF interrupt handler

'PFINT_ICR0_ENA' shouldn't be cleared in user space ISR,
otherwise adminq interrupts might be missed during
co-working with VF initialization.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
10 years agodoc: release notes 1.7
Bernard Iremonger [Thu, 30 Oct 2014 10:56:39 +0000 (10:56 +0000)]
doc: release notes 1.7

The 1.7 DPDK_Release_Notes document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the table of contents.
The top level index file has been modified to include this document.

This is the third document from a set of 6 documents

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agodoc: fix a typo
Jincheng Miao [Fri, 31 Oct 2014 14:58:26 +0000 (14:58 +0000)]
doc: fix a typo

Signed-off-by: Jincheng Miao <jmiao@redhat.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agoi40e: handle link status change interrupt
Helin Zhang [Wed, 17 Sep 2014 07:54:21 +0000 (15:54 +0800)]
i40e: handle link status change interrupt

As driver flag of 'RTE_PCI_DRV_INTR_LSC' was introduced
recently, it must be added in i40e. One second waiting
is needed for link up event, to wait the hardware into a
stable state, so the interrupt could be processed in two
parts. In addition, it should finally call the callback
function registered by application.

Test: http://dpdk.org/ml/archives/dev/2014-September/006091.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Reviewed-by: Jing Chen <jing.d.chen@intel.com>
Reviewed-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
10 years agoi40e: rework PF interrupt cause processing
Helin Zhang [Wed, 17 Sep 2014 07:54:20 +0000 (15:54 +0800)]
i40e: rework PF interrupt cause processing

To get the code cleaner and more straightforward, a macro
is defined for all interrupt cause enable flags. Two more
causes are enabled, and all the interrupt causes for
reporting any errors are compiled conditionally, as they
are for debug only.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Reviewed-by: Jing Chen <jing.d.chen@intel.com>
Reviewed-by: Jijiang Liu <jijiang.liu@intel.com>
10 years agoi40e: rename variables in interrupt handler
Helin Zhang [Wed, 17 Sep 2014 07:54:19 +0000 (15:54 +0800)]
i40e: rename variables in interrupt handler

To be more straightforward, two local variables in interrupt
handler are renamed.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Reviewed-by: Jing Chen <jing.d.chen@intel.com>
Reviewed-by: Jijiang Liu <jijiang.liu@intel.com>
10 years agoi40e: fix mac vlan filter
Jijiang Liu [Fri, 31 Oct 2014 03:28:12 +0000 (11:28 +0800)]
i40e: fix mac vlan filter

This patch fixes two issues:
- one is to fix the log issues
- the other is to set filter type when updating the default MAC filter.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
10 years agoethdev: fix mac vlan filter type
Jijiang Liu [Fri, 31 Oct 2014 02:26:22 +0000 (10:26 +0800)]
ethdev: fix mac vlan filter type

Use the enum type for filter type.
It fixes the compilation error under ICC compiler.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoapp/testpmd: mac vlan filter for VF
Jijiang Liu [Fri, 24 Oct 2014 07:58:45 +0000 (15:58 +0800)]
app/testpmd: mac vlan filter for VF

Add a test command in testpmd to test VF MAC filter feature.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoi40evf: mac vlan filter
Jijiang Liu [Fri, 24 Oct 2014 07:58:44 +0000 (15:58 +0800)]
i40evf: mac vlan filter

It mainly add i40e_vf_mac_filter_set() function to support perfect match
and hash match of MAC address and VLAN ID for VF.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoi40e: mac vlan filter
Jijiang Liu [Fri, 24 Oct 2014 07:58:43 +0000 (15:58 +0800)]
i40e: mac vlan filter

This patch mainly optimizes the i40e_add_macvlan_filters() and
the i40e_remove_macvlan_filters() functions in order that
we are able to provide filter type configuration.
And another relevant MAC filter codes are changed based on new data structures.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoethdev: mac vlan filter
Jijiang Liu [Fri, 24 Oct 2014 07:58:42 +0000 (15:58 +0800)]
ethdev: mac vlan filter

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoexamples/vhost: allow mergeable packets with vector ixgbe
Ouyang Changchun [Thu, 30 Oct 2014 02:11:16 +0000 (10:11 +0800)]
examples/vhost: allow mergeable packets with vector ixgbe

Since the commit 33e79bed3edc2bcf59 has fixed the issue in vector PMD,
and then it can receive jumbo frame by scatter-gather mode, so remove this check.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Huawei Xie <huawei.xie@intel.com>
10 years agokni: fix build on Ubuntu-hybrids
Alexander Guy [Thu, 23 Oct 2014 23:39:32 +0000 (16:39 -0700)]
kni: fix build on Ubuntu-hybrids

In the case where a userspace reports itself as Ubuntu, but the
kernel isn't providing the expected version signature interface,
turn off Ubuntu specializations.

This situation happens often enough in development environments,
and with multi-distribution build servers (e.g. chroot, containers).

Signed-off-by: Alexander Guy <alexander@andern.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoip_frag: disable ip fragmentation if mbuf refcnt is disabled
Pablo de Lara [Wed, 22 Oct 2014 11:17:01 +0000 (12:17 +0100)]
ip_frag: disable ip fragmentation if mbuf refcnt is disabled

rte_ipv4_fragment_packet() and rte_ipv6_fragment packet()
call rte_pktmbuf_attach() to attach the segment of the original
packet to the segment of the new fragmented one. Such function
is not declared if RTE_MBUF_REFCNT is disabled, as it needs to
call rte_mbuf_refcnt_update, not declared either.

Therefore, the ipv4/v6 fragmentation libraries are disabled
in that situation.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
10 years agoixgbe: always perform vector Rx setup if vpmd enabled
Bruce Richardson [Wed, 22 Oct 2014 10:55:45 +0000 (11:55 +0100)]
ixgbe: always perform vector Rx setup if vpmd enabled

If the vector pmd option is turned on in the compile time config file,
then always call the vector rxq setup, since we can now use the vector
PMD for receiving jumbo frames that need chained mbufs, a.k.a scattered
packets. Up till now, this function was not being called when receiving
scattered packets, potentially leading to problems with mbufs not being
properly initialized.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Changchun Ouyang <Changchun.ouyang@intel.com>
10 years agoixgbe: remove static qualifier for thread safety
Bruce Richardson [Wed, 22 Oct 2014 10:55:44 +0000 (11:55 +0100)]
ixgbe: remove static qualifier for thread safety

Remove the "static" prefix to the template mbuf variable in
ixgbe_rxq_vec_setup function. This will then allow different
threads to initialize different RX queues at the same time,
without one overwriting the other's data.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Changchun Ouyang <Changchun.ouyang@intel.com>
10 years agovhost: fix build without unused result
Ouyang Changchun [Wed, 29 Oct 2014 06:39:38 +0000 (14:39 +0800)]
vhost: fix build without unused result

It fixes this compilation complain: "error: ignoring return value of 'realpath',
declared with attribute warn_unused_result [-Werror=unused-result]"

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Tested-by: Jingguo Fu <jingguox.fu@intel.com>
10 years agoi40e/base: remove early hardware definitions
Helin Zhang [Wed, 29 Oct 2014 07:09:30 +0000 (15:09 +0800)]
i40e/base: remove early hardware definitions

As i40e_register_x710_int.h is defined for early hardware
only, it should be deleted.
For the register which is still required, just define it in
code directly as workaround.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoi40e: fix configuration of Rx interrupt
Helin Zhang [Wed, 29 Oct 2014 03:42:48 +0000 (11:42 +0800)]
i40e: fix configuration of Rx interrupt

Inside NIC RX interrupt is needed for single RX descriptor
write back. The fix is to correct the wrong configuration
of register 'I40E_QINT_RQCTL'.
Note that interrupt will be inside NIC only, that means it
will never be reported outside NIC hardware.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
10 years agoi40e: code style fixes
Helin Zhang [Wed, 29 Oct 2014 03:42:47 +0000 (11:42 +0800)]
i40e: code style fixes

Add several code style fixes.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
10 years agodoc: getting started guide for freebsd
Bernard Iremonger [Thu, 23 Oct 2014 14:15:28 +0000 (14:15 +0000)]
doc: getting started guide for freebsd

The 1.7 DPDK_FreeBSD_GSG document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the table of contents.
The top level index file has been modified to include this guide.

This is the second document from a set of 6 documents.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agofix VXLAN acronym
Thomas Monjalon [Mon, 27 Oct 2014 15:11:04 +0000 (16:11 +0100)]
fix VXLAN acronym

Each letter must be uppercased:
Virtual eXtensible Local Area Network (VXLAN)

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoapp/testpmd: VXLAN Tx checksum offload
Jijiang Liu [Thu, 23 Oct 2014 13:19:00 +0000 (21:19 +0800)]
app/testpmd: VXLAN Tx checksum offload

Add test cases in testpmd to test VxLAN Tx checksum offload, which includes
 - IPv4 and IPv6 packet
 - outer L3, inner L3 and L4 checksum offload for Tx side.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoi40e: VXLAN Tx checksum offload
Jijiang Liu [Thu, 23 Oct 2014 13:18:59 +0000 (21:18 +0800)]
i40e: VXLAN Tx checksum offload

Support VxLAN Tx checksum offload, which include
  - outer L3(IP) checksum offload
  - inner L3(IP) checksum offload
  - inner L4(UDP, TCP and SCTP) checksum offload

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoapp/testpmd: VXLAN filter
Jijiang Liu [Thu, 23 Oct 2014 13:18:58 +0000 (21:18 +0800)]
app/testpmd: VXLAN filter

Add the "tunnel_filter" command in testpmd to test the API of VxLAN
packet filter.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoi40e: VXLAN filter
Jijiang Liu [Thu, 23 Oct 2014 13:18:57 +0000 (21:18 +0800)]
i40e: VXLAN filter

The filter types supported are listed below for VXLAN:
   1. Inner MAC and Inner VLAN ID.
   2. Inner MAC address, inner VLAN ID and tenant ID.
   3. Inner MAC and tenant ID.
   4. Inner MAC address.
   5. Outer MAC address, tenant ID and inner MAC address.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoethdev: tunnel filter
Jijiang Liu [Thu, 23 Oct 2014 13:18:56 +0000 (21:18 +0800)]
ethdev: tunnel filter

Add definitions of the data structures of tunneling packet filter.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoapp/testpmd: VXLAN packet identification
Jijiang Liu [Thu, 23 Oct 2014 13:18:55 +0000 (21:18 +0800)]
app/testpmd: VXLAN packet identification

Add two commands to test VXLAN packet identification.
The test steps are as follows:
 1> use commands to add/delete VxLAN UDP port.
 2> use rxonly mode to receive VxLAN packet.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoi40e: VXLAN packet identification
Jijiang Liu [Thu, 23 Oct 2014 13:18:54 +0000 (21:18 +0800)]
i40e: VXLAN packet identification

Implement the configuration API of VXLAN destination UDP port,
and add new Rx offload flags for supporting VXLAN packet offload.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
10 years agoethdev: UDP tunnels
Jijiang Liu [Thu, 23 Oct 2014 13:18:53 +0000 (21:18 +0800)]
ethdev: UDP tunnels

Add two functions to support UDP tunneling port configuration.

There are "some" destination UDP port numbers that have unique meaning.
In terms of VxLAN, "IANA has assigned the value 4789 for the VXLAN UDP port,
and this value SHOULD be used by default as the destination UDP port.
Some early implementations of VXLAN have used other values for the destination
port. To enable interoperability with these implementations, the destination
port SHOULD be configurable."

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoether: add VXLAN header
Jijiang Liu [Thu, 23 Oct 2014 13:18:52 +0000 (21:18 +0800)]
ether: add VXLAN header

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agombuf: add fields for tunnels
Jijiang Liu [Thu, 23 Oct 2014 13:18:51 +0000 (21:18 +0800)]
mbuf: add fields for tunnels

Replace the "reserved2" field with the "packet_type" field
and add the "inner_l2_l3_len" field in the rte_mbuf structure.
The "packet_type" field is used to indicate ordinary packet format and also
tunneling packet format such as IP in IP, IP in GRE, MAC in GRE and MAC in UDP.
The "inner_l2_len" and the "inner_l3_len" fields are added
in the second cache line, they use 2 bytes for TX offloading of tunnels.

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agodoc: getting started guide for linux
Bernard Iremonger [Thu, 16 Oct 2014 13:27:42 +0000 (13:27 +0000)]
doc: getting started guide for linux

The 1.7 DPDK_Linux_GSG document in MSWord has been converted to rst format for
use with Sphinx. There is an rst file for each chapter and an index.rst file
which contains the table of contents.
This is the first document from a set of documents.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
10 years agoexamples/vhost: add new example based on lib
Huawei Xie [Mon, 20 Oct 2014 04:38:26 +0000 (12:38 +0800)]
examples/vhost: add new example based on lib

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
[Thomas: clean makefile and add in examples/Makefile]

10 years agoexamples/vhost: minor fixes
Huawei Xie [Mon, 20 Oct 2014 04:38:23 +0000 (12:38 +0800)]
examples/vhost: minor fixes

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: add branch hints
Huawei Xie [Mon, 20 Oct 2014 04:38:24 +0000 (12:38 +0800)]
examples/vhost: add branch hints

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: disable guest notifications
Huawei Xie [Thu, 23 Oct 2014 09:24:26 +0000 (11:24 +0200)]
examples/vhost: disable guest notifications

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: mergeable buffer option
Huawei Xie [Thu, 23 Oct 2014 09:21:13 +0000 (11:21 +0200)]
examples/vhost: mergeable buffer option

Mergeable feature doesn't work with latest mbuf change.
Disabling IXGBE_INC_VECTOR is a temporary workaround.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: adapt Tx routing to lib
Huawei Xie [Mon, 20 Oct 2014 04:38:19 +0000 (12:38 +0800)]
examples/vhost: adapt Tx routing to lib

The packet passed to virtio_tx_route has been allocated
mbuf, so there is no need to allocate mbuf for it.
Use vlan offload to transmit vlan tagged packet.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
[Thomas: remove useless mbuf pool]

10 years agoexamples/vhost: use burst enqueue and dequeue from lib
Huawei Xie [Mon, 20 Oct 2014 04:38:18 +0000 (12:38 +0800)]
examples/vhost: use burst enqueue and dequeue from lib

In switch_worker and virtio_tx_local, rte_vhost_enqueue_burst is called to
push host packets to guest VM.
Before enqueue packets to guest VM, vhost example uses configure-able retry logic
to wait for enough vring entries.
In switch_worker, rte_vhost_dequeue_burst is called to get packets from guest VM,
then virtio device will be bound to a queue in VMDQ for the first transmitted
packet.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: register with lib
Huawei Xie [Thu, 23 Oct 2014 09:24:56 +0000 (11:24 +0200)]
examples/vhost: register with lib

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: hpa regions for zero copy
Huawei Xie [Mon, 20 Oct 2014 04:38:15 +0000 (12:38 +0800)]
examples/vhost: hpa regions for zero copy

check_hpa_regions, fill_hpa_memory_regions and hpa memory region
data structure are added back from old virtio-net.c.

Add hpa (host physical address) region generation/destroy logic.
gpa<->hpa memory translation regions are generated at new_device,
when a virtio device is ready for packet processing.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
10 years agoexamples/vhost: add vhost dev struct
Huawei Xie [Mon, 20 Oct 2014 04:38:16 +0000 (12:38 +0800)]
examples/vhost: add vhost dev struct

Define vhost_dev data structure.
Change reference to virtio_dev to vhost_dev.
The vhost example use vdev data structure for switching related logic
and container for virtio_dev.

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>