On Wed, Aug 27, 2025 at 06:53:38PM +0000, Aleksandr Loktionov wrote:
> Extend the iavf driver to support Receive Side Scaling (RSS)
> configuration for GTP (GPRS Tunneling Protocol) flows using ethtool.
> 
> The implementation introduces new RSS flow segment headers and hash field
> definitions for various GTP encapsulations, including:
> 
>   - GTPC
>   - GTPU (IP, Extension Header, Uplink, Downlink)
>   - TEID-based hashing
> 
> The ethtool interface is updated to parse and apply these new flow types
> and hash fields, enabling fine-grained traffic distribution for GTP-based
> mobile workloads.
> 
> This enhancement improves performance and scalability for virtualized
> network functions (VNFs) and user plane functions (UPFs) in 5G and LTE
> deployments.
> 
> Signed-off-by: Aleksandr Loktionov <[email protected]>
> Reviewed-by: Jedrzej Jagielski <[email protected]>

> ---
>  .../net/ethernet/intel/iavf/iavf_adv_rss.c    | 119 ++++++++++++++----
>  .../net/ethernet/intel/iavf/iavf_adv_rss.h    |  31 +++++
>  .../net/ethernet/intel/iavf/iavf_ethtool.c    |  89 +++++++++++++
>  3 files changed, 216 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_adv_rss.c 
> b/drivers/net/ethernet/intel/iavf/iavf_adv_rss.c

...

> @@ -211,6 +274,16 @@ iavf_print_adv_rss_cfg(struct iavf_adapter *adapter, 
> struct iavf_adv_rss *rss,
>                        IAVF_ADV_RSS_HASH_FLD_UDP_DST_PORT |
>                        IAVF_ADV_RSS_HASH_FLD_SCTP_DST_PORT))
>               strcat(hash_opt, "dst port,");
> +     if (hash_flds & (IAVF_ADV_RSS_HASH_FLD_GTPC_TEID | 
> IAVF_ADV_RSS_HASH_FLD_GTPC_TEID))

nit: Perhaps this is an artifact of development.
     But IAVF_ADV_RSS_HASH_FLD_GTPC_TEID seems to repeated on
     the line above without effect.

Flagged by Coccinelle.

> +             strcat(hash_opt, "gtp-c,");
> +     if (hash_flds & IAVF_ADV_RSS_HASH_FLD_GTPU_IP_TEID)
> +             strcat(hash_opt, "gtp-u ip,");
> +     if (hash_flds & IAVF_ADV_RSS_HASH_FLD_GTPU_EH_TEID)
> +             strcat(hash_opt, "gtp-u ext,");
> +     if (hash_flds & IAVF_ADV_RSS_HASH_FLD_GTPU_UP_TEID)
> +             strcat(hash_opt, "gtp-u ul,");
> +     if (hash_flds & IAVF_ADV_RSS_HASH_FLD_GTPU_DWN_TEID)
> +             strcat(hash_opt, "gtp-u dl,");
>  
>       if (!action)
>               action = "";

...

Reply via email to