From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88C723BFE25 for ; Mon, 30 Mar 2026 23:02:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.10 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774911780; cv=none; b=Bih5Q8BStkhWq7BSj/MEFpSNyrVW0yvKHbPAgB+Oal2oDMTPf03LvKl26ryFUI44a1kUs9FxQJeIJOwQLAR7bRuw5BpAg/r6QVUzSw8LbhYEvGSYbT83JqJSHqK0KDlbL0aDFT5Pw5NdNffQndd2OlSk5pji35/CR5bUe8hgcIk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774911780; c=relaxed/simple; bh=hVZa4sKrgm+8IkgpermvUSLuaWbWtlJxQXviPpT3uQc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G4bU8cPxteMjX5ML5ThjuotASFwCrAx8yo+PMr4fiTn28egKDKNYqxKoA5Zg1e/aJQ/l52z48EWZ7zw91n4ecy6ZIWbjdv0nmmZy4MGZf79nII3CZfJFsyQU7SGLwe/+bY80OB018a9+9Fs/2eB08pt956KFA5bpQ35bGZYRbxE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=nJhAHPDh; arc=none smtp.client-ip=198.175.65.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="nJhAHPDh" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1774911778; x=1806447778; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hVZa4sKrgm+8IkgpermvUSLuaWbWtlJxQXviPpT3uQc=; b=nJhAHPDhAJf19W3FAsOJoS3tJNmBJyFdtIkKTcNS7s2vHrbC6bJVEP6+ o9bAmCq52AAnIQaF0uJp/MfWGqE8GMKbzU2bdwMHzsivu62skxmb9nQAM sLALwu/wUgnUupkWv/2W93MyYx6ByfBH/RtBRYgiHRU7RSPqRS4Uc5w1s iwoo30JD97FtpyjOd99dkI1PM3ETkBoqC1S+nyCoDGrmqrdo5IDacDKv+ z7H/1pdRtrZvjxns3iiFhMaR8rFM3V7fYZ0vH+yoMBVm4AQeHXmq43kT5 wjxon4GkfUv4tJ89IXqEZSbhmDxmkLV7PNl7p8s8BLVsOx1CHSYZzGcqn w==; X-CSE-ConnectionGUID: xd4jRi2qQPSNuecMebiLGw== X-CSE-MsgGUID: jE1cTwVlTKaENT1VBa07RQ== X-IronPort-AV: E=McAfee;i="6800,10657,11744"; a="93297603" X-IronPort-AV: E=Sophos;i="6.23,150,1770624000"; d="scan'208";a="93297603" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Mar 2026 16:02:53 -0700 X-CSE-ConnectionGUID: tvJEYANXQ1CPpx751gZB7w== X-CSE-MsgGUID: SM1Q+vphRTS1uznHohqenQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,150,1770624000"; d="scan'208";a="256687727" Received: from anguy11-upstream.jf.intel.com ([10.166.9.133]) by orviesa002.jf.intel.com with ESMTP; 30 Mar 2026 16:02:53 -0700 From: Tony Nguyen To: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, andrew+netdev@lunn.ch, netdev@vger.kernel.org Cc: Takashi Kozu , anthony.l.nguyen@intel.com, horms@kernel.org, enjuk@amazon.com, Aleksandr Loktionov , Rinitha S Subject: [PATCH net-next 08/15] igb: expose RSS key via ethtool get_rxfh Date: Mon, 30 Mar 2026 16:02:37 -0700 Message-ID: <20260330230248.646900-9-anthony.l.nguyen@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260330230248.646900-1-anthony.l.nguyen@intel.com> References: <20260330230248.646900-1-anthony.l.nguyen@intel.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Takashi Kozu Implement igb_get_rxfh_key_size() and extend igb_get_rxfh() to return the RSS key to userspace. This can be tested using `ethtool -x `. Reviewed-by: Simon Horman Reviewed-by: Aleksandr Loktionov Signed-off-by: Takashi Kozu Tested-by: Rinitha S (A Contingent worker at Intel) Signed-off-by: Tony Nguyen --- drivers/net/ethernet/intel/igb/igb_ethtool.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c index 9a105e59f432..47fc620026a9 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -3297,10 +3297,12 @@ static int igb_get_rxfh(struct net_device *netdev, int i; rxfh->hfunc = ETH_RSS_HASH_TOP; - if (!rxfh->indir) - return 0; - for (i = 0; i < IGB_RETA_SIZE; i++) - rxfh->indir[i] = adapter->rss_indir_tbl[i]; + if (rxfh->indir) + for (i = 0; i < IGB_RETA_SIZE; i++) + rxfh->indir[i] = adapter->rss_indir_tbl[i]; + + if (rxfh->key) + memcpy(rxfh->key, adapter->rss_key, sizeof(adapter->rss_key)); return 0; } @@ -3340,6 +3342,11 @@ void igb_write_rss_indir_tbl(struct igb_adapter *adapter) } } +static u32 igb_get_rxfh_key_size(struct net_device *netdev) +{ + return IGB_RSS_KEY_SIZE; +} + static int igb_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) @@ -3504,6 +3511,7 @@ static const struct ethtool_ops igb_ethtool_ops = { .get_module_eeprom = igb_get_module_eeprom, .get_rxfh_indir_size = igb_get_rxfh_indir_size, .get_rxfh = igb_get_rxfh, + .get_rxfh_key_size = igb_get_rxfh_key_size, .set_rxfh = igb_set_rxfh, .get_rxfh_fields = igb_get_rxfh_fields, .set_rxfh_fields = igb_set_rxfh_fields, -- 2.47.1