#
7174c889 |
| 31-Jul-2024 |
Tathagat Priyadarshi <tathagat.dpdk@gmail.com> |
net/gve: fix queue setup and stop
Update the Tx/Rx queue setup/stop routines that are unique to DQO, so that they may be called for instances that use the DQO RDA format during dev start/stop
Fixes
net/gve: fix queue setup and stop
Update the Tx/Rx queue setup/stop routines that are unique to DQO, so that they may be called for instances that use the DQO RDA format during dev start/stop
Fixes: b044845bb015 ("net/gve: support queue start/stop") Cc: stable@dpdk.org
Signed-off-by: Tathagat Priyadarshi <tathagat.dpdk@gmail.com> Acked-by: Joshua Washington <joshwash@google.com>
show more ...
|
#
d67bce4b |
| 19-Jul-2024 |
Tathagat Priyadarshi <tathagat.dpdk@gmail.com> |
net/gve: support secondary process
The RSS support for GVE allows multiple CPU cores to handle the rx/tx queues as pollers. This requires initializing the eth_dev_ops and updating the RX/TX function
net/gve: support secondary process
The RSS support for GVE allows multiple CPU cores to handle the rx/tx queues as pollers. This requires initializing the eth_dev_ops and updating the RX/TX functions for these pollers.
Signed-off-by: Tathagat Priyadarshi <tathagat.dpdk@gmail.com> Acked-by: Rushil Gupta <rushilg@google.com> Acked-by: Joshua Washington <joshwash@google.com>
show more ...
|
#
cde01d16 |
| 17-Jul-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: support modifying ring size in GQ format
Before this patch, the GQ format only supported a static ring size provided by the device. Using the maximum and minimum ring sizes provided in the
net/gve: support modifying ring size in GQ format
Before this patch, the GQ format only supported a static ring size provided by the device. Using the maximum and minimum ring sizes provided in the modify_ring_size adminq command, this patch enables the ability to change the ring size within those bounds for the GQ queue format.
Note that the ring size must be a power of two in size, and any other value would fail.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
show more ...
|
#
eb8ec5c3 |
| 17-Jul-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: add minimum ring size device option
This change adds support for parsing the minimum ring size from the modify_ring_size device option. Like the maximum ring size, this field will help allo
net/gve: add minimum ring size device option
This change adds support for parsing the minimum ring size from the modify_ring_size device option. Like the maximum ring size, this field will help allow the alteration of the ring size on the GQ driver.
Note that it is optional whether the ring size is passed from the device or not. If the device does not pass minimum ring sizes, they are set to static values.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
show more ...
|
#
7f369975 |
| 13-Jun-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: change QPLs to be queue resources
Prior to this change, queue page lists (QPLs) were kept as device resources, being stored in the gve_priv struct. This does not make sense because each QPL
net/gve: change QPLs to be queue resources
Prior to this change, queue page lists (QPLs) were kept as device resources, being stored in the gve_priv struct. This does not make sense because each QPL inherently belongs to a single queue.
This change moves all QPL resources into the queues themselves, and couples QPL allocation/registration and de-registration/deallocation with the queue creation and destruction processes, respectively. Before this change, QPL structs part of gve_priv were allocated as part of driver initialization, which similarly does not make sense.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com>
show more ...
|
#
74d88d04 |
| 18-Jun-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
memzone: remove unnecessary null checks
The function rte_memzone_free() already checks if the argument is NULL. Add it to the coccinelle fix script and correct all the existing code.
Signed-off-by:
memzone: remove unnecessary null checks
The function rte_memzone_free() already checks if the argument is NULL. Add it to the coccinelle fix script and correct all the existing code.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
#
f2a9e162 |
| 14-Mar-2024 |
Rushil Gupta <rushilg@google.com> |
net/gve: add IPv4 checksum offloading capability
Gvnic's DQO format allows offloading IPv4 checksum. Made changes to Tx and Rx path to translate DPDK flags to descriptor for offloading (and vice-ver
net/gve: add IPv4 checksum offloading capability
Gvnic's DQO format allows offloading IPv4 checksum. Made changes to Tx and Rx path to translate DPDK flags to descriptor for offloading (and vice-versa). Add ptype adminq support to only add this flags for supported L3/L4 packet-types.
Signed-off-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Joshua Washington <joshwash@google.com>
show more ...
|
#
0d4ea0b3 |
| 31-Jan-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: support RSS redirection table update
This patch introduces support for updating the RSS redirection table in the GVE PMD through the implementation of rss_reta_update and rss_reta_query.
D
net/gve: support RSS redirection table update
This patch introduces support for updating the RSS redirection table in the GVE PMD through the implementation of rss_reta_update and rss_reta_query.
Due to an infrastructure limitation, the RSS hash key must be manually configured before the redirection table can be updated or queried. The redirection table is expected to be exactly 128 bytes.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|
#
63ef5456 |
| 31-Jan-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: support RSS configuration update
This patch adds support for updating the RSS hash key and hash fields in the GVE PMD through the implementation of rss_hash_update and rss_hash_conf_get.
T
net/gve: support RSS configuration update
This patch adds support for updating the RSS hash key and hash fields in the GVE PMD through the implementation of rss_hash_update and rss_hash_conf_get.
The RSS hash key for gVNIC is required to be 40 bytes. On initial configuration of the RSS hash key, the RSS redirection table will be set to a static default, using a round-robin approach for all queues. Note, however, that this patch does not include support for setting the redirection table explicitly. In dev_configure, if the static redirection table has been set, it will be updated to reflect the new queue count, if it has changed.
The RSS key must be set before any other RSS configuration can happen. As such, an attempt to set the hash types before the key is configured will fail.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|
#
d6ac6f45 |
| 31-Jan-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: add RSS helpers
This change includes a number of helper functions to facilitate RSS configuration on the GVE DPDK driver. These methods are declared in gve_rss.h.
Signed-off-by: Joshua Was
net/gve: add RSS helpers
This change includes a number of helper functions to facilitate RSS configuration on the GVE DPDK driver. These methods are declared in gve_rss.h.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|
#
61f77e67 |
| 31-Jan-2024 |
Joshua Washington <joshwash@google.com> |
net/gve: expose RSS offload capabilities
This patch communicates that the GVE driver supports RSS, along with the RSS offloads supported by the driver.
Signed-off-by: Joshua Washington <joshwash@go
net/gve: expose RSS offload capabilities
This patch communicates that the GVE driver supports RSS, along with the RSS offloads supported by the driver.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|
#
458b53de |
| 19-Jan-2024 |
Rushil Gupta <rushilg@google.com> |
net/gve: enable imissed stats for GQ format
Read from shared region to retrieve imissed statistics for GQ from device.
Signed-off-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Joshua Washingto
net/gve: enable imissed stats for GQ format
Read from shared region to retrieve imissed statistics for GQ from device.
Signed-off-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Joshua Washington <joshwash@google.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
8493b4ed |
| 20-Nov-2023 |
Rushil Gupta <rushilg@google.com> |
net/gve: support 4K ring size only for DQO
Bump up the dpdk dqo driver ring size to 4096. The queue size is controlled by queue_setup method.
Signed-off-by: Rushil Gupta <rushilg@google.com> Review
net/gve: support 4K ring size only for DQO
Bump up the dpdk dqo driver ring size to 4096. The queue size is controlled by queue_setup method.
Signed-off-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Joshua Washington <joshwash@google.com>
show more ...
|
#
e422bb30 |
| 16-Nov-2023 |
Joshua Washington <joshwash@google.com> |
net/gve: support maximum Rx buffer size
The new max_rx_bufsize field in dev_info can be used to guide mbuf sizes chosen by DPDK programs by ensuring that DPDK programs do not waste memory by using a
net/gve: support maximum Rx buffer size
The new max_rx_bufsize field in dev_info can be used to guide mbuf sizes chosen by DPDK programs by ensuring that DPDK programs do not waste memory by using an mbuf size too large for the maximum RX buffer size. This patch adds support for this field in the GVE PMD.
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Reviewed-by: Huisong Li <lihuisong@huawei.com>
show more ...
|
#
835021a8 |
| 13-Nov-2023 |
Joshua Washington <joshwash@google.com> |
net/gve: fix Rx buffer size alignment
In GVE, both queue formats have RX buffer size alignment requirements which will not always be respected when a user specifies an mbuf size. Assuming that an mb
net/gve: fix Rx buffer size alignment
In GVE, both queue formats have RX buffer size alignment requirements which will not always be respected when a user specifies an mbuf size. Assuming that an mbuf size is greater than the DPDK recommended default (2048 + 128), if the buffer size is not properly aligned with what the device expects, the device will silently fail to create any transmit or receive queues.
Because no queues are created, there is no network traffic for the DPDK program, and errors like the following are returned when attempting to destroy queues:
gve_adminq_parse_err(): AQ command failed with status -11 gve_stop_tx_queues(): failed to destroy txqs gve_adminq_parse_err(): AQ command failed with status -11 gve_stop_rx_queues(): failed to destroy rxqs
This change aims to remedy this by restricting the RX receive buffer sizes to valid sizes for their respective queue formats, including both alignment and minimum and maximum supported buffer sizes.
Fixes: 4bec2d0b5572 ("net/gve: support queue operations") Fixes: 1dc00f4fc74b ("net/gve: add Rx queue setup for DQO") Cc: stable@dpdk.org
Signed-off-by: Joshua Washington <joshwash@google.com> Reviewed-by: Rushil Gupta <rushilg@google.com> Acked-by: Junfeng Guo <junfeng.guo@intel.com>
show more ...
|
#
3b7896cd |
| 16-Oct-2023 |
Joshua Washington <joshwash@google.com> |
net/gve: update max Rx packet length to be based on MTU
Before this patch, max_rx_pktlen was always set to UINT16_MAX. This, in conjunction with the MTU fix, causes problems with testpmd, as setting
net/gve: update max Rx packet length to be based on MTU
Before this patch, max_rx_pktlen was always set to UINT16_MAX. This, in conjunction with the MTU fix, causes problems with testpmd, as setting the packet length with the --max-pkt-len flag causes the MTU to be set higher than possible due to underflow.
As an example, setting --max-pkt-len=1460 (the default MTU on Google Cloud VMs) causes testpmd to set the following: mtu = 1460 - eth_overhead,
where eth_overhead = dev->max_rx_pktlen - dev->max_mtu = 65535 - 1460.
Thus, mtu = 1460 - 65535 + 1460 = 2921 due to underflow.
Fixes: 030025b74202 ("net/gve: fix max MTU limit") Cc: stable@dpdk.org
Signed-off-by: Joshua Washington <joshwash@google.com>
show more ...
|
#
030025b7 |
| 29-Sep-2023 |
Joshua Washington <joshwash@google.com> |
net/gve: fix max MTU limit
This patch corrects the MTU setting behavior in the GVE DPDK driver to remove the artificial upper limit of RTE_ETHER_MTU. Instead, the max MTU is dictated by the default
net/gve: fix max MTU limit
This patch corrects the MTU setting behavior in the GVE DPDK driver to remove the artificial upper limit of RTE_ETHER_MTU. Instead, the max MTU is dictated by the default value of the MTU that the device sends during initialization, which will always be the maximum supported MTU.
Fixes: 71dea04cdf9a ("net/gve: support device info and configure") Cc: stable@dpdk.org
Signed-off-by: Joshua Washington <joshwash@google.com>
show more ...
|
#
7bb1168d |
| 14-Sep-2023 |
David Marchand <david.marchand@redhat.com> |
pci: define some MSIX constants
Define some PCI MSIX constants and use them in existing drivers.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richards
pci: define some MSIX constants
Define some PCI MSIX constants and use them in existing drivers.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
baa9c550 |
| 14-Sep-2023 |
David Marchand <david.marchand@redhat.com> |
pci: define some capability constants
Define some PCI capability constants and use them in existing drivers.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <br
pci: define some capability constants
Define some PCI capability constants and use them in existing drivers.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Abdullah Sevincer <abdullah.sevincer@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
a10b6e53 |
| 14-Sep-2023 |
David Marchand <david.marchand@redhat.com> |
bus/pci: find PCI capability
Introduce two helpers so that drivers stop reinventing the wheel when it comes to finding capabilities in a device PCI configuration space. Use it in existing drivers.
bus/pci: find PCI capability
Introduce two helpers so that drivers stop reinventing the wheel when it comes to finding capabilities in a device PCI configuration space. Use it in existing drivers.
Note: - base/ drivers code is left untouched, only some wrappers in cxgbe are touched, - bnx2x maintained a per device cache of capabilities, this code has been reworked to only cache the capabilities used in this driver,
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
#
748d0e7f |
| 24-May-2023 |
Rushil Gupta <rushilg@google.com> |
net/gve: check driver compatibility
Change gve_driver_info fields to report DPDK as OS type and DPDK RTE version as OS version, reserving driver_version fields for GVE driver version based on featur
net/gve: check driver compatibility
Change gve_driver_info fields to report DPDK as OS type and DPDK RTE version as OS version, reserving driver_version fields for GVE driver version based on features.
Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by: Joshua Washington <joshwash@google.com> Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Jeroen de Borst <jeroendb@google.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
b044845b |
| 09-May-2023 |
Junfeng Guo <junfeng.guo@intel.com> |
net/gve: support queue start/stop
Add support for queue operations for GQI: - gve_rx_queue_start - gve_tx_queue_start - gve_rx_queue_stop - gve_tx_queue_stop
Add support for queue operations fo
net/gve: support queue start/stop
Add support for queue operations for GQI: - gve_rx_queue_start - gve_tx_queue_start - gve_rx_queue_stop - gve_tx_queue_stop
Add support for queue operations for DQO: - gve_rx_queue_start_dqo - gve_tx_queue_start_dqo - gve_rx_queue_stop_dqo - gve_tx_queue_stop_dqo
Also move the funcs of rxq_mbufs_alloc into the corresponding files.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Tested-by: Rushil Gupta <rushilg@google.com>
show more ...
|
#
98e3bbc9 |
| 13-Apr-2023 |
Junfeng Guo <junfeng.guo@intel.com> |
net/gve: support basic stats for DQO
Add basic stats support for DQO.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by: Joshua Washi
net/gve: support basic stats for DQO
Add basic stats support for DQO.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by: Joshua Washington <joshwash@google.com> Signed-off-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|
#
45da16b5 |
| 13-Apr-2023 |
Junfeng Guo <junfeng.guo@intel.com> |
net/gve: support basic Rx data path for DQO
Add basic Rx data path support for DQO.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by
net/gve: support basic Rx data path for DQO
Add basic Rx data path support for DQO.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by: Joshua Washington <joshwash@google.com> Signed-off-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|
#
4022f999 |
| 13-Apr-2023 |
Junfeng Guo <junfeng.guo@intel.com> |
net/gve: support basic Tx data path for DQO
Add basic Tx data path support for DQO.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by
net/gve: support basic Tx data path for DQO
Add basic Tx data path support for DQO.
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com> Signed-off-by: Rushil Gupta <rushilg@google.com> Signed-off-by: Joshua Washington <joshwash@google.com> Signed-off-by: Jeroen de Borst <jeroendb@google.com>
show more ...
|