Commit Graph

1505 Commits

Author SHA1 Message Date
Ouyang Changchun
1372a029fb ixgbe/base: support kx4 phy
Setup kx4 phy for x550em;

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:06:00 +02:00
Ouyang Changchun
76d5b807ff ixgbe/base: new X557 phy
Add new phy ID: X557_PHY_ID, and implement its internal setup function and external init function.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
3b3a1423b1 ixgbe/base: remove lan id from phy struct
Remove lan_id from struct ixgbe_phy_info.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
3cc1d6220a ixgbe/base: set X540 phy power
Define the function of setting phy power;
Set copper phy power for x540.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
05ff782f67 ixgbe/base: extract management capability check
Define function ixgbe_mng_present to check if management capability is present or not.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
4cf0bb32a9 ixgbe/base: get X550 bus info
New function to get bus information for x550em;

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
20aa9f0c53 ixgbe/base: fix X550 check
Update the macro to read/write iosf sb stat.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
585abe0bb1 ixgbe/base: fix X550 CS4227 address
Update the address of IXGBE_CS4227.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
146a1c46a1 ixgbe/base: fix X550 init early return
It could early return according to read status.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
dd9f7f281a ixgbe/base: fix X550 link speed
Remove unnecessary '|' for the link speed.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
5c77a5f35d ixgbe/base: rework link speed branches
Use switch-case statement to replace if-else statement.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
927318e854 ixgbe/base: support 5G link speed
Support 5G link speed for X550.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:59 +02:00
Ouyang Changchun
eb120fae84 ixgbe/base: fix mac type checks
It needs '>=' rather than '=='.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:58 +02:00
Ouyang Changchun
4dc6059110 ixgbe/base: fix Tx pending clearing
Wait for a last completion before clearing buffers,
and before proceeding, it needs make sure that the PCIe block does not have
transactions pending.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:58 +02:00
Ouyang Changchun
7b21cadfd6 ixgbe/base: fix bus type overwrite
It needs check if the bus type is the unknown type or not.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:58 +02:00
Ouyang Changchun
8dba79550a ixgbe/base: fix SFP probing
LAN ID is needed for i2c access, so move it before reading I2C eeprom.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:58 +02:00
Ouyang Changchun
5143c92de8 ixgbe/base: set SFP probing retries
Check if SFP is detected or not.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 10:05:58 +02:00
Ouyang Changchun
e0ba4e7760 ixgbe/base: i2c bit-bang mode
Support the bit-bang mode on X550;
And negate I2C output enable;

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 09:55:24 +02:00
Ouyang Changchun
9389558241 ixgbe/base: i2c combined functions
New API to perform I2C read combined operation.
New API to perform I2C write combined operation.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 09:14:16 +02:00
Ouyang Changchun
08e553a21f ixgbe/base: use another log macro
Use DEBUGOUT to replace ERROR_REPORT1.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 08:21:38 +02:00
Ouyang Changchun
5d39a7ff0b ixgbe/base: minor changes
Remove '&' before function name;
Adjust the spaces etc.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
2015-04-27 08:21:37 +02:00
Bruce Richardson
3c0c807038 net: remove unneeded include
There are no memcpy functions in rte_ip.h so there is no need to include
rte_memcpy.h in that file.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-04-23 15:11:12 +02:00
Stephen Hemminger
d6a9090d48 pci: allow const pci address parameter
probe and close both don't modify the rte_pci_addr structure
that is passed.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2015-04-23 14:34:43 +02:00
Stephen Hemminger
6065355a03 pci: make device id tables const
The PCI device id table is immutable and should be made const
in all drivers. The pseudo drivers can initialize their local
copy as necessary.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2015-04-20 19:58:54 +02:00
Stephen Hemminger
be85defeee ethdev: remove unnecessary paren on return
The Linux style is not to put extra useless paren's around
the expression passed to return statement.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2015-04-20 19:48:59 +02:00
Stephen Hemminger
8ca5ce4b7b ethdev: make tables const
The statistics tables and null mac address should be immutable.
Fix up get_addr routines to accept const args.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-04-20 19:29:46 +02:00
Stephen Hemminger
9280512d5b ethdev: remove extra inline
There is no reason to inline functions that are not in the critical
path.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-04-20 19:28:53 +02:00
Sujith Sankar
e74a759a72 enic: migrate flow director filtering to new API
This patch helps enic migrate to the new flow-director API.

It takes care of the following.
1.  The change in fdir_filter structure and stats structure
2.  DPDK interface functions in enic_ethdev.c
3.  ENIC driver functions that deal with the VIC adapter

Signed-off-by: Sujith Sankar <ssujith@cisco.com>
2015-04-20 15:36:07 +02:00
Adrien Mazarguil
2c46f7ffe1 enic: fix port id in received mbufs
This field is not supposed to contain the RX queue index. Applications can
rely on it to determine the port a given mbuf comes from.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Sujith Sankar <ssujith@cisco.com>
2015-04-20 15:21:31 +02:00
Thomas Monjalon
f12f13f2f6 use simple zero initializers
To initialize a structure with zeros, one field was explicitly set
to avoid "missing initializer" bug with old GCC (e.g. 4.4).
This warning is now disabled (commit <insertlater>) for old versions of GCC,
so the workarounds may be removed.

These initializers should not be needed for static variables but they
are still used to workaround an ICC bug (see commit b2595c4aa9).

There is one remaining exception where {0} initializer doesn't work cleanly,
even with recent GCC:
lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:735:9:
error: missing braces around initializer [-Werror=missing-braces]
  struct rte_mbuf mb_def = {0}; /* zeroed mbuf */

Tested with gcc-4.4.7 (CentOS), gcc-4.7.2 (Debian), gcc-4.9.2 (Arch),
clang-3.6.0 and icc-13.1.1.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Tested-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Tested-by: John McNamara <john.mcnamara@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Vlad Zolotarov <vladz@cloudius-systems.com>
2015-04-20 14:37:36 +02:00
Thomas Monjalon
e74c4e0938 mk: fix build with gcc 4.4 and clang
With GCC 4.4.7 from CentOS 6.5, the following errors arise:

lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function 'ixgbe_dev_rx_queue_setup':
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:2509: error: missing initializer
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:2509: error: (near initialization for 'dev_info.driver_name')

lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function 'ixgbe_set_rsc':
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:4072: error: missing initializer
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:4072: error: (near initialization for 'dev_info.driver_name')

lib/librte_pmd_ixgbe/ixgbe_rxtx.c: In function 'ixgbe_recv_pkts_lro_single_alloc':
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1479: error: 'next_rsc_entry' may be used uninitialized in this function
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1480: error: 'next_rxe' may be used uninitialized in this function

The "missing initializer" warning is a GCC bug which seems fixed in 4.7.
The same warning is thrown by clang.
The "may be used uninitialized" warning is another GCC bug which seems fixed in 4.7.

Fixes: 8eecb3295a ("ixgbe: add LRO support")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Vlad Zolotarov <vladz@cloudius-systems.com>
2015-04-20 14:37:22 +02:00
Vlad Zolotarov
8eecb3295a ixgbe: add LRO support
- Only x540 and 82599 devices support LRO.
    - Add the appropriate HW configuration.
    - Add RSC aware rx_pkt_burst() handlers:
       - Implemented bulk allocation and non-bulk allocation versions.
       - Add LRO-specific fields to rte_eth_rxmode, to rte_eth_dev_data
         and to ixgbe_rx_queue.
       - Use the appropriate handler when LRO is requested.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-04-13 23:03:46 +02:00
Vlad Zolotarov
7b5b00e7f1 ixgbe: code refactoring
- ixgbe_rx_alloc_bufs():
      - Reset the rte_mbuf fields only when requested.
      - Take the RDT update out of the function.
      - Add the stub when RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC is not defined.
   - ixgbe_recv_scattered_pkts():
      - Take the code that updates the fields of the cluster's HEAD buffer into
        the inline function.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-04-13 22:55:33 +02:00
Vlad Zolotarov
9820937f8a ixgbe: cleanups
- Removed the not needed casting.
   - ixgbe_dev_rx_init(): shorten the lines by defining a local alias variable to access
                          &dev->data->dev_conf.rxmode.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-04-13 22:51:05 +02:00
Stephen Hemminger
2c62fae0a9 ethdev: make dev_ops const
The ethernet device ops function table should be made const for
safety and security.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2015-04-13 22:50:10 +02:00
Stephen Hemminger
80d8c6a5bb pmd: remove useless null checks before rte_free
Since rte_free accept NULL and does nothing, better to save
space and remove these useless checks.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2015-04-13 22:50:10 +02:00
Thomas Monjalon
b652e6cdff mk: remove uio suffix from virtio pmd
The virtio pmd is not restricted to uio anymore.

Fixes: da978dfdc4 ("virtio: use port IO to get PCI resource")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
2015-04-13 21:49:04 +02:00
Thomas Monjalon
277d8a3e0b enic: disable debug traces
The function name is printed in each enic_ethdev function.
Disable it by default with a new build option.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Sujith Sankar <ssujith@cisco.com>
Reviewed-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-04-13 21:48:27 +02:00
Thomas Monjalon
32962fb1b4 version: 2.1.0-rc0
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-04-03 18:20:17 +02:00
Thomas Monjalon
493db80afd version: 2.0.0
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-04-03 16:13:45 +02:00
Thomas Monjalon
2ee98e69e1 mbuf: clean old refcnt option
CONFIG_RTE_MBUF_SCATTER_GATHER was renamed into CONFIG_RTE_MBUF_REFCNT
by commit 62814bc2e9 and removed by commit 4769bc5a27.
Some traces remain because of delayed patches.

It can also be removed from doxygen config.
It is now poisoned in rte_mbuf.h to warn any misuse.

Fixes: d0dff9ba44 ("doc: sample application user guide")
Fixes: fc1f2750a3 ("doc: programmers guide")
Fixes: 4769bc5a27 ("mbuf: remove build option to disable refcnt")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
2015-04-03 15:55:40 +02:00
Cunming Liang
263333bbb7 i40e: fix link status timeout
API *rte_eth_link_get* expect to call a wait to complete link_update.
That's the difference between *rte_eth_link_get_nowait*.
The patch fixes the issue that i40e link_update ignores the wait_to_complete flag.
The issue impacts those applications calling rte_eth_link_get to get wrong intermediate link status.

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-04-01 21:45:44 +02:00
Jingjing Wu
b9a8b2f809 i40e: fix out of bound read
Klocwork reports array 'src_offset' may use index 16.
In function i40e_srcoff_to_flx_pit, index j + 1 can reach I40E_FDIR_MAX_FLEX_LEN.
This patch fixes this issue to avoid array bound.

Test report: http://www.dpdk.org/ml/archives/dev/2015-March/016030.html

Fixes: d8b90c4eab ("i40e: take flow director flexible payload configuration")

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
2015-04-01 21:45:10 +02:00
Thomas Monjalon
b5a1f1ae2f pci: rename passthrough driver to kernel driver
Kernel driver (kdrv) seems easier to understand than
passthrough driver (pt_driver). It's also more generic
as a PMD could run on top of any PCI kernel driver if
it would offer such support.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: David Marchand <david.marchand@6wind.com>
2015-04-01 21:12:46 +02:00
Thomas Monjalon
f14db469be version: 2.0.0-rc3
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-03-31 03:34:24 +02:00
Shelton Chia
74144773b9 e1000: fix power down of fiber serdes link
When stopping interface, only shutdown method for copper cable was called.

Signed-off-by: Shelton Chia <jiaxt@sinogrid.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-03-30 22:30:26 +02:00
Changchun Ouyang
880dcec287 virtio: fix crash in secondary process
It needs Rx function even in the case of secondary process,
and it also needs check if it supports mergeable feature or not.

Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
2015-03-30 22:10:23 +02:00
John McNamara
467465d86d ethdev: add packet count parameter to Rx callback
Added a parameter to the RX callback to pass in the number of
available RX packets in addition to the number of dequeued packets.
This provides the RX callback functions with additional information
that can be used to decide how packets from a burst are handled.

The TX callback doesn't require this additional parameter so the RX
and TX callbacks no longer have the same function parameters. As such
the single RX/TX callback has been refactored into two separate callbacks.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2015-03-30 21:51:48 +02:00
Maciej Gajdzica
444b872a76 enic: fix possible data loss
Field ig_vlan_strip_en in struct enic type is int. It is used only by
function enic_set_nic_cfg which expects uint_8 as argument. Changed type
of the field to prevent possible loss of precision.

Macro GET_CONFIG passes result of sizeof operation to the function
vnic_dev_spec. This function expects parameter of type unsigned int.
Changed that parameter type to size_t in function declaration to prevent
possible data loss.

Define ENIC_ALIGN is used only by function rte_memzone_reserve_aligned,
which expects argument of type unsigned. Defined constant is of type
unsigned long long. Changed type to unsigned long to prevent possible
loss of precision.

In function writeq is written in two 32-bit long registers with writel
function. When trying to write val >> 32, static code analysis tool
reports that 64-bit value is passed to function expecting 32-bit value.
Added cast to clear this warning.

Issues found with static code analysis tool.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
2015-03-30 19:10:15 +02:00
Maciej Gajdzica
4ad7a16a13 virtio: fix type for queue id
Changed vtpci_queue_idx type in function virtio_dev_queue_setup from
uint8_t to uint16_t to prevent possible data loss. Also changed type of
head variable in function virtio_send_command from uint32_t to uint16_t.

Variable rcv_cnt declared in function virtio_recv_mergeable_pkts was of
type uint32_t. It was used by virtqueue_dequeue_burst_rx function, which
expects argument of type uint16_t. Changed rcv_cnt variable type to
uint16_t to prevent possible data loss.

Issues found with static code analysis tool.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
2015-03-30 19:10:15 +02:00