From: Stephen Hemminger <stephen@networkplumber.org>
To: "Jasper Tran O'Leary" <jtranoleary@google.com>
Cc: dev@dpdk.org, Joshua Washington <joshwash@google.com>
Subject: Re: [PATCH v4 0/4] net/gve: add flow steering support
Date: Wed, 4 Mar 2026 07:59:49 -0800 [thread overview]
Message-ID: <20260304075949.07e75d93@phoenix.local> (raw)
In-Reply-To: <20260304045033.1340269-1-jtranoleary@google.com>
On Wed, 4 Mar 2026 04:50:29 +0000
"Jasper Tran O'Leary" <jtranoleary@google.com> wrote:
> This patch series adds flow steering support to the Google Virtual
> Ethernet (gve) driver. This functionality allows traffic to be directed
> to specific receive queues based on user-specified flow patterns.
>
> The series includes foundational support for extended admin queue
> commands needed to handle flow rules, the specific adminqueue commands
> for flow rule management, and the integration with the DPDK rte_flow
> API. The series adds support flow matching on the following protocols:
> IPv4, IPv6, TCP, UDP, SCTP, ESP, and AH.
>
> Patch Overview:
>
> 1. "net/gve: add flow steering device option" checks for and enables
> the flow steering capability in the device options during
> initialization.
> 2. "net/gve: introduce extended adminq command" adds infrastructure
> for sending extended admin queue commands. These commands use a
> flexible buffer descriptor format required for flow rule management.
> 3. "net/gve: add adminq commands for flow steering" implements the
> specific admin queue commands to add and remove flow rules on the
> device, including handling of rule IDs and parameters.
> 4. "net/gve: add rte flow API integration" exposes the flow steering
> functionality via the DPDK rte_flow API. This includes strict
> pattern validation, rule parsing, and lifecycle management (create,
> destroy, flush). It ensures thread-safe access to the flow subsystem
> and proper resource cleanup during device reset.
>
> Jasper Tran O'Leary (2):
> net/gve: add adminq commands for flow steering
> net/gve: add rte flow API integration
>
> Vee Agarwal (2):
> net/gve: add flow steering device option
> net/gve: introduce extended adminq command
>
> doc/guides/nics/features/gve.ini | 12 +
> doc/guides/nics/gve.rst | 27 +
> doc/guides/rel_notes/release_26_03.rst | 1 +
> drivers/net/gve/base/gve.h | 3 +-
> drivers/net/gve/base/gve_adminq.c | 118 ++++-
> drivers/net/gve/base/gve_adminq.h | 57 +++
> drivers/net/gve/gve_ethdev.c | 83 +++-
> drivers/net/gve/gve_ethdev.h | 46 ++
> drivers/net/gve/gve_flow_rule.c | 658 +++++++++++++++++++++++++
> drivers/net/gve/gve_flow_rule.h | 65 +++
> drivers/net/gve/meson.build | 1 +
> 11 files changed, 1066 insertions(+), 5 deletions(-)
> create mode 100644 dpdk/drivers/net/gve/gve_flow_rule.c
> create mode 100644 dpdk/drivers/net/gve/gve_flow_rule.h
>
Applied to next-net
The detailed review report if you are interested.
Reviewed the v4 series. Overall this is well-structured — locking
discipline is sound, create/destroy/flush paths handle errors
correctly with proper resource cleanup, and the bitmap slot is
restored on adminq failure. Patches 1/4 and 2/4 are clean.
A few items on 3/4 and 4/4:
Patch 3/4:
[Warning] struct gve_flow_spec has a padding hole after the
tos/tclass u8 field (37 bytes of data, padded to 40 by the
compiler). Callers zero-initialize today so no live bug, but
consider adding GVE_CHECK_STRUCT_LEN for gve_flow_spec and
gve_flow_rule_params to guard against future changes, consistent
with other adminq structures.
Patch 4/4:
[Warning] In gve_setup_flow_subsystem, the rte_zmalloc failure
path does goto free_flow_rule_bmp which calls
gve_flow_free_bmp(priv). This is safe (rte_free(NULL) is a
no-op) but misleading — the label says "free" when there's
nothing to free. Cleaner to just return -ENOMEM directly on the
first failure.
[Warning] gve_dev_reset tears down the flow subsystem and
re-initializes via gve_init_priv, but does not destroy/recreate
flow_rule_lock. This works today because
gve_teardown_flow_subsystem doesn't destroy the mutex (only
gve_dev_close does), but it's worth a comment to document this
invariant.
next prev parent reply other threads:[~2026-03-04 15:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-27 19:51 [PATCH 0/4] net/gve: add flow steering support Jasper Tran O'Leary
2026-02-27 19:51 ` [PATCH 1/4] net/gve: add flow steering device option Jasper Tran O'Leary
2026-02-27 19:51 ` [PATCH 2/4] net/gve: introduce extended adminq command Jasper Tran O'Leary
2026-02-27 19:51 ` [PATCH 3/4] net/gve: add adminq commands for flow steering Jasper Tran O'Leary
2026-02-27 19:51 ` [PATCH 4/4] net/gve: add rte flow API integration Jasper Tran O'Leary
2026-02-27 22:52 ` [PATCH 0/4] net/gve: add flow steering support Stephen Hemminger
2026-03-03 1:00 ` Jasper Tran O'Leary
2026-03-03 0:58 ` [PATCH v2 " Jasper Tran O'Leary
2026-03-03 0:58 ` [PATCH v2 1/4] net/gve: add flow steering device option Jasper Tran O'Leary
2026-03-03 0:58 ` [PATCH v2 2/4] net/gve: introduce extended adminq command Jasper Tran O'Leary
2026-03-03 0:58 ` [PATCH v2 3/4] net/gve: add adminq commands for flow steering Jasper Tran O'Leary
2026-03-03 0:58 ` [PATCH v2 4/4] net/gve: add rte flow API integration Jasper Tran O'Leary
2026-03-03 15:21 ` [PATCH v2 0/4] net/gve: add flow steering support Stephen Hemminger
2026-03-04 1:49 ` Jasper Tran O'Leary
2026-03-04 1:46 ` [PATCH v3 " Jasper Tran O'Leary
2026-03-04 1:46 ` [PATCH v3 1/4] net/gve: add flow steering device option Jasper Tran O'Leary
2026-03-04 1:46 ` [PATCH v3 2/4] net/gve: introduce extended adminq command Jasper Tran O'Leary
2026-03-04 1:46 ` [PATCH v3 3/4] net/gve: add adminq commands for flow steering Jasper Tran O'Leary
2026-03-04 1:46 ` [PATCH v3 4/4] net/gve: add rte flow API integration Jasper Tran O'Leary
2026-03-04 4:46 ` [PATCH v3 0/4] net/gve: add flow steering support Jasper Tran O'Leary
2026-03-04 4:50 ` [PATCH v4 " Jasper Tran O'Leary
2026-03-04 4:50 ` [PATCH v4 1/4] net/gve: add flow steering device option Jasper Tran O'Leary
2026-03-04 4:50 ` [PATCH v4 2/4] net/gve: introduce extended adminq command Jasper Tran O'Leary
2026-03-04 4:50 ` [PATCH v4 3/4] net/gve: add adminq commands for flow steering Jasper Tran O'Leary
2026-03-04 4:50 ` [PATCH v4 4/4] net/gve: add rte flow API integration Jasper Tran O'Leary
2026-03-04 15:59 ` Stephen Hemminger [this message]
2026-03-04 22:43 ` [PATCH v4 0/4] net/gve: add flow steering support Jasper Tran O'Leary
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260304075949.07e75d93@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=joshwash@google.com \
--cc=jtranoleary@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox