#
29bb154f |
| 20-Oct-2019 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: fix setting MTU
New MTU value is not propagated to vport in HW when MTU update request is sent while ports are stopped.
This patch fixes the logic error for above mentioned condition.
Fi
net/qede: fix setting MTU
New MTU value is not propagated to vport in HW when MTU update request is sent while ports are stopped.
This patch fixes the logic error for above mentioned condition.
Fixes: d121a6b5f781 ("net/qede: fix VF MTU update") Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com> Reviewed-by: Rasesh Mody <rmody@marvell.com>
show more ...
|
#
2b5243d7 |
| 06-Oct-2019 |
Rasesh Mody <rmody@marvell.com> |
net/qede: print adapter info during init failure
Dump the info logs banner with available information in case of device initialization failure.
Signed-off-by: Rasesh Mody <rmody@marvell.com>
|
#
ca041cd4 |
| 24-Sep-2019 |
Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> |
ethdev: change allmulticast callbacks to return status
Enabling/disabling of allmulticast mode is not always successful and it should be taken into account to be able to handle it properly.
When co
ethdev: change allmulticast callbacks to return status
Enabling/disabling of allmulticast mode is not always successful and it should be taken into account to be able to handle it properly.
When correct return status is unclear from driver code, -EAGAIN is used.
Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
show more ...
|
#
9970a9ad |
| 06-Sep-2019 |
Igor Romanov <igor.romanov@oktetlabs.ru> |
ethdev: make stats and xstats reset callbacks return int
Change return value of the callbacks from void to int. Make implementations across all drivers return negative errno values in case of error
ethdev: make stats and xstats reset callbacks return int
Change return value of the callbacks from void to int. Make implementations across all drivers return negative errno values in case of error conditions.
Both callbacks are updated together because a large number of drivers assign the same function to both callbacks.
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
9039c812 |
| 14-Sep-2019 |
Andrew Rybchenko <arybchenko@solarflare.com> |
ethdev: change promiscuous callbacks to return status
Enabling/disabling of promiscuous mode is not always successful and it should be taken into account to be able to handle it properly.
When corr
ethdev: change promiscuous callbacks to return status
Enabling/disabling of promiscuous mode is not always successful and it should be taken into account to be able to handle it properly.
When correct return status is unclear from driver code, -EAGAIN is used.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Matan Azrad <matan@mellanox.com> Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
show more ...
|
#
bdad90d1 |
| 12-Sep-2019 |
Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> |
ethdev: change device info get callback to return int
Change eth_dev_infos_get_t return value from void to int. Make eth_dev_infos_get_t implementations across all drivers to return negative errno v
ethdev: change device info get callback to return int
Change eth_dev_infos_get_t return value from void to int. Make eth_dev_infos_get_t implementations across all drivers to return negative errno values if case of error conditions.
Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
2c0784eb |
| 12-Sep-2019 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: implement flow drop action
Add support to configure drop action in rte_flow infrastructure and add counter for dropped packets due to this filter action "rx_gft_filter_drop".
Also, update
net/qede: implement flow drop action
Add support to configure drop action in rte_flow infrastructure and add counter for dropped packets due to this filter action "rx_gft_filter_drop".
Also, update supported flows and actions in qede guide.
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
show more ...
|
#
0aa3e7b9 |
| 12-Sep-2019 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: fix stats flow as per new allocation method
As per new method, need to consider hw stats of queues from both engines. This patch fixes the stats collection flow accordingly.
Fixes: 2af14c
net/qede: fix stats flow as per new allocation method
As per new method, need to consider hw stats of queues from both engines. This patch fixes the stats collection flow accordingly.
Fixes: 2af14ca79c0a ("net/qede: support 100G") Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
show more ...
|
#
235cbe4c |
| 12-Sep-2019 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: fix RSS configuration as per new allocation method
With old design, RETA was configured in round-robin fashion since queue allocation was distributed across both engines alternately. Now,
net/qede: fix RSS configuration as per new allocation method
With old design, RETA was configured in round-robin fashion since queue allocation was distributed across both engines alternately. Now, we need to configure RETA symmetrically on both engines since both engines have same number of queues.
Fixes: 2af14ca79c0a ("net/qede: support 100G") Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
show more ...
|
#
8de0c420 |
| 12-Sep-2019 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: fix odd number of queues usage in 100G mode
As per HW design of 100Gb mode, device internally uses 2 engines (eng0 and eng1), and both engines need to be configured symmetrically. Based on
net/qede: fix odd number of queues usage in 100G mode
As per HW design of 100Gb mode, device internally uses 2 engines (eng0 and eng1), and both engines need to be configured symmetrically. Based on this requirement, driver design chose an approach to allow user to allocate only even number of queues and split those queues on both engines equally.
This approach puts a limitation on number of queues to be allocated - i.e. user can't configure odd number of queues on 100Gb mode. OVS configures DPDK port with 1 rxq and 1 txq, which causes initialization of qede port to fail.
Issue is fixed by changing the implementation of queue allocation and assignment to hw engines only for 100Gb devices and allowing user to configure odd number queues.
New approach works as below - - Create 'struct qede_fastpath_cmt' to hold hw queue pair of both engines and provide it to rte_ethdev's Rx/Tx queues structure. - So ethdev will see only one queue for underlying queue pair created for hw engine pair. - Install separate Rx/Tx data path handlers for 100Gb mode and regular mode - Rx/Tx handlers for 100Gb mode will split packet processing across both engines by providing hw queue structures from 'struct qede_fastpath_cmt' passed by Rx/Tx callbacks to respective engines.
Fixes: 2af14ca79c0a ("net/qede: support 100G") Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
show more ...
|
#
6bee9d5f |
| 23-Jul-2019 |
Nithin Dabilpuram <ndabilpuram@marvell.com> |
drivers/net: use ack in interrupt handlers
Replace rte_intr_enable() with rte_intr_ack() API for acking an interrupt in interrupt handlers and rx_queue_intr_enable() callbacks of PMD's.
This is inl
drivers/net: use ack in interrupt handlers
Replace rte_intr_enable() with rte_intr_ack() API for acking an interrupt in interrupt handlers and rx_queue_intr_enable() callbacks of PMD's.
This is inline with original intent of this change in PMDs to ack interrupts after handling is completed if device is backed by UIO, IGB_UIO or VFIO(with INTx).
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Signed-off-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Shahed Shaikh <shshaikh@marvell.com> Tested-by: Shahed Shaikh <shshaikh@marvell.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
b76fafb1 |
| 22-Jul-2019 |
David Marchand <david.marchand@redhat.com> |
eal: fix IOVA mode selection as VA for PCI drivers
The incriminated commit broke the use of RTE_PCI_DRV_IOVA_AS_VA which was intended to mean "driver only supports VA" but had been understood as "dr
eal: fix IOVA mode selection as VA for PCI drivers
The incriminated commit broke the use of RTE_PCI_DRV_IOVA_AS_VA which was intended to mean "driver only supports VA" but had been understood as "driver supports both PA and VA" by most net drivers and used to let dpdk processes to run as non root (which do not have access to physical addresses on recent kernels).
The check on physical addresses actually closed the gap for those drivers. We don't need to mark them with RTE_PCI_DRV_IOVA_AS_VA and this flag can retain its intended meaning. Document explicitly its meaning.
We can check that a driver requirement wrt to IOVA mode is fulfilled before trying to probe a device.
Finally, document the heuristic used to select the IOVA mode and hope that we won't break it again.
Fixes: 703458e19c16 ("bus/pci: consider only usable devices for IOVA mode")
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com> Tested-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
8db9a314 |
| 19-Jun-2019 |
Stephen Hemminger <stephen@networkplumber.org> |
net/qede: fix warnings from invalid assert
This driver had a bogus assert which could never happen. This triggers "expression is always false warnings" with some compilers which causes build failure
net/qede: fix warnings from invalid assert
This driver had a bogus assert which could never happen. This triggers "expression is always false warnings" with some compilers which causes build failure. Just remove it.
Fixes: 2af14ca79c0a ("net/qede: support 100G") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Rasesh Mody <rmody@marvell.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
#
35b2d13f |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether defines
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_C
net: add rte prefix to ether defines
Add 'RTE_' prefix to defines: - rename ETHER_ADDR_LEN as RTE_ETHER_ADDR_LEN. - rename ETHER_TYPE_LEN as RTE_ETHER_TYPE_LEN. - rename ETHER_CRC_LEN as RTE_ETHER_CRC_LEN. - rename ETHER_HDR_LEN as RTE_ETHER_HDR_LEN. - rename ETHER_MIN_LEN as RTE_ETHER_MIN_LEN. - rename ETHER_MAX_LEN as RTE_ETHER_MAX_LEN. - rename ETHER_MTU as RTE_ETHER_MTU. - rename ETHER_MAX_VLAN_FRAME_LEN as RTE_ETHER_MAX_VLAN_FRAME_LEN. - rename ETHER_MAX_VLAN_ID as RTE_ETHER_MAX_VLAN_ID. - rename ETHER_MAX_JUMBO_FRAME_LEN as RTE_ETHER_MAX_JUMBO_FRAME_LEN. - rename ETHER_MIN_MTU as RTE_ETHER_MIN_MTU. - rename ETHER_LOCAL_ADMIN_ADDR as RTE_ETHER_LOCAL_ADMIN_ADDR. - rename ETHER_GROUP_ADDR as RTE_ETHER_GROUP_ADDR. - rename ETHER_TYPE_IPv4 as RTE_ETHER_TYPE_IPv4. - rename ETHER_TYPE_IPv6 as RTE_ETHER_TYPE_IPv6. - rename ETHER_TYPE_ARP as RTE_ETHER_TYPE_ARP. - rename ETHER_TYPE_VLAN as RTE_ETHER_TYPE_VLAN. - rename ETHER_TYPE_RARP as RTE_ETHER_TYPE_RARP. - rename ETHER_TYPE_QINQ as RTE_ETHER_TYPE_QINQ. - rename ETHER_TYPE_ETAG as RTE_ETHER_TYPE_ETAG. - rename ETHER_TYPE_1588 as RTE_ETHER_TYPE_1588. - rename ETHER_TYPE_SLOW as RTE_ETHER_TYPE_SLOW. - rename ETHER_TYPE_TEB as RTE_ETHER_TYPE_TEB. - rename ETHER_TYPE_LLDP as RTE_ETHER_TYPE_LLDP. - rename ETHER_TYPE_MPLS as RTE_ETHER_TYPE_MPLS. - rename ETHER_TYPE_MPLSM as RTE_ETHER_TYPE_MPLSM. - rename ETHER_VXLAN_HLEN as RTE_ETHER_VXLAN_HLEN. - rename ETHER_ADDR_FMT_SIZE as RTE_ETHER_ADDR_FMT_SIZE. - rename VXLAN_GPE_TYPE_IPV4 as RTE_VXLAN_GPE_TYPE_IPV4. - rename VXLAN_GPE_TYPE_IPV6 as RTE_VXLAN_GPE_TYPE_IPV6. - rename VXLAN_GPE_TYPE_ETH as RTE_VXLAN_GPE_TYPE_ETH. - rename VXLAN_GPE_TYPE_NSH as RTE_VXLAN_GPE_TYPE_NSH. - rename VXLAN_GPE_TYPE_MPLS as RTE_VXLAN_GPE_TYPE_MPLS. - rename VXLAN_GPE_TYPE_GBP as RTE_VXLAN_GPE_TYPE_GBP. - rename VXLAN_GPE_TYPE_VBNG as RTE_VXLAN_GPE_TYPE_VBNG. - rename ETHER_VXLAN_GPE_HLEN as RTE_ETHER_VXLAN_GPE_HLEN.
Do not update the command line library to avoid adding a dependency to librte_net.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
538da7a1 |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether functions
Add 'rte_' prefix to functions: - rename is_same_ether_addr() as rte_is_same_ether_addr(). - rename is_zero_ether_addr() as rte_is_zero_ether_addr(). - rename
net: add rte prefix to ether functions
Add 'rte_' prefix to functions: - rename is_same_ether_addr() as rte_is_same_ether_addr(). - rename is_zero_ether_addr() as rte_is_zero_ether_addr(). - rename is_unicast_ether_addr() as rte_is_unicast_ether_addr(). - rename is_multicast_ether_addr() as rte_is_multicast_ether_addr(). - rename is_broadcast_ether_addr() as rte_is_broadcast_ether_addr(). - rename is_universal_ether_addr() as rte_is_universal_ether_addr(). - rename is_local_admin_ether_addr() as rte_is_local_admin_ether_addr(). - rename is_valid_assigned_ether_addr() as rte_is_valid_assigned_ether_addr(). - rename eth_random_addr() as rte_eth_random_addr(). - rename ether_addr_copy() as rte_ether_addr_copy(). - rename ether_format_addr() as rte_ether_format_addr().
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
6d13ea8e |
| 21-May-2019 |
Olivier Matz <olivier.matz@6wind.com> |
net: add rte prefix to ether structures
Add 'rte_' prefix to structures: - rename struct ether_addr as struct rte_ether_addr. - rename struct ether_hdr as struct rte_ether_hdr. - rename struct vlan_
net: add rte prefix to ether structures
Add 'rte_' prefix to structures: - rename struct ether_addr as struct rte_ether_addr. - rename struct ether_hdr as struct rte_ether_hdr. - rename struct vlan_hdr as struct rte_vlan_hdr. - rename struct vxlan_hdr as struct rte_vxlan_hdr. - rename struct vxlan_gpe_hdr as struct rte_vxlan_gpe_hdr.
Do not update the command line library to avoid adding a dependency to librte_net.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
6723c0fc |
| 03-Apr-2019 |
Bruce Richardson <bruce.richardson@intel.com> |
replace snprintf with strlcpy
Do a global replace of snprintf(..."%s",...) with strlcpy, adding in the rte_string_fns.h header if needed. The function changes in this patch were auto-generated via
replace snprintf with strlcpy
Do a global replace of snprintf(..."%s",...) with strlcpy, adding in the rte_string_fns.h header if needed. The function changes in this patch were auto-generated via command:
spatch --sp-file devtools/cocci/strlcpy.cocci --dir . --in-place
and then the files edited using awk to add in the missing header:
gawk -i inplace '/include <rte_/ && ! seen { \ print "#include <rte_string_fns.h>"; seen=1} {print}'
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
7aac5899 |
| 08-Mar-2019 |
Kevin Traynor <ktraynor@redhat.com> |
net/qede: support IOVA VA mode
Set RTE_PCI_DRV_IOVA_AS_VA in drv_flags. This allows initializing qede PMD as non-root also on Linux v4.x, where /proc/self/pagemap can't be acccessed without CAP_SYS_
net/qede: support IOVA VA mode
Set RTE_PCI_DRV_IOVA_AS_VA in drv_flags. This allows initializing qede PMD as non-root also on Linux v4.x, where /proc/self/pagemap can't be acccessed without CAP_SYS_ADMIN privileges.
The flag was introduced generically but not in pmds in: commit 815c7deaed2d ("pci: get IOMMU class on Linux")
Cc: stable@dpdk.org
Acked-by: Shahed Shaikh <shshaikh@marvell.com> Acked-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
show more ...
|
#
520dd992 |
| 28-Oct-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
drivers: prefix global variables with module name
Some global variables are defined with generic names, add component name as prefix to variables to prevent collusion with application variables.
Si
drivers: prefix global variables with module name
Some global variables are defined with generic names, add component name as prefix to variables to prevent collusion with application variables.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Tianfei Zhang <tianfei.zhang@intel.com>
show more ...
|
#
b74fd6b8 |
| 28-Oct-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
add missing static keyword to globals
Some global variables can indeed be static, add static keyword to them.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Jerin Jacob <jerin.jacob
add missing static keyword to globals
Some global variables can indeed be static, add static keyword to them.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
show more ...
|
#
e16adf08 |
| 19-Oct-2018 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: free all common data when releasing port
This is a clean-up of common ethdev data freeing. All data freeing are moved to rte_eth_dev_release_port() and done only in case of primary process.
ethdev: free all common data when releasing port
This is a clean-up of common ethdev data freeing. All data freeing are moved to rte_eth_dev_release_port() and done only in case of primary process.
It is probably fixing some memory leaks for PMDs which were not freeing all data.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
dcf3d57f |
| 12-Oct-2018 |
Stephen Hemminger <stephen@networkplumber.org> |
net/qede: remove invalid config option checks
Now that logging of initialization is controlled by dynamic debug level, remove the #ifdef for RTE_LIBRTE_QEDE_DEBUG_INIT since that config option does
net/qede: remove invalid config option checks
Now that logging of initialization is controlled by dynamic debug level, remove the #ifdef for RTE_LIBRTE_QEDE_DEBUG_INIT since that config option does not exist in common_base and is not documented.
Fixes: 69b6573980c1 ("net/qede: implement dynamic logging") Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
ad4d092b |
| 08-Sep-2018 |
Shahed Shaikh <shahed.shaikh@cavium.com> |
net/qede: support device reset
Implement eth_dev_ops->dev_reset callback.
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
|
#
3f373e1a |
| 08-Sep-2018 |
Shahed Shaikh <shahed.shaikh@cavium.com> |
net/qede: support Rx descriptor status
This patch implement eth_dev_ops->rx_descriptor_status callback. Walk through receive completion ring to calculate receive descriptors used by firmware and the
net/qede: support Rx descriptor status
This patch implement eth_dev_ops->rx_descriptor_status callback. Walk through receive completion ring to calculate receive descriptors used by firmware and then provide the status of offset accordingly.
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
show more ...
|
#
318d7da3 |
| 08-Sep-2018 |
Shahed Shaikh <shahed.shaikh@cavium.com> |
net/qede: fix Rx buffer size calculation
- HW does not include CRC in received frame when passed to host, so no need to consider CRC length while calculating Rx buffer size. - In scattered Rx m
net/qede: fix Rx buffer size calculation
- HW does not include CRC in received frame when passed to host, so no need to consider CRC length while calculating Rx buffer size. - In scattered Rx mode, driver may allocate Rx buffer larger than the size of mbuf because it tries to adjust the buffer size to cache line size by ceiling it. Fix this by flooring the size instead of ceiling. - Consider the rule imposed by HW regarding the minimum size of Rx buffer in scattered Rx mode - (MTU + Maximum L2 Header Size + 2) / ETH_RX_MAX_BUFF_PER_PKT
Fixes: f6033f2497e7 ("net/qede: fix minimum buffer size and scatter Rx check") CC: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
show more ...
|