History log of /dpdk/drivers/net/gve/gve_ethdev.c (Results 1 – 25 of 40)
Revision Date Author Comments
# 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 ...


12