Wenzhuo Lu [Fri, 5 Jun 2015 05:21:54 +0000 (13:21 +0800)]
ixgbe/base: add X550em PHY interrupt and forced speeds
This patch adds x550em external PHY interrupt and forced 1G/10G
support. Support includes enabling and handling Link Status
Change and Thermal Sensor interrupt. ixgbe_handle_lasi has been added
to the API for handling the interrupts received from x550em PHY.
ixgbe_enable_lasi_ext_t_x550em and ixgbe_get_lasi_ext_t_x550em have been
added to X550em to enable mask and check interrupt flags for x550em PHY.
Forced 1G/10G link speed is handled via ixgbe_setup_mac_link_t_X550em.
ixgbe_setup_mac_link_t_X550em sets up the internal PHY and
external PHY link to either 10G or 1G based on the user selected auto
advertised link speed setting. Then sets up the external PHY auto
advertised link speed.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:53 +0000 (13:21 +0800)]
ixgbe/base: add X550em autoneg flow control
This patch adds x550em Auto neg Flow Control support to
ixgbe_device_supports_autoneg_fc and sets the x550em setup_fc function
pointer to ixgbe_setup_fc_generic. ixgbe_setup_fc_generic is used for
x550em because flow control is setup on the external PHY via MDIO, when
ixgbe_setup_fc_X550em sets up flow control on the internal PHY.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:52 +0000 (13:21 +0800)]
ixgbe/base: rework X550em PHY setup function
This patch cleans up the ixgbe_setup_internal_phy_ x550em() function as follows:
- Renames it to ixgbe_setup_internal_phy_t_x550em to clarify that it is
specific to copper
- Returns an error if called for non-copper devices
- Corrects the comments
- Removed the LASI(Link Alarm Status Interrupt) status register checks as
this was incorrect and never worked correctly anyway.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:51 +0000 (13:21 +0800)]
ixgbe/base: fix init handling of X550em link down
This patch changes the return value for ixgbe_setup_internal_phy_t_x550em
when link is down to IXGBE_SUCCESS.
The driver will call ixgbe_setup_internal_phy_t_x550em when a link status
change is reported. The links status change can occur on link up or link
down, and if the link status change is for link down then there is no iXFI
setup necessary and no error condition needs to be returned.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:50 +0000 (13:21 +0800)]
ixgbe/base: move i2c mux function for X550em
The following patch moves the handling of the I2C MUX (which is only
used for x550em SFP+ devices) out of the ixgbe_x540.c file and
into the ixgbe_x550.c file where it belongs.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:49 +0000 (13:21 +0800)]
ixgbe/base: new simplified X550em init flow
The init flow is simplified. We no longer wait for the PHY FW init
complete bit to be set as this bit is only set once by the PHY at power
on and then cleared on the first read. So only the first instance of
running SW (or possibly MAC FW) needs to initialize the PHY.
The PHY initialization has been simplified and now only requires that
the PHY FW be "un-stalled". SW no longer needs to put the PHY in
low-power mode or enable the transceiver.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:48 +0000 (13:21 +0800)]
ixgbe/base: fix X550em flow control for KR backplane
For the KR backplane which is different from other backplane,
in that we can't use auto-negotiation to determine the
mode. Instead, use whatever the user configured.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:47 +0000 (13:21 +0800)]
ixgbe/base: add X550em LPLU support
This patch adds SW Low Power Link Up (LPLU) support for x550em PHY.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:46 +0000 (13:21 +0800)]
ixgbe/base: add SFP+ dual-speed support
This patch adds SFP+ dual-speed support.
82599 fiber link code was moved from ixgbe_82599.c to ixgbe_commom.c
for use by X550em, and the API was updated to support the common code
usage. SFP MAC link code is added to x550em.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:44 +0000 (13:21 +0800)]
ixgbe/base: disable X550em FEC to save power
The FEC (Forward Error Correction) feature can improve BER (Bit Error Rate)
but uses more power to do so. It also cannot be used with
EEE (Energy Efficient Ethernet).
EEE is an important feature, and we have no known BER issues, so FEC
is not needed.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:43 +0000 (13:21 +0800)]
ixgbe/base: fix X550em mux after MAC reset
The I2C mux control relies on the SDP setting in the ESDP register
so it is necessary to restore the value after a MAC reset. So,
put the code in a function so it can be used in more than one place.
Fixes:
d2e72774e58c ("ixgbe/base: support X550")
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:42 +0000 (13:21 +0800)]
ixgbe/base: reset X550em CS4227 when needed
On some hardware platforms, the CS4227 does not initialize properly.
Detect those cases and reset it appropriately.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:41 +0000 (13:21 +0800)]
ixgbe/base: issue firmware command when resetting X550em
The driver now needs to issue a firmware command to inform the
firmware that a driver is coming up. This prevents the possibility
of the firmware and the driver configuring the PHY at the same
time. Upon completion of the command, the firmware will no longer
be configuring the PHY.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:40 +0000 (13:21 +0800)]
ixgbe/base: reduce i2c retry count for X550
A retry count of 10 is likely to run into problems on X550 devices
that have to detect and reset unresponsive CS4227 devices. So,
reduce the I2C retry count to 3 for X550 and above. This should
avoid any possible regressions in existing devices.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:39 +0000 (13:21 +0800)]
ixgbe/base: provide unlocked i2c methods
Most I2C accesses take and release semaphores for each access. It's
also necessary to perform multiple I2C operations under the same
holding of the semaphore, so provide unlocked I2C methods for that
purpose.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:38 +0000 (13:21 +0800)]
ixgbe/base: remove useless function
Remove the function which is not called by the drivers.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:37 +0000 (13:21 +0800)]
ixgbe/base: fix tunnelled UDP and TCP frames in flow director
All bits in FDIRTCPM and FDIRUDPM are set to 1 when
ixgbe_fdir_set_input_mask_82599 is called. Not settings these bits will cause
TCP and UDP packets to be filtered out when NVGRE or VXLAN mode is enabled.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:36 +0000 (13:21 +0800)]
ixgbe/base: check return value after calling
This patch moves the check of the return value from
ixgbe_start_hw_generic after the function is called.
Previously we had the code to disable relaxed ordering in
between, which seems a bit out of place.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:34 +0000 (13:21 +0800)]
ixgbe/base: fix typos
Remove the redundant "from".
There's a typo in the code comment for FC end
of Frame Exception (FCEOFe/IPE), so fixed the typo.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Wenzhuo Lu [Fri, 5 Jun 2015 05:21:33 +0000 (13:21 +0800)]
ixgbe/base: update copyright and readme
Update copyright in every file.
Update README file.
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Simon Kagstrom [Wed, 27 May 2015 09:30:16 +0000 (11:30 +0200)]
eal: allow combining -m and --no-huge
Needed to run as non-root but with higher memory allocations, and
removes a constraint on no-huge mode being limited to 64M. A usage
example is if running with file input with the pcap PMD, which can be
done as non-root after this patch via e.g.,
./test-dpdk --no-huge -m 1024 -l 0,1 -n3
--vdev 'eth_pcap0,rx_pcap=eth-rx.pcap,tx_pcap=eth-tx.pcap'
Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: Johan Faltstrom <johan.faltstrom@netinsight.net>
Acked-by: David Marchand <david.marchand@6wind.com>
John McNamara [Thu, 11 Jun 2015 14:48:56 +0000 (15:48 +0100)]
app/test: return error code on failed tests
This change returns a system error code if tests fail when
running any of the "make test" targets.
This allows the tests to report failures while running in
continuous integration environments.
Previously "make test" returned $? == 0 for all combinations
of success, failure and exception conditions.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Gaetan Rivet [Mon, 1 Jun 2015 12:11:00 +0000 (14:11 +0200)]
app/test: fix default numa memory assignment
Each test requires a certain minimal amount of memory.
Spreading memory on all sockets means that the test will get less memory than
what it wanted on multi sockets system.
So replace all_sockets() with per_sockets().
Also doubled memory on group_5 as current requirement is not enough.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Ding Zhi [Mon, 1 Jun 2015 12:11:09 +0000 (14:11 +0200)]
app/testpmd: fix default flow control values
This variable has undefined values in some cases.
Fixes:
422a20a4e62d ("app/testpmd: fix uninitialized flow control variables")
Signed-off-by: Ding Zhi <zhi.ding@6wind.com>
Signed-off-by: David Marchand <david.marchand@6wind.com>
[Thomas: split lines to conform with guidelines]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Michal Jastrzebski [Fri, 5 Jun 2015 09:28:17 +0000 (11:28 +0200)]
examples/qos_sched: use librte_cfgfile
This is a modification of qos_sched example to use
librte_cfgfile for parsing configuration file.
Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Nelio Laranjeiro [Fri, 22 May 2015 14:17:31 +0000 (16:17 +0200)]
mlx4: fix 32-bit build
Fix warning messages "cast to pointer from integer of different size" when
compiling DPDK in 32 bit with Mellanox PMD.
SGE addresses are 64 bit integers, converting them to pointers must be done
through uintptr_t to avoid compilation warnings when those have a different
size.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Krishna Murthy [Wed, 27 May 2015 03:01:31 +0000 (11:01 +0800)]
vhost: enable live migration
When we migrate VM, without this feature, qemu will report error:
"migrate: Migration disabled: vhost lacks VHOST_F_LOG_ALL feature".
Signed-off-by: Krishna Murthy <krishna.j.murthy@intel.com>
Olivier Matz [Mon, 8 Jun 2015 14:57:22 +0000 (16:57 +0200)]
mbuf: optimize refcnt update
In __rte_pktmbuf_prefree_seg(), there was an optimization to avoid using
a costly atomic operation when updating the mbuf reference counter if
its value is 1. Indeed, it means that we are the only owner of the mbuf,
and therefore nobody can change it at the same time.
We can generalize this optimization directly in rte_mbuf_refcnt_update()
so the other callers of this function, like rte_pktmbuf_attach(), can
also take advantage of this optimization.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Ivan Boule [Thu, 28 May 2015 15:05:23 +0000 (17:05 +0200)]
app/testpmd: fix reply to a multicast ICMP request
Set the IP source and destination addresses in the IP header of the
ICMP reply as follows:
- Use the request IP source address as the reply IP destination address
- If the request IP destination address is a multicast IP address
- choose a reply IP source address different from the request IP
source address,
- re-compute the IP header checksum.
Otherwise
- switch the request IP source and destination addresses in the
reply,
- keep the IP header checksum unchanged.
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Ivan Boule [Thu, 28 May 2015 15:05:22 +0000 (17:05 +0200)]
ixgbe: add multicast MAC address filtering
Support the function "set_mc_addr_list" in the "ixgbe" and in the
"ixgbe-vf" Poll Mode Drivers.
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Ivan Boule [Thu, 28 May 2015 15:05:21 +0000 (17:05 +0200)]
e1000: add multicast MAC address filtering
Support the PMD function "set_mc_addr_list" in the "igb", "igb-vf",
and "em" Poll Mode Drivers.
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Ivan Boule [Thu, 28 May 2015 15:05:20 +0000 (17:05 +0200)]
app/testpmd: new command to add/remove multicast MAC addresses
Add the new interactive command:
mcast_addr add|remove X <mcast_addr>
to add/remove the multicast MAC address <mcast_addr> to/from the set of
multicast addresses filtered by port <X>.
Command used to test the function "rte_eth_dev_set_mc_addr_list"
that has been added to the API of PMDs.
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Ivan Boule [Fri, 29 May 2015 08:56:25 +0000 (10:56 +0200)]
ethdev: add multicast address filtering
With the current PMD API, the receipt of multicast packets on a given
port can only be enabled by invoking the "rte_eth_allmulticast_enable"
function.
This method may not work on Virtual Functions in SR-IOV architectures
when the host PF driver does not allow such operation on VFs.
In such cases, joined multicast addresses must be individually added
in the set of multicast addresses that are filtered by the [VF] port.
For this purpose, a new function "set_mc_addr_list" is introduced
into the set of functions that are exported by a Poll Mode Driver.
Signed-off-by: Ivan Boule <ivan.boule@6wind.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
[Thomas: export new function in .map]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Damjan Marion [Mon, 25 May 2015 10:20:52 +0000 (12:20 +0200)]
virtio: fix crash if CQ is not negotiated
Fix NULL dereference if virtio control queue is not negotiated.
Signed-off-by: Damjan Marion <damarion@cisco.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Thu, 11 Jun 2015 15:53:27 +0000 (08:53 -0700)]
virtio: fix ring size negotiation
Negotiate the virtio ring size. The host may allow for very large
rings but application may only want a smaller ring.
Conversely, if the number of descriptors requested exceeds the virtio
host queue size, then just silently use the smaller host size.
This fixes issues with virtio in non-QEMU envirionments.
For example Google Compute Engine allows up to 16K elements
in ring.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Thu, 11 Jun 2015 15:53:26 +0000 (08:53 -0700)]
virtio: clarify feature bit handling
Change the features from bit mask to bit number. This allows the
DPDK driver to use the definitions from Linux (yes the header
files already use a license compatiable with DPDK). This makes DPDK
driver handle future feature bit changes.
Get rid of double negative code in the feature bit intialization.
Instead just have a new define with the list of feature bits implemented.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Thu, 11 Jun 2015 15:53:25 +0000 (08:53 -0700)]
virtio: do not set mac table unless negotiated
Don't attempt to set the MAC address table unless the host allows
it in feature negotiation. Also, don't return a value from mac_table_set
since all callers ignore the return value.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Thu, 11 Jun 2015 15:53:24 +0000 (08:53 -0700)]
virtio: do not enable/disable Rx modes unless supported
If negotiation with host says that controlling Rx mode is
not supported, then don't try.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Thu, 11 Jun 2015 15:53:23 +0000 (08:53 -0700)]
virtio: remove blank lines
Putting blank line between function and following conditional
just wastes screen space, and makes code less obvious.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Fri, 29 May 2015 15:47:51 +0000 (08:47 -0700)]
drivers: explicit initialization of pci drivers
Upcoming drivers will need to be able to support other bus types.
This is a transparent change to how struct eth_driver is initialized.
It has not function or ABI layout impact, but makes adding a later
bus type (Xen, Hyper-V, ...) much easier.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Stephen Hemminger [Thu, 4 Jun 2015 14:43:25 +0000 (07:43 -0700)]
examples: fix whitespace
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Thu, 4 Jun 2015 14:43:24 +0000 (07:43 -0700)]
app: fix whitespace
Fix trailing whitespace, space before tab and empty lines at end of file.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
[Thomas: fix indent and alignment in test_acl.h and test_sched.c]
Stephen Hemminger [Thu, 4 Jun 2015 14:43:27 +0000 (07:43 -0700)]
drivers: fix whitespace
Note: ignored whitespace issues in base (external code).
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Stephen Hemminger [Thu, 4 Jun 2015 14:43:23 +0000 (07:43 -0700)]
lib: fix whitespace
More places with trailing whitespace, and empty blank lines
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Thu, 4 Jun 2015 14:43:19 +0000 (07:43 -0700)]
kni: fix whitespace
Ran this code base through a script which:
- removes trailing whitespace
- removes space before tabs
- removes blank lines at end of file
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Stephen Hemminger [Thu, 4 Jun 2015 14:43:20 +0000 (07:43 -0700)]
eal: fix whitespace
Eliminate trailing whitespace, space after tabs, and extra blank lines
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Thu, 4 Jun 2015 14:43:26 +0000 (07:43 -0700)]
mk, scripts: remove useless blank lines
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Stephen Hemminger [Wed, 10 Jun 2015 16:09:37 +0000 (09:09 -0700)]
vmxnet3: fix spelling
Fix spelling errors in strings and comments.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Yong Wang <yongwang@vmware.com>
Sergio Gonzalez Monroy [Tue, 9 Jun 2015 09:37:28 +0000 (10:37 +0100)]
mk: fix combined library build
The combined lib was being created after building the lib root dir.
With the new directory hierarchy, it should be created after the
drivers root dir instead.
Fixes:
980ed498eb1dd0 ("drivers: create new directory")
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Tested-by: Li Wei <lw@cn.fujitsu.com>
Helin Zhang [Thu, 4 Jun 2015 06:54:32 +0000 (14:54 +0800)]
i40evf: fix jumbo frame support
It wouldn't check the configured maximum packet length, and then
the scattered receiving function wouldn't be selected at all even
if it wants to receive a jumbo frame. The fix is to select the
correct RX function according to the configurations.
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Bruce Richardson [Wed, 3 Jun 2015 13:58:13 +0000 (14:58 +0100)]
doc: add coding style
Add coding standards document to guides directory. This document
codifies the current DPDK C coding conventions, to make it easier for
contributors to see the format their code should be in.
Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Konstantin Ananyev [Wed, 3 Jun 2015 17:45:19 +0000 (18:45 +0100)]
acl: remove subtree calculations at build stage
As now subtree_id is not used acl_merge_trie() any more,
there is no point to calculate and maintain that information.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Konstantin Ananyev [Wed, 3 Jun 2015 17:45:18 +0000 (18:45 +0100)]
acl: add new test case for ranges build
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Konstantin Ananyev [Wed, 3 Jun 2015 17:45:17 +0000 (18:45 +0100)]
acl: fix matching rule
Reported by Zi Hu:
"
cat test_data/rule1
@192.168.0.0/24 192.168.0.0/24 400 : 500 0 : 52 6/0xff
@192.168.0.0/24 192.168.0.0/24 400 : 500 54 : 65280 6/0xff
@192.168.0.0/24 192.168.0.0/24 400 : 500 0 : 65535 6/0xff
cat test_data/trace1
0xc0a80005 0xc0a80009 450 53 0x06
I run the test by:
sudo ./testacl -n 2 -c 4 -- --rulesf=./test_data/rule1
--tracef=./test_data/trace1
The result shows that the packet matches the second rule, which is wrong.
The dest port of the pkt is 53, so it should match the third rule.
"
Indeed there is problem at ACL build stage.
Sometimes acl_merge_trie() is too aggressive in trying to conserve
space at build time.
So it takes a wrong assumptions and didn't duplicate a node,
even when it should.
The easiest and safest fix seems to always duplicate a left non-root/non-leaf
node first, and let the further code to destroy the node, if it is not needed.
Reported-by: Zi Hu <huzilucky@gmail.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Stephen Hemminger [Wed, 3 Jun 2015 21:13:10 +0000 (14:13 -0700)]
bonding: remove useless memset
Remove 2 unneeded memset's. The info area is already cleared rte_eth_dev_info_get
and the statistics buffer is cleared by rte_eth_stats_get
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Stephen Hemminger [Wed, 3 Jun 2015 21:13:12 +0000 (14:13 -0700)]
null: remove useless memset
The stats area is already cleared before calling eth_stats_get().
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Stephen Hemminger [Wed, 3 Jun 2015 21:13:11 +0000 (14:13 -0700)]
ethdev: remove useless memset
eth_stats is already cleared by rte_eth_stats_get
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Wed, 22 Apr 2015 13:31:55 +0000 (14:31 +0100)]
eal/linux: fix numa node detection
Using the "physical_package_id" as a fallback for determining the
numa node of a core tends to be unreliable. Fix this by using a
detection routine which reads the numa information from
/sys/devices/system/node and just returns a numa node of 0 on
failure.
Reported-by: Wang Sheng-Hui <shhuiw@gmail.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Andrey Chilikin [Mon, 18 May 2015 12:13:24 +0000 (13:13 +0100)]
examples/l3fwd: make destination mac address configurable
Add a command-line parameter to l3fwd, to allow the user to specify the
destination mac address for each ethernet port used.
Signed-off-by: Andrey Chilikin <andrey.chilikin@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Thomas Monjalon [Tue, 2 Jun 2015 13:42:08 +0000 (15:42 +0200)]
examples/load_balancer: fix build with gcc 5.1
GCC 5.1 detects more out-of-bounds accesses:
error: array subscript is above array bounds [-Werror=array-bounds]
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Bruce Richardson [Fri, 29 May 2015 14:34:14 +0000 (15:34 +0100)]
ip_frag: fix build with gcc 5.1
On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counter.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Bruce Richardson [Fri, 29 May 2015 14:34:16 +0000 (15:34 +0100)]
null: fix build with gcc 5.1
On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counters, or, in the case of stats reset,
by blindly zeroing the whole array, rather than just the part that is in
use.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Bruce Richardson [Fri, 29 May 2015 14:34:15 +0000 (15:34 +0100)]
i40e: fix build with gcc 5.1
On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counter.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Bruce Richardson [Fri, 29 May 2015 14:34:13 +0000 (15:34 +0100)]
mem: fix build with gcc 5.1
On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by ensuring the
bounds check in the loop takes account of the array size.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Jijiang Liu [Thu, 28 May 2015 01:36:18 +0000 (09:36 +0800)]
config: increase max queues per port
The default value of RTE_MAX_QUEUES_PER_PORT is 256, which is too small
for some configurations for i40e. There will return an error when
configured queue number is larger than 256 in rte_eth_dev_configure().
For example, in vHost sample, PF queue number: 64,
configured vmdq pool number: 63, each vmdq pool has 4 queues,
there will be required 316 queues in a port.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Michael Qiu [Tue, 2 Jun 2015 02:28:48 +0000 (10:28 +0800)]
fm10k: fix maximum VF number
In DPDK, max_vfs means vf numbers created, not the max number vfs
the device supported.
Signed-off-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Jijiang Liu [Tue, 19 May 2015 05:55:39 +0000 (13:55 +0800)]
i40e: fix condition to get VMDQ infos
To get device VMDQ info when only i40e VMDQ feature is enabled.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Bruce Richardson [Mon, 25 May 2015 12:23:54 +0000 (13:23 +0100)]
kni: fix missing header dependencies
The file rte_kni.h depends upon a number of other headers, some of which
are missing from the #include lines. The following #includes are added:
* rte_memory.h - for the definition of phys_addr_t
* rte_mempool.h - for the definition of mempool struct and the mempool
create function.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Marc Sune <marc.sune@bisdn.de>
Bruce Richardson [Mon, 25 May 2015 12:23:53 +0000 (13:23 +0100)]
eal: fix missing header dependency
rte_pci.h depends upon stdio.h for the definition of the FILE type. Add
in #include <stdio.h> to the file to satisfy this dependency in cases
where the including C file does not already include stdio.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Marc Sune <marc.sune@bisdn.de>
Adrien Mazarguil [Fri, 22 May 2015 17:03:12 +0000 (19:03 +0200)]
app/testpmd: compute checksum in ICMP reply
ICMP echo replies with invalid checksums may be dropped by network nodes or
ignored by the ping utility.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Adrien Mazarguil [Fri, 22 May 2015 11:07:31 +0000 (13:07 +0200)]
app/testpmd: fix MAC address in ARP reply
In the icmpecho forwarding mode, ARP replies from testpmd contain
invalid zero-filled MAC addresses. This is broken since the commit below.
Fixes:
31db4d38de72 ("net: change arp header struct declaration")
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Ivan Boule <ivan.boule@6wind.com>
Konstantin Ananyev [Wed, 27 May 2015 08:40:05 +0000 (09:40 +0100)]
mempool: fix pages computation to determine number of objects
In rte_mempool_obj_iter(), when element boundary coincides with page boundary,
even if a single page is required per object, a loop checks that the next page
is contiguous and drops the first one otherwise.
This commit checks subsequent pages only when several are required per object.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Reviewed-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Mon, 25 May 2015 16:27:45 +0000 (18:27 +0200)]
mempool: fix returned value after counting objects
rte_mempool_xmem_usage()'s return type is ssize_t which has the same
architecture-dependent width as size_t but is signed.
On 64-bit architectures, returning a negative uint32_t value without casting
to ssize_t first does not work as intended, the sign bit is lost and the
returned value is garbage.
This commit fixes an assertion failure in testpmd on 64 bit architectures
when combining --no-huge and --mp-anon outside of Xen Dom0:
PANIC in mempool_anon_create():
line 170 assert "elt_num == mp->size" failed
Fixes:
148f963fb532 ("xen: core library changes")
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Erik Ziegenbalg [Wed, 20 May 2015 00:04:55 +0000 (17:04 -0700)]
cmdline: fix small memory leak
A function in cmdline.c has a return that does not free buf properly.
Signed-off-by: Erik Ziegenbalg <eziegenb@brocade.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Mon, 18 May 2015 11:34:07 +0000 (12:34 +0100)]
doc: refactor table numbers into references
This change adds automatic table references to the docs. The
table numbers in the generated Html and PDF docs are now
automatically numbered based on section.
Requires Sphinx >= 1.3.1.
This change:
* Adds a RST table:: directive to each table caption.
* Indents the tables to the required directive level.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Mon, 18 May 2015 11:34:06 +0000 (12:34 +0100)]
doc: refactor figure numbers into references
This change adds automatic figure references to the docs. The
figure numbers in the generated Html and PDF docs are now
automatically numbered based on section.
Requires Sphinx >= 1.3.1.
The patch makes the following changes.
* Changes image:: tag to figure:: and moves image caption
to the figure.
* Adds captions to figures that didn't previously have any.
* Un-templates the |image-name| substitution definitions
into explicit figure:: tags. They weren't used more
than once anyway and Sphinx doesn't support them
for figure.
* Adds a target to each image that didn't previously
have one so that they can be cross-referenced.
* Renamed existing image target to match the image
name for consistency.
* Replaces the Figures lists with automatic :numref:
:ref: entries to generate automatic numbering
and captions.
* Replaces "Figure" references with automatic :numref:
references.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Mon, 18 May 2015 11:34:08 +0000 (12:34 +0100)]
doc: add sphinx numref compatibility fallback
This change adds some simple handling for the :numref: directive
for Sphinx versions prior to 1.3.1. This allows the Guides
documentation to be built with older versions of Sphinx and still
produce reasonable results.
The patch replaces the :numref: reference with a link to the
target (for all Sphinx doc types). It doesn't try to label
figures/tables.
Full numref support with automatic figure/table numbering and
links can be obtained by upgrading to Sphinx 1.3.1 or later.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:57:00 +0000 (16:57 +0100)]
xenvirt: move drivers/net/
Move xenvirt PMD to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:59 +0000 (16:56 +0100)]
vmxnet3: move to drivers/net/
Move vmxnet3 PMD to drivers/net directory.
As part of the move, rename the "vmxnet3" subdirectory, containing the
original FreeBSD drivers, from "vmxnet3" to the more standard name
"base", to indicate it contains the base drivers used for the
implementation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:58 +0000 (16:56 +0100)]
virtio: move to drivers/net/
Move virtio PMD to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:57 +0000 (16:56 +0100)]
ring: move to drivers/net/
Move ring PMD to drivers directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:56 +0000 (16:56 +0100)]
pcap: move drivers/net/
Move pcap pmd to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:55 +0000 (16:56 +0100)]
null: move to drivers/net/
Move null PMD to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:54 +0000 (16:56 +0100)]
mlx4: move to drivers/net/
move mlx4 PMD to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:53 +0000 (16:56 +0100)]
ixgbe: move to drivers/net/
move ixgbe PMD to drivers/net directory.
As part of the move, we rename the ixgbe directory, containing the
ixgbe "base driver" code, from "ixgbe" to "base".
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Mon, 18 May 2015 11:05:12 +0000 (12:05 +0100)]
i40e: move to drivers/net/
Move i40e PMD to drivers/net directory.
As part of the move, rename the "i40e" directory, containing the "base
driver" code, from "i40e" to "base".
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:51 +0000 (16:56 +0100)]
fm10k: move to drivers/net/
move fm10k PMD to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:50 +0000 (16:56 +0100)]
enic: move to drivers/net/
move enic PMD to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
[Thomas: move vnic/ to base/]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:49 +0000 (16:56 +0100)]
e1000: move to drivers/net/
Move e1000 pmd to drivers/net directory
As part of move, rename "e1000" subdirectory, which contains the code
from the "base driver", to "base".
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:48 +0000 (16:56 +0100)]
bond: move to drivers/net/
Move bonded ethdev pmd to drivers/net
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:47 +0000 (16:56 +0100)]
af_packet: move to drivers/net/
move af_packet pmd to drivers/net directory
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:46 +0000 (16:56 +0100)]
drivers: create new directory
Add a new top-level "drivers" directory to which all PMDs will be moved
for easier maintenance of both lib folder and drivers themselves. This
new directory is a dependency of all the apps in the app folder, so
the makefiles for each app are updated.
To the new top-level directory add a "net" subdirectory to classify
more specifically our existing PMDs as ethernet drivers
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
[Thomas: fix dependencies and merge several patches]
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Fri, 15 May 2015 15:56:45 +0000 (16:56 +0100)]
mk: use relative rather than absolute pmd paths
In the Makefiles for the PMDs, the paths to the files are often
specified using the full path from $(RTE_SDK) variable. These paths can
be shortened, and make more flexible in case of a future path change by
specifying the paths using $(SRCDIR) instead.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Zoltan Kiss [Mon, 18 May 2015 15:35:14 +0000 (16:35 +0100)]
mempool: limit cache size
Otherwise cache_flushthresh can be bigger than n, and
a consumer can starve others by keeping every element
either in use or in the cache.
Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 18 May 2015 08:18:00 +0000 (10:18 +0200)]
lib: fix 32-bit build with debug enabled
When debug is enabled for 32 bits targets, it triggers some format
errors that are not visible in 64 bits. Fix them by using the proper
format from inttypes.h or the proper cast.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 18 May 2015 08:18:01 +0000 (10:18 +0200)]
examples: add dependencies for timer and vm_power_manager
Do not compile these examples if the related dpdk option is not
enabled, as it's done for other examples. It allows to build
the examples directory with a reduced dpdk configuration.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 18 May 2015 08:17:59 +0000 (10:17 +0200)]
examples/netmap: fix build for x32 ABI
Fix a cast issue:
examples/netmap_compat/lib/compat_netmap.c:827:10: error: cast to
pointer from integer of different size [-Werror=int-to-pointer-cast]
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 18 May 2015 08:17:58 +0000 (10:17 +0200)]
examples/bond: fix build with clang
Fix the following compilation error:
examples/bond/main.c:717:1: error: control reaches end of
non-void function [-Werror,-Wreturn-type]
The prompt() function does not return anything, so fix its prototype
to be void.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Thomas Monjalon [Tue, 19 May 2015 09:34:16 +0000 (11:34 +0200)]
examples/ip_pipeline: fix build with clang 3.6
This error is detected:
examples/ip_pipeline/cmdline.c:272:15: error: address of array
'params->file_path' will always evaluate to 'true'
if (!params->file_path) {
~~~~~~~~~^~~~~~~~~
file_path is an array in a structure so it's unneeded to check it.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Helin Zhang [Mon, 18 May 2015 15:40:56 +0000 (23:40 +0800)]
i40e/base: fix build with clang
When compiling with clang, it detects that a variable used for debug
is unused (debug_mask is never set):
lib/librte_pmd_i40e/i40e/i40e_nvm.c:708:20: error: unused variable
'i40e_nvm_update_state_str' [-Werror,-Wunused-variable]
STATIC const char *i40e_nvm_update_state_str[] = {
^
As we are not supposed to modify the base driver (except for update
synchronization from Intel), it was ignored with GCC thanks to the
option -Wno-unused-variable but clang was forgotten.
Fixes:
6b5aaf47d571 ("i40e/base: replace NVM debug logs")
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Tetsuya Mukawa <mukawa@igel.co.jp>