dpdk.git
10 years agoixgbe: fix build of standard Rx with vectorized Tx
Cunming Liang [Thu, 26 Jun 2014 06:53:30 +0000 (14:53 +0800)]
ixgbe: fix build of standard Rx with vectorized Tx

The vpmd RX routine won't be used if RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC
is not defined or its condition check fail.
The case RTE_LIBRTE_IXGBE_RX_ALLOC_BULK_ALLOC=n and RTE_IXGBE_INC_VECTOR=y
may exist when choose to use standard RX and optimized TX
(ixgbe_xmit_pkts_vec/ixgbe_xmit_pkts_simple).

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Yong Liu <yong.liu@intel.com>
Tested-by: Zhaochen Zhan <zhaochen.zhan@intel.com>
10 years agoixgbe: rework fix of media type for bypass device
Pablo de Lara [Tue, 24 Jun 2014 14:41:29 +0000 (15:41 +0100)]
ixgbe: rework fix of media type for bypass device

This was previously solved in commit 60a70d4e042350ca
(fix link status interrupt of bypass device),
but this alternative fix reverts the previous one and solves the
same issue without modifying the base driver (also named "shared code").

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agoi40e/base: ignore warning
Chen Jing D(Mark) [Tue, 24 Jun 2014 05:22:57 +0000 (13:22 +0800)]
i40e/base: ignore warning

There is a warning in base driver (shared code) on 32-bits RHEL6.3/6.5:
lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c:917:
error: integer constant is too large for ‘long’ type

As we don't modify base driver, this warning must be ignored.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agoexplicit shared code naming as base driver
Thomas Monjalon [Tue, 24 Jun 2014 08:03:02 +0000 (10:03 +0200)]
explicit shared code naming as base driver

Intel PMDs are built on top of the base drivers which are provided by Intel
and shouldn't be modified to allow easy batch upgrade from Intel.

The base driver is a "shared code" between many projects. But in DPDK,
the "base driver" naming makes more sense.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
10 years agoapp/testpmd: rework display of Rx descriptors
Helin Zhang [Tue, 24 Jun 2014 02:02:39 +0000 (10:02 +0800)]
app/testpmd: rework display of Rx descriptors

i40e supports 16 and 32 bytes RX descriptors which can be configured.
It needs to check the driver type and the configuration to determine
if 16 or 32 bytes RX descriptors is being used, for reading and
displaying the different sizes of RX descriptors.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agoi40e: ignore failure when updating default macvlan filter
Helin Zhang [Tue, 24 Jun 2014 02:02:38 +0000 (10:02 +0800)]
i40e: ignore failure when updating default macvlan filter

For NVM4.2.2 or after, the firmware has the correct configurations
and load the macvlan filter as expected. It is not needed to
Update the default macvlan filter which cannot be removed at
all during initialization.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agoi40e: disable double vlan by default
Helin Zhang [Tue, 24 Jun 2014 02:02:37 +0000 (10:02 +0800)]
i40e: disable double vlan by default

Double vlan should be specifically disabled by default during
port initialization which is expected.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agoi40e: fix updating hash lookup table of PF RSS
Helin Zhang [Tue, 24 Jun 2014 02:02:36 +0000 (10:02 +0800)]
i40e: fix updating hash lookup table of PF RSS

The bit shifting were written wrongly in '0x1 < j',
the correct one should be '0x1 << j'.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agoi40e: fix RSS hash copy
Helin Zhang [Tue, 24 Jun 2014 02:02:33 +0000 (10:02 +0800)]
i40e: fix RSS hash copy

It wrongly gets the RSS hash result from the RX descriptor which
has been modified for receiving new packet. The fix is to get the
RSS hash result from the buffer which saves the RX descriptor.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agoi40evf: fix link status
Helin Zhang [Tue, 24 Jun 2014 02:02:35 +0000 (10:02 +0800)]
i40evf: fix link status

Fix a bug of copying wrong size of link information in the
function i40evf_get_link_status().

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agoi40evf: remove useless function
Helin Zhang [Tue, 24 Jun 2014 02:02:34 +0000 (10:02 +0800)]
i40evf: remove useless function

i40evf_dev_atomic_read_link_status() was defined but not used.
To avoid possible warnings by some compilers, it needs to
delete the whole function.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
10 years agokni: fix build on Oracle Linux 6.4 and RHEL 6.5
Helin Zhang [Wed, 11 Jun 2014 13:43:38 +0000 (21:43 +0800)]
kni: fix build on Oracle Linux 6.4 and RHEL 6.5

The compile errors are copied as follows. The fixes came from
Linux drivers of ixgbe-3.21.2 and igb-5.1.2 with modifications.
The idea is to use self-defined functions no matter they have
already been defined somewhere or not.

* Oracle Linux6.4
lib/librte_eal/linuxapp/kni/ethtool/ixgbe/kcompat.h:3111:
error: redefinition of 'ether_addr_equal'
include/linux/etherdevice.h:180: note: previous definition
of 'ether_addr_equal' was here

* RHEL6.5
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3597:
error: redefinition of 'mmd_eee_cap_to_ethtool_sup_t'
include/linux/mdio.h:387: note: previous definition of
'mmd_eee_cap_to_ethtool_sup_t' was here
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3625:
error: redefinition of 'mmd_eee_adv_to_ethtool_adv_t'
include/linux/mdio.h:415: note: previous definition of
'mmd_eee_adv_to_ethtool_adv_t' was here
lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3653:
error: redefinition of 'ethtool_adv_to_mmd_eee_adv_t'
include/linux/mdio.h:443: note: previous definition of
'ethtool_adv_to_mmd_eee_adv_t' was here

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoi40e: fix build with icc
Chen Jing D(Mark) [Mon, 23 Jun 2014 05:49:45 +0000 (13:49 +0800)]
i40e: fix build with icc

Cast constant to fix the ICC compilation error
introduced in commit 2b12431b5369ca06d43ea
(add vlan stripping and insertion to VF)

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agodistributor: split get_pkt into request and poll
Bruce Richardson [Thu, 19 Jun 2014 21:12:35 +0000 (22:12 +0100)]
distributor: split get_pkt into request and poll

Take the existing get_pkt API and split out the parts for requesting a new
packet from the part to poll for arrival of a new packet. These individual
functions can then be used independently of the get function, which still acts
as before.

The split functions for request and poll will allow a worker to pull
packets from multiple distributors, or to act as multiple workers with a
single distributor if needed for better performance.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
10 years agoi40e: add vlan stripping and insertion to VF
Chen Jing D(Mark) [Fri, 20 Jun 2014 10:24:44 +0000 (18:24 +0800)]
i40e: add vlan stripping and insertion to VF

VF driver add support to configure vlan offload and pvid set/clear
when host driver is DPDK. For Linux driver, it's not supported yet
since it doesn't support from host side.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoi40e: add vlan stripping and insertion to PF messaging
Chen Jing D(Mark) [Fri, 20 Jun 2014 10:24:43 +0000 (18:24 +0800)]
i40e: add vlan stripping and insertion to PF messaging

PF driver add 2 commands, data structures and corresponding
message handling functions to support VF doing VLAN offload
and set/clear pvid operation.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoi40e: rework vlan stripping and insertion
Chen Jing D(Mark) [Fri, 20 Jun 2014 10:24:42 +0000 (18:24 +0800)]
i40e: rework vlan stripping and insertion

Change original 2 functions to common ones that can take effect on
both VF and PF VSIs.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoi40e: add sanity checks in PF messaging
Chen Jing D(Mark) [Fri, 20 Jun 2014 10:24:41 +0000 (18:24 +0800)]
i40e: add sanity checks in PF messaging

Add sanity check in message handling functions on the request
buffer pointer from VF.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoi40e: add permanent mac address into mac list
Chen Jing D(Mark) [Fri, 20 Jun 2014 10:24:40 +0000 (18:24 +0800)]
i40e: add permanent mac address into mac list

In old firmware versions, the default mac vlan filter setting is
not the one that we expected, so we'll try to remove it and add
new one to change default setting. After firmware updated, it
change default setting to the one that we expected and don't
allow to remove the setting. In this case, we should add the
perenant mac address into mac list and then return.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoi40e: destroy MSI-X pool on close
Chen Jing D(Mark) [Fri, 20 Jun 2014 10:24:39 +0000 (18:24 +0800)]
i40e: destroy MSI-X pool on close

Free MSIX pool resource in function i40e_dev_close.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
10 years agoeal: fix option --base-virtaddr
Pablo de Lara [Thu, 19 Jun 2014 15:35:22 +0000 (16:35 +0100)]
eal: fix option --base-virtaddr

When parsing EAL option --base-virtaddr
errno was not being set to 0 before calling strtoull,
therefore function might fail unnecesarily.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Signed-off-by: Aaron Campbell <aaron@arbor.net>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
10 years agoversion: 1.7.0-rc1
Thomas Monjalon [Wed, 18 Jun 2014 23:13:25 +0000 (01:13 +0200)]
version: 1.7.0-rc1

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agovfio: more verbose error messages
Anatoly Burakov [Wed, 18 Jun 2014 15:07:17 +0000 (16:07 +0100)]
vfio: more verbose error messages

also, making VFIO code distinguish between actual unexpected values
and ioctl() failures, providing appropriate error messages.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
10 years agovfio: open container at startup rather than during init
Anatoly Burakov [Wed, 18 Jun 2014 15:07:16 +0000 (16:07 +0100)]
vfio: open container at startup rather than during init

Currently, VFIO only checks for being able to access the /dev/vfio
directory when initializing VFIO, deferring actual VFIO container
initialization to VFIO binding code. This doesn't bode well for when
VFIO container cannot be initialized for whatever reason, because
it results in unrecoverable error even if the user didn't set up
VFIO and didn't even want to use it in the first place.

This patch fixes this by moving container initialization into the
code that checks if VFIO is available at runtime. Therefore, any
issues with the container will be known at initialization stage and
VFIO will simply be turned off if container could not be set up.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
10 years agoi40e: remove endian.h include
Bruce Richardson [Wed, 18 Jun 2014 20:33:07 +0000 (21:33 +0100)]
i40e: remove endian.h include

endian.h is not needed for the compilation of i40e_rxtx.c and its
inclusion prevents building on FreeBSD systems.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoapp/test-acl: remove unused variable
Bruce Richardson [Wed, 18 Jun 2014 20:33:05 +0000 (21:33 +0100)]
app/test-acl: remove unused variable

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoapp/testpmd: simplify handling of stats mappings error
Bruce Richardson [Tue, 17 Jun 2014 18:41:12 +0000 (19:41 +0100)]
app/testpmd: simplify handling of stats mappings error

Simplifiy the logic in the error checking branch. Rather than having a
single error branch which checked both RX and TX conditions and made
extensive use of the ? operator, move the error checking explicitly into
the RX and TX individual branches.

The original code caused compilation issues when attempting compilation
with clang on BSD, due to type mismatches. This change fixes the issues
while making the code easier to read and maintain overall.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoapp/testpmd: fix cmdline variable types
Bruce Richardson [Wed, 18 Jun 2014 20:33:04 +0000 (21:33 +0100)]
app/testpmd: fix cmdline variable types

A number of commandline entries in the testpmd commandline were actually
defined as being string type values when in fact they were being
initialized as integer types. Correct this by specifying them as integer
type values in the type definition.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoscripts: fix filtering of config comments on bsd
Bruce Richardson [Wed, 18 Jun 2014 20:33:06 +0000 (21:33 +0100)]
scripts: fix filtering of config comments on bsd

On BSD 10, the cpp binary behaves a little differently and often leaves
lines starting with a space before the inital '#' character. This change
ensures those lines are filtered out properly.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agotools: fix alignment of cpu layout output
Shannon Zhao [Wed, 18 Jun 2014 04:18:15 +0000 (12:18 +0800)]
tools: fix alignment of cpu layout output

Bug: when "core id" is greater than 9, the cpu_layout.py output doesn't align.

        Socket 0        Socket 1
        ---------       ---------
Core 9  [4, 16]         [10, 22]

Core 10         [5, 17]         [11, 23]

Solution: adjust output format to align based on the maximum length of the "core id" and "processor"

        Socket 0        Socket 1
        --------        --------
Core 9  [4, 16]         [10, 22]

Core 10 [5, 17]         [11, 23]

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
10 years agoixgbe/base: update copyright to 2014
Jijiang Liu [Wed, 18 Jun 2014 12:38:53 +0000 (14:38 +0200)]
ixgbe/base: update copyright to 2014

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: various changes
Jijiang Liu [Wed, 18 Jun 2014 20:02:28 +0000 (22:02 +0200)]
ixgbe/base: various changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: vf changes
Jijiang Liu [Wed, 18 Jun 2014 20:02:04 +0000 (22:02 +0200)]
ixgbe/base: vf changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: x540 changes
Jijiang Liu [Wed, 18 Jun 2014 19:59:50 +0000 (21:59 +0200)]
ixgbe/base: x540 changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: filtering changes
Jijiang Liu [Wed, 18 Jun 2014 19:55:57 +0000 (21:55 +0200)]
ixgbe/base: filtering changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: flow director changes
Jijiang Liu [Wed, 18 Jun 2014 19:52:48 +0000 (21:52 +0200)]
ixgbe/base: flow director changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: allow to read in sff8472
Jijiang Liu [Wed, 18 Jun 2014 18:34:56 +0000 (20:34 +0200)]
ixgbe/base: allow to read in sff8472

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: allow access to PHY register without lock
Jijiang Liu [Wed, 18 Jun 2014 19:01:03 +0000 (21:01 +0200)]
ixgbe/base: allow access to PHY register without lock

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: rework protected access to autoc register
Jijiang Liu [Wed, 18 Jun 2014 17:40:32 +0000 (19:40 +0200)]
ixgbe/base: rework protected access to autoc register

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: rework locking
Jijiang Liu [Wed, 18 Jun 2014 17:53:49 +0000 (19:53 +0200)]
ixgbe/base: rework locking

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: rework flow control
Jijiang Liu [Wed, 18 Jun 2014 17:53:16 +0000 (19:53 +0200)]
ixgbe/base: rework flow control

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: rework link negotiation
Jijiang Liu [Wed, 18 Jun 2014 13:46:07 +0000 (15:46 +0200)]
ixgbe/base: rework link negotiation

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: disable laser control if manageability enabled
Jijiang Liu [Wed, 18 Jun 2014 19:23:44 +0000 (21:23 +0200)]
ixgbe/base: disable laser control if manageability enabled

igned-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: allow to disable link on D3
Jijiang Liu [Wed, 18 Jun 2014 18:53:32 +0000 (20:53 +0200)]
ixgbe/base: allow to disable link on D3

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: allow to enable and disable Rx
Jijiang Liu [Wed, 18 Jun 2014 18:42:20 +0000 (20:42 +0200)]
ixgbe/base: allow to enable and disable Rx

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: allow to read rtrup2tc register
Jijiang Liu [Wed, 18 Jun 2014 18:46:21 +0000 (20:46 +0200)]
ixgbe/base: allow to read rtrup2tc register

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: rework PCIe disabling
Jijiang Liu [Wed, 18 Jun 2014 15:44:15 +0000 (17:44 +0200)]
ixgbe/base: rework PCIe disabling

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: name constants
Jijiang Liu [Wed, 18 Jun 2014 15:35:41 +0000 (17:35 +0200)]
ixgbe/base: name constants

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: improve error handling
Jijiang Liu [Wed, 18 Jun 2014 15:15:39 +0000 (17:15 +0200)]
ixgbe/base: improve error handling

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoixgbe/base: minor changes
Jijiang Liu [Wed, 18 Jun 2014 12:59:54 +0000 (14:59 +0200)]
ixgbe/base: minor changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: update copyright to 2014
Jijiang Liu [Wed, 18 Jun 2014 09:42:04 +0000 (11:42 +0200)]
e1000/base: update copyright to 2014

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: various changes
Jijiang Liu [Wed, 18 Jun 2014 12:30:20 +0000 (14:30 +0200)]
e1000/base: various changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: fix K1 beacon for 82579
Jijiang Liu [Wed, 18 Jun 2014 11:57:39 +0000 (13:57 +0200)]
e1000/base: fix K1 beacon for 82579

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: m88e1512 phy in 82575
Jijiang Liu [Wed, 18 Jun 2014 10:31:31 +0000 (12:31 +0200)]
e1000/base: m88e1512 phy in 82575

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: fix m88e1112 for 82575
Jijiang Liu [Wed, 18 Jun 2014 12:26:25 +0000 (14:26 +0200)]
e1000/base: fix m88e1112 for 82575

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: fix i354
Jijiang Liu [Wed, 18 Jun 2014 11:58:53 +0000 (13:58 +0200)]
e1000/base: fix i354

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: fix i217
Jijiang Liu [Wed, 18 Jun 2014 12:22:26 +0000 (14:22 +0200)]
e1000/base: fix i217

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: i210 PLL workaround
Jijiang Liu [Wed, 18 Jun 2014 10:28:10 +0000 (12:28 +0200)]
e1000/base: i210 PLL workaround

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: improve error handling
Jijiang Liu [Wed, 18 Jun 2014 10:17:24 +0000 (12:17 +0200)]
e1000/base: improve error handling

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: minor changes
Jijiang Liu [Wed, 18 Jun 2014 10:23:28 +0000 (12:23 +0200)]
e1000/base: minor changes

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoe1000/base: cleanup c10, ulp and nahum6 i218 support
Jijiang Liu [Wed, 18 Jun 2014 10:08:12 +0000 (12:08 +0200)]
e1000/base: cleanup c10, ulp and nahum6 i218 support

Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
[Thomas: split code drop]

10 years agoapp/testpmd: command to configure MTU
Ivan Boule [Tue, 17 Jun 2014 18:09:32 +0000 (20:09 +0200)]
app/testpmd: command to configure MTU

Take avantage of the .set_mtu ethdev function and make it possible to configure
MTU on devices using testpmd.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoixgbevf: allow to set MTU
Ivan Boule [Tue, 17 Jun 2014 18:09:31 +0000 (20:09 +0200)]
ixgbevf: allow to set MTU

The support of jumbo frames in the ixgbevf Poll Mode Driver of 10GbE
82599 VF functions consists in the following enhancements:

- Implement the mtu_set function in the ixgbevf PMD, using the IXGBE_VF_SET_LPE
  request of the version 1.0 of the VF/PF mailbox API for this purpose.

- Add a detailed explanation on the VF/PF rx max frame len negotiation.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoethdev: MTU accessors
Samuel Gauthier [Tue, 17 Jun 2014 18:09:30 +0000 (20:09 +0200)]
ethdev: MTU accessors

This patch adds two new functions in ethdev api to retrieve current MTU and
change MTU of a port.
Only .mtu_set function is pmd specific.
pmd should update its max_rx_pkt_len if needed.

This operation has been implemented for rte_em_pmd, rte_igb_pmd and
rte_ixgbe_pmd.

Signed-off-by: Samuel Gauthier <samuel.gauthier@6wind.com>
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoethdev: allow to force Rx scatter mode
David Marchand [Tue, 17 Jun 2014 18:09:29 +0000 (20:09 +0200)]
ethdev: allow to force Rx scatter mode

We might want to be sure the scatter packets reception handler is selected in a
pmd. This makes it possible to then change mtu later, without the need of
restarting a port.
It is then the pmd duty to tell it enabled the scatter reception handler by
setting dev->data->scattered_rx to 1.

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoethdev: store minimum Rx buffer size
David Marchand [Tue, 17 Jun 2014 18:09:28 +0000 (20:09 +0200)]
ethdev: store minimum Rx buffer size

This avoids code duplication in PMD when dealing with mtu changes.

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoethdev: autoneg parameter in flow control accessors
David Marchand [Tue, 17 Jun 2014 18:09:27 +0000 (20:09 +0200)]
ethdev: autoneg parameter in flow control accessors

Add autoneg field in flow control parameters.
This makes it easier to understand why changing some parameters does not always
have the expected result.

Changing autoneg is not supported at the moment.

Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agoethdev: retrieve flow control configuration
Zijie Pan [Tue, 17 Jun 2014 18:09:26 +0000 (20:09 +0200)]
ethdev: retrieve flow control configuration

This patch adds a new function in ethdev api to retrieve current flow control
configuration.
This operation has been implemented for rte_em_pmd, rte_igb_pmd and
rte_ixgbe_pmd.

Signed-off-by: Zijie Pan <zijie.pan@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
10 years agokvargs: fix build with gcc 4.5.1
Min Cao [Mon, 16 Jun 2014 03:22:11 +0000 (11:22 +0800)]
kvargs: fix build with gcc 4.5.1

GCC 4.5.1 warns about an uninitialized pointer:
error: 'ctx1' may be used uninitialized in this function

Signed-off-by: Min Cao <min.cao@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoapp/testpmd: add L3 packet type in offload flags
Helin Zhang [Thu, 5 Jun 2014 05:09:00 +0000 (13:09 +0800)]
app/testpmd: add L3 packet type in offload flags

As i40e PMD need to know the L3 packet type for TX checksum offloading,
the packet type has been added in rte_mbuf offload flags.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoapp/testpmd: support displaying 32-byte Rx descriptors
Helin Zhang [Thu, 5 Jun 2014 05:08:57 +0000 (13:08 +0800)]
app/testpmd: support displaying 32-byte Rx descriptors

i40e supports both 16 and 32 bytes RX descriptors, while ixgbe and
igb support 16 bytes size only. Code changes have been made in
test-pmd to support both 16 and 32 bytes RX descriptors according
to the configuration in config files.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoi40e: new poll mode driver
Helin Zhang [Thu, 5 Jun 2014 05:08:46 +0000 (13:08 +0800)]
i40e: new poll mode driver

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoi40e: base driver
Helin Zhang [Thu, 5 Jun 2014 05:08:45 +0000 (13:08 +0800)]
i40e: base driver

Add shared code source files to support basic operations to be
called in poll mode driver.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agopci: add i40e devices
Helin Zhang [Thu, 5 Jun 2014 05:08:47 +0000 (13:08 +0800)]
pci: add i40e devices

The PCI device IDs of i40e have been added.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agombuf: add new packet flags for i40e
Helin Zhang [Thu, 5 Jun 2014 05:08:49 +0000 (13:08 +0800)]
mbuf: add new packet flags for i40e

New packet flags of both RX and TX have been added to support i40e.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoethdev: set port based vlan
Helin Zhang [Thu, 5 Jun 2014 05:08:50 +0000 (13:08 +0800)]
ethdev: set port based vlan

To support i40e, new ops has been added to support setting
port based vlan insertion.

New command 'tx_vlan set pvid port_id vlan_id (on|off)'
has been added in testpmd to configure port based vlan insertion.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoethdev: function to compare ethernet addresses
Helin Zhang [Thu, 5 Jun 2014 05:08:50 +0000 (13:08 +0800)]
ethdev: function to compare ethernet addresses

To support i40e, function is_same_ether_addr() has been added to
compare two ethernet address.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoethdev: new link speeds
Helin Zhang [Thu, 5 Jun 2014 05:08:50 +0000 (13:08 +0800)]
ethdev: new link speeds

For i40e support, new link speeds are needed.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoethdev: more RSS flags
Helin Zhang [Thu, 5 Jun 2014 05:08:50 +0000 (13:08 +0800)]
ethdev: more RSS flags

- i40e RSS flags have been added (and enlarged to 64-bit)
- A new configuration of 'uint8_t rss_key_len' has been added in
  'struct rte_eth_rss_conf' to support different length of RSS keys.
- In each PMD, only the supported flags are masked.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoethdev: allow maximum packet length to less than 1518
Helin Zhang [Thu, 5 Jun 2014 05:08:51 +0000 (13:08 +0800)]
ethdev: allow maximum packet length to less than 1518

In ethdev, it ignores setting maximum packet length to less than
1518. The changes is to remove this limitation and let less than
1518 can be set for 'maximum packet length'.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agopci: access to specific bits via sysfs
Helin Zhang [Thu, 5 Jun 2014 05:09:09 +0000 (13:09 +0800)]
pci: access to specific bits via sysfs

Enabling 'Extended Tag' and resetting 'Max Read Request Size' in PCI
config space have big impacts to i40e performance. They cannot be
changed on some BIOS implementations, though can on others. Two sys
files of 'extended_tag' and 'max_read_request_size' are added to
support changing them by 'echo' in user space.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Signed-off-by: Jing Chen <jing.d.chen@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Heqing Zhu <heqing.zhu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
10 years agoexamples/vmdq: fix Tx queue id
Ouyang Changchun [Thu, 12 Jun 2014 07:10:05 +0000 (15:10 +0800)]
examples/vmdq: fix Tx queue id

This patch fixes a core id issue in sample vmdq, in case core mask
doesn't start with lcore_id 0 but 20, for instance,
queue id should use core_id instead of lcore_id.

Signed-off-by: Ouyang Changchun <changchun.ouyang@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoixgbe: fix link status interrupt of bypass device
Pablo de Lara [Tue, 10 Jun 2014 21:33:27 +0000 (22:33 +0100)]
ixgbe: fix link status interrupt of bypass device

Function ixgbe_get_media_type_82599 returns media_type =
ixgbe_media_type_unknown, when using an 82599 Bypass NIC,
so that causes link status interrupt not to work properly.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoethdev: add Rx error counters for missed, badcrc and badlen packets
Ivan Boule [Thu, 12 Jun 2014 21:55:41 +0000 (23:55 +0200)]
ethdev: add Rx error counters for missed, badcrc and badlen packets

Split input error stats to have a better understanding of why packets
have been dropped.
Keep ierrors field untouched for backward compatibility.

Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
10 years agoapp/test: packet framework unit tests
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:39 +0000 (19:08 +0100)]
app/test: packet framework unit tests

Unit tests for Packet Framework libraries.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agoexamples/pipeline: packet framework sample
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:38 +0000 (19:08 +0100)]
examples/pipeline: packet framework sample

This Packet Framework sample application illustrates the capabilities
of the Intel DPDK Packet Framework toolbox.

It creates different functional blocks used by a typical IPv4 framework like:
flow classification, firewall, routing, etc.

CPU cores are connected together through standard interfaces built on SW rings,
which each CPU core running a separate pipeline instance.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agoapp/pipeline: packet framework benchmark
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:37 +0000 (19:08 +0100)]
app/pipeline: packet framework benchmark

This application is purposefully built to benchmark the performance
of the Intel DPDK Packet Framework toolbox.

It uses 3 CPU cores connected in a chain through SW rings
(NICs --> Core A --> Core B --> Core C --> NICs)
1. Core A: reads packets from NIC ports and writes them to SW queues;
2. Core B: instantiates a Packet Framework pipeline that uses ring reader
   input ports, a table whose type is selected trhough command line arguments
   (--none, --stub, --lpm, --acl, --hash[-spec]-KEYSZ-TYPE, with KEYSZ as
   8, 16 or 32 bytes and TYPE as ext (Extendible bucket) or lru (LRU))
   and ring writers output ports;
3. Core C: reads packets from SW rings and writes them to NIC ports.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Tested-by: Waterman Cao <waterman.cao@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>
[Thomas: remove dedicated build option]

10 years agocfgfile: library to interpret config files
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:36 +0000 (19:08 +0100)]
cfgfile: library to interpret config files

This library provides a tool to interpret config files that have
standard structure.

It is used by the Packet Framework examples/ip_pipeline sample application.

It originates from examples/qos_sched sample application and now it makes
this code available as a library for other sample applications to use.
The code duplication with qos_sched sample app to be addressed later.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agopipeline: new packet framework logic
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:35 +0000 (19:08 +0100)]
pipeline: new packet framework logic

The Packet Framework pipeline library provides a standard methodology
(logically similar to OpenFlow) for rapid development of complex packet
processing pipelines out of ports, tables and actions.

A pipeline is constructed by connecting its input ports to its output ports
through a chain of lookup tables. As result of lookup operation into the
current table, one of the table entries (or the default table entry, in case
of lookup miss) is identified to provide the actions to be executed on the
current packet and the associated action meta-data.

The behavior of user actions is defined through the configurable table action
handler, while the reserved actions define the next hop for the current packet
(either another table, an output port or packet drop) and are handled
transparently by the framework.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: stub
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:33 +0000 (19:08 +0100)]
table: stub

The stub table is a simple implementation of the Packet Framework table
API that produces lookup miss for all input packets.

It is used as simple cable-type forwarder by the Packet Framework
pipeline library.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: array
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:32 +0000 (19:08 +0100)]
table: array

Packet Framework array tables.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: hash
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:31 +0000 (19:08 +0100)]
table: hash

Various types of hash tables presented under the Packet Framework toolbox.

Hash table types:
1. Extendible bucket (ext): when bucket is full, bucket is extended with
   more keys
2. Least Recently Used (LRU): when bucket is full, the LRU entry is discarded
3. Pre-computed key signature: RX core extracts the key n-tuple from the
   packet, computes the key signature and saves the key and key signature
   within the packet meta-data; flow classification core performs the actual
   lookup (the bucket search stage) after reading the key and key signature
   from packet meta-data
4. Signature computed on-the-fly (do-sig version): the same CPU core extracts
   the key n-tuple from pkt, computes key signature and performs the table
   lookup
5. Configurable key size or optimized for single key size (8-byte, 16-byte
   and 32-byte key sizes)

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: ACL
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:30 +0000 (19:08 +0100)]
table: ACL

Packet Framework ACL table for ACL rule database.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: LPM IPv6
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:29 +0000 (19:08 +0100)]
table: LPM IPv6

Routing table for IPv6.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: LPM IPv4
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:28 +0000 (19:08 +0100)]
table: LPM IPv4

Routing table for IPv4.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agotable: new packet framework API
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:27 +0000 (19:08 +0100)]
table: new packet framework API

This file defines the operations to be implemented by
any Packet Framework table.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agoport: source and sink
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:25 +0000 (19:08 +0100)]
port: source and sink

Source port is a packet generator, similar to /dev/zero Linux device.

Sink port is a packet terminator (drops all input packets), similar
to /dev/null Linux device.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agoport: hierarchical scheduler
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:24 +0000 (19:08 +0100)]
port: hierarchical scheduler

The QoS hierarchical scheduler presented as Packet Framework port.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>

10 years agoport: IPv4 reassembly
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:23 +0000 (19:08 +0100)]
port: IPv4 reassembly

The IPv4 reassembly operation is presented as a Packet Framework port.

The code duplication with examples/ip_reassembly sample application
to be addressed soon by linking the relevant library once upstreamed.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>
[Thomas: update to new ip_frag library]
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
10 years agoport: IPv4 fragmentation
Cristian Dumitrescu [Wed, 4 Jun 2014 18:08:22 +0000 (19:08 +0100)]
port: IPv4 fragmentation

This port presents the IPv4 fragmentation operation as a Packet Framework port.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch@intel.com>
Acked by: Ivan Boule <ivan.boule@6wind.com>
[Thomas: update to new ip_frag library]
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>