Re: [RFC PATCH net-next 4/5] ixgbevf: Add RSS Key query code
From: Jeff Kirsher <hidden>
Date: 2014-12-30 19:26:05
On Tue, Dec 30, 2014 at 8:30 AM, Vlad Zolotarov [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Signed-off-by: Vlad Zolotarov <redacted> --- drivers/net/ethernet/intel/ixgbevf/mbx.h | 2 ++ drivers/net/ethernet/intel/ixgbevf/vf.c | 48 ++++++++++++++++++++++++++++++++ drivers/net/ethernet/intel/ixgbevf/vf.h | 1 + 3 files changed, 51 insertions(+)diff --git a/drivers/net/ethernet/intel/ixgbevf/mbx.h b/drivers/net/ethernet/intel/ixgbevf/mbx.h index 3e148a8..9674ac8 100644 --- a/drivers/net/ethernet/intel/ixgbevf/mbx.h +++ b/drivers/net/ethernet/intel/ixgbevf/mbx.h@@ -110,6 +110,8 @@ enum ixgbe_pfvf_api_rev { #define IXGBE_VF_GET_RETA_1 0x0b /* get RETA[12..23] */ #define IXGBE_VF_GET_RETA_2 0x0c /* get RETA[24..31] */ +#define IXGBE_VF_GET_RSS_KEY 0x0d /* get RSS hash key */ + /* GET_QUEUES return data indices within the mailbox */ #define IXGBE_VF_TX_QUEUES 1 /* number of Tx queues supported */ #define IXGBE_VF_RX_QUEUES 2 /* number of Rx queues supported */diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c index 3ebc882..7987ab0 100644 --- a/drivers/net/ethernet/intel/ixgbevf/vf.c +++ b/drivers/net/ethernet/intel/ixgbevf/vf.c@@ -290,6 +290,54 @@ static inline int _ixgbevf_get_reta(struct ixgbe_hw *hw, u32 *msgbuf, } /** + * ixgbevf_get_rss_key - get the RSS Random Key + * @hw: pointer to the HW structure + * @reta: buffer to fill with RETA contents. + * + * The "rss_key" buffer should be big enough to contain 10 registers. + * + * Returns: 0 on success. + * if API doesn't support this operation - (-EPERM). + */ +int ixgbevf_get_rss_key(struct ixgbe_hw *hw, u8 *rss_key) +{ + int err; + u32 msgbuf[IXGBE_VFMAILBOX_SIZE]; + + /* Return and error if API doesn't support RSS Random Key retrieval */ + switch (hw->api_version) { + case ixgbe_mbox_api_12: + break; + default: + return -EPERM; + }
An if statement here as well, instead of a switch statement.