Commit Graph

15011 Commits

Author SHA1 Message Date
Rasesh Mody
54f74d6a6a net/qede/base: get pre-negotiated OEM values
Request management FW for OEM values, which are negotiated prior to
the driver load by sending the GET_OEM_UPDATES command after both
engines are initialized.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
15dfc1ecb3 net/qede/base: support periodic Doorbell Recovery
Add support for periodic Doorbell Recovery.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
cf84de8657 net/qede/base: support VF min rate
Add support for SRIOV vf min rate configuration.
Fix return code for ecore_iov_get_vf_min_rate().

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
9585053b10 net/qede/base: add pretend function for port/PF
Add a pretend function for port/PF, pretend to another port and another
function when accessing the ptt window

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
7b49adea80 net/qede/base: adjust queue manager idx greater than max
Modified queue manager getter APIs to cycle through their range if
index is higher than max. This prevents accessing index out of bounds.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
4eae6b014c net/qede/base: add error handling for mutex allocation
Add error handling for mutex allocation failure

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
bf03492a08 net/qede/base: add mf-bit/API for FIP special mode
Add mf-bit/API for FIP special mode.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
0b855a345e net/qede/base: add API to update FW RSS indirection table
Added ecore_update_eth_rss_ind_table_entry() api to update FW RSS
indirection table entry according to new interface of FW 8.37.x.x.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
23c5600a88 net/qede/base: workaround to indicate SHMEM data ready
The driver can notify that there was an MCP reset and read the SHMEM
values before the management FW has completed initializing them.
As a temporary solution, the "sup_msgs" field is used as a SHMEM data
ready indication. This should be replaced with an actual indication
when it is provided by the management FW.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
cbc2359676 net/qede/base: add DPC sync after PF stop
Add DPC sync after stopping the physical funciton to allow clean up of
asyncronous events. Post this the driver don't expect the FW to send
async events.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
f32557f955 net/qede/base: check for EDPM enabled in DB recovery
Add a check for EDPM enabled before flushing doorbell recovery queue.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
3c36168618 net/qede/base: upgrade to FW 8.37.7.0
This patch adds changes to base driver for upgrading to 8.37.3.0 FW.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Xiaoxin Peng
a830900063 net/bnxt: reduce polling interval for valid bit
Change polling interval for valid bit in bnxt_hwrm_send_message
Poll every 1us instead of 600us.

Fixes: 804e746c7b ("net/bnxt: add hardware resource manager init code")
Cc: stable@dpdk.org

Signed-off-by: Xiaoxin Peng <xiaoxin.peng@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
6f93b2aa2d net/bnxt: remove excess log messages
When the firmware version and the driver HWRM version do not match,
we are logging some messages. These messages unnecessarily clutter
the logs and can add to the noise. We are logging the HWRM version
and the firmware version anyway. The difference in version numbers
can be gleaned from that. Removing the remaining log messages.

Fixes: 804e746c7b ("net/bnxt: add hardware resource manager init code")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Bei Sun
3153ec8bd1 net/bnxt: set VLAN strip mode before default VNIC cfg
Firmware sets pf pair in default VNIC cfg. If the VLAN strip
setting is not available at this time, it will not be
configured correctly in the CFA.
Set the desired VLAN strip mode before default VNIC configuration.

Fixes: 7fe5668d2e ("net/bnxt: support VLAN filter and strip")
Cc: stable@dpdk.org

Signed-off-by: Bei Sun <bei.sun@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
5bf10cdb67 net/bnxt: set a VNIC as default only once
If a vnic is configured as default and the setting has not changed,
there is no need to issue this setting again to the FW.

Fixes: db678d5c2b ("net/bnxt: add HWRM VNIC configure")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
50d3c51bae net/bnxt: set MAC filtering as outer for non tunnel frames
We need to set HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_OUTERMOST bit in
L2_FILTER_ALLOC for filtering non-tunnel packets based on outermost MAC.

Fixes: f92735db1e ("net/bnxt: add L2 filter alloc/init/free")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Yongping Zhang
5f267bae3e net/bnxt: fix registration of VF async event completion ring
While registering vf's event completion ring to FW, use the wrong
macro, FW doesn't set up the event completion ring successfully,
VF can't receive any async event.

Fixes: 4535cad395 ("net/bnxt: handle VF/PF initialization appropriately")
Cc: stable@dpdk.org

Signed-off-by: Yongping Zhang <yongping.zhang@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
b42c15c83e net/bnxt: support trusted VF
In the current model, VFs are not trusted.
So it is not allowed to send many HWRM commands.
Newer firmware has added support to allow VF to be trusted.
Now the VF queries if it is a trusted entity and based on that
it can send HWRM commands to the firmware.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
2ecdf17442 net/bnxt: support enabling new mailbox channel
For hardware having multiple embedded management processors the firmware
has added support to indicate if the comm channel to the processor has
been enabled. If the channel is enabled, switch the CFA NTUPLE and EM
filtering commands to use the kong channel.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
f55e12f334 net/bnxt: support extended port counters
This patch adds support extended port statistics like COS bytes,
packets, XON -> XOFF and XOFF -> XON transitions in Tx and Rx path.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
757d6f6b4b net/bnxt: update HWRM version
Update the HWRM API to version 1.9.2.53

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Ajit Khaparde
80ad678ae7 net/bnxt: fix MTU setting
The HW can support maximum frame length of 9600 bytes.
And we are currently capping the max frame size to 9500 bytes.

Fixes: daef48efe5 ("net/bnxt: support set MTU")
Cc: stable@dpdk.org

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Somnath Kotur
63d086a52f net/bnxt: fix uninitialized pointer access in Tx
bnxt_start_xmit() was attempting to access an uninitialized ptr - txbd1
which would lead to segmentation fault.
Fix to initialize ptr to NULL and check for the same before access.

Fixes: f10258e39e ("net/bnxt: fix HW Tx checksum offload check")
Cc: stable@dpdk.org

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2018-10-11 18:53:48 +02:00
Somnath Kotur
51fafb89a9 net/bnxt: get rid of ff pools and use VNIC info array
There was no direct association between the rxq's VNIC and the
vnic_info[].
Explicitly associate the two in bnxt_mq_rx_configure().

Fixes: 0a256e4a54 ("net/bnxt: fix Rx ring count limitation")
Cc: stable@dpdk.org

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
2018-10-11 18:53:48 +02:00
John Daley
86df6c4e2f net/enic: support flow counter action
Support counter action for 1400 series adapters.

The adapter API for allocating and freeing counters is independent of
the adapter match/action API. If the filter action is requested, a
counter is first allocated and then assigned to the filter, and when
the filter is deleted, the counter must also be deleted.

Counters are DMAd to pre-allocated consistent memory periodically,
controlled by the define VNIC_FLOW_COUNTER_UPDATE_MSECS. The default is
100 milliseconds.

Signed-off-by: John Daley <johndale@cisco.com>
Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com>
2018-10-11 18:53:48 +02:00
John Daley
85b0ccec38 net/enic: fix flow API memory leak
rte_flow structures were not being freed when destroyed or flushed.

Fixes: 6ced137607 ("net/enic: flow API for NICs with advanced filters enabled")
Cc: stable@dpdk.org

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Signed-off-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
a9b58b15ed net/bnx2x: fix to add PHY lock
This patch adds phy_lock, acquire/release the lock when performing
PHY transactions. Without this fix driver can run into synchronization
issues with management FW when modifying PHY settings.

Fixes: 540a211084 ("bnx2x: driver core")
Cc: stable@dpdk.org

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
0f6ebeee24 net/bnx2x: fix call to link handling periodic function
If link handling periodic function is allowed to be called in interrupt
context, the periodic function can get called too frequently and exhaust
the retry credits to check link status.

This change makes sure link handling periodic function is not called in
interrupt context.

Fixes: 540a211084 ("bnx2x: driver core")
Cc: stable@dpdk.org

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
29822ca5cc net/bnx2x: fix to disable further interrupts
Fix to disable further fastpath/slowpath interrupts. These will be
enabled again by their respective handlers

Fixes: 540a211084 ("bnx2x: driver core")
Cc: stable@dpdk.org

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
d5eb8edca2 net/bnx2x: update link/PHY management
This patch has changes to update the link/PHY management (elink) code
to the latest.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Rasesh Mody
ba7eeb035a net/bnx2x: fix logging to include device name
Fix PMD logging scheme to include device name in the messages printed.

Fixes: 540a211084 ("bnx2x: driver core")
Cc: stable@dpdk.org

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2018-10-11 18:53:48 +02:00
Alejandro Lucero
f14a516898 net/nfp: fix RSS
Three problems are fixed in this patch:

 - RSS capabilities not advertised properly
 - RSS configuration just done for some RSS types
 - RSS hash match reported for just some RSS types

Fixes: 934e4c60fb ("nfp: add RSS")
Cc: stable@dpdk.org

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
2018-10-11 18:53:48 +02:00
Stephen Hemminger
9ba102f6b0 net/netvsc: check return from kvargs process
Should check return value from processing latency value.

Coverity issue: 322104
Fixes: a25d39a3eb ("net/netvsc: allow tuning latency with devargs")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
2018-10-11 18:53:48 +02:00
Igor Romanov
4e31ee26ed net/failsafe: report actual device capabilities
Failsafe device capabilities depend on supported by the failsafe
itself plus capabilities supported by sub-devices.
Make fs_dev_infos_get() take failsafe device capabilities into account.

Fixes: cac923cfea ("ethdev: support runtime queue setup")
Cc: stable@dpdk.org

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2018-10-11 18:53:48 +02:00
Hyong Youb Kim
308b514b8e net/enic: explicitly disable overlay offload
Reopening vNIC does not automatically disable overlay offload. If it
is previously enabled, it remains enabled even when the user restarts
DPDK and requests overlay offload to be disabled via devarg
disable-overlay=1. So explicitly disable overlay offload when
requested.

Fixes: 93fb21fdbe ("net/enic: enable overlay offload for VXLAN and GENEVE")
Cc: stable@dpdk.org

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Hyong Youb Kim
70401fd778 net/enic: add VLAN and csum offloads to simple Tx handler
Currently the simple Tx handler supports no offloads, which makes it
usable only for a small number of benchmarks. Add vlan and checksum
offloads to the handler, as cycles/packet increases only by about 3
cycles, and applications commonly use those offloads.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Hyong Youb Kim
828cf603a1 net/enic: do not use deprecated Tx VLAN packet flag
Replace PKT_TX_VLAN_PKT (deprecated) with PKT_TX_VLAN.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Hyong Youb Kim
fe5383d133 net/enic: set Rx VLAN offload flag for non-stripped packets
The NIC indicates VLAN TCI to the driver even when VLAN stripping is
disabled. The driver sets mbuf's vlan_tci but not PKT_RX_VLAN. Set
PKT_RX_VLAN to indicate that vlan_tci is valid.

Fixes: c6f4555074 ("net/enic: add ethernet VLAN packet type")
Cc: stable@dpdk.org

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Hyong Youb Kim
c0aae00d7d net/enic: enable IOVA mode
Cisco VIC models support RTE_IOVA_VA, so enable it. This change allows
the driver to work properly when --no-huge is used, in combination
with vfio and iommu.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Hyong Youb Kim
329380b3a1 net/enic: do not use non-standard integer types
Bugzilla ID: 39
Fixes: 9913fbb91d ("enic/base: common code")
Fixes: 322b355f21 ("net/enic/base: bring NIC interface functions up to date")
Cc: stable@dpdk.org

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
2018-10-11 18:53:48 +02:00
Stephen Hemminger
7d146e1769 net/netvsc: support multicast/promiscuous settings on VF
Provide API's to enable allmulticast and promiscuous in Netvsc PMD
with VF. This keeps the VF and PV path in sync.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
2018-10-11 18:53:48 +02:00
Xiaoyun Li
2e67a7fbf3 net/i40e: config flow director automatically
I40e driver needed users to config exact fdir mode to create rte_flow
rules but it shouldn't. This patch allows users to create rte_flow rules
without configuring fdir mode and let the driver config fdir automatically.
And remove the workaround in flow filtering example.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
2018-10-11 18:53:48 +02:00
Matthew Smith
64f1c8539c net/ixgbe: wait longer for link after fiber MAC setup
After setting up the link on a fiber port, the maximum wait time for
the link to come up is 500 ms in ixgbe_setup_mac_link_multispeed_fiber().
On an x550 SFP+ port, this is often not sufficiently long for the link
to come up. This can result in never being able to retrieve accurate
link status for the port using rte_eth_link_get_nowait().

Increase the maximum wait time in ixgbe_setup_mac_link_multispeed_fiber()
to 1 s.

Bugzilla ID: 69
Fixes: f3430431ab ("ixgbe/base: add SFP+ dual-speed support")
Cc: stable@dpdk.org

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-10-11 18:53:48 +02:00
Xiaoyun Li
12aa64d1f6 net/i40e: remove unnecessary interrupt enable
Since rte_intr_enable is called at init and start time. Remove it in
interrupt_action function to avoid too many system calls.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-10-11 18:53:48 +02:00
Xiaoyun Li
567dc50d62 net/ixgbe: remove unnecessary interrupt enable
Since rte_intr_enable is called at init and start time. Remove it in
interrupt_action function to avoid too many system calls.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
2018-10-11 18:53:48 +02:00
Qi Zhang
fbce6f71eb net/i40e/base: update version
Update share code release version in readme.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
2018-10-11 18:53:48 +02:00
Qi Zhang
5cea601bff net/i40e/base: add new TR bits used for cloud filters
There is a new set of TR bits that can be used when replacing
the cloud filters so add them in. Also added a check to make
sure that the replace cloud filters AQ command doesn't get
executed on an X722 since it is not supported there.

Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Andrey Chilikin <andrey.chilikin@intel.com>
Signed-off-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
2018-10-11 18:53:48 +02:00
Qi Zhang
a3aed72d40 net/i40e/base: add capability flag for stopping FW LLDP
Add HW capability flag to indicate that firmware supports stopping
LLDP agent. This feature has been added in FW API 1.7 for XL710
devices and 1.6 for X722. Also raise expected minor version number
for X722 FW API to 6.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
2018-10-11 18:53:48 +02:00
Qi Zhang
e508a5b155 net/i40e/base: wrap admin queue set/get PHY register funcs
These two functions are currently only used in the LED get/set
functions, which are not apart of the VF driver.  So the
i40e_aq_set/get_phy_register functions should be wrapped so they
can be removed from the VF driver.

This was brought up in the Linux community that these functions in
the VF driver had no callers in the tree, so they should be removed.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
2018-10-11 18:53:48 +02:00