[v2] net/ixgbe: fix x550 Reta set fail error

Message ID 1563855198-11568-1-git-send-email-wei.zhao1@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/ixgbe: fix x550 Reta set fail error |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-Compile-Testing success Compile Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

Zhao1, Wei July 23, 2019, 4:13 a.m. UTC
  There is a bug in function ixgbevf_dev_info_get(), it do not
contain the reta table size get function for vf port, and this
will cause error when update reta for x550 vf port. And also
when function ixgbe_reta_size_get() is called, it should return
other ixgbe NIC vf reta support or not, not only x550.

Cc: stable@dpdk.org

Fixes: 2144f6630fca ("ixgbe: add redirection table size in device info")
Signed-off-by: wei zhao <wei.zhao1@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Qi Zhang July 23, 2019, 7:30 a.m. UTC | #1
> -----Original Message-----
> From: Zhao1, Wei
> Sent: Tuesday, July 23, 2019 12:13 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Zhao1, Wei
> <wei.zhao1@intel.com>
> Subject: [PATCH v2] net/ixgbe: fix x550 Reta set fail error
> 
> There is a bug in function ixgbevf_dev_info_get(), it do not contain the reta
> table size get function for vf port, and this will cause error when update reta
> for x550 vf port. And also when function ixgbe_reta_size_get() is called, it
> should return other ixgbe NIC vf reta support or not, not only x550.

This commit log is a little bit misleading 

Does below description OK for you?

Title:
	net/ixgbe: fix reta size for VF

Filling correct reta table size at ixgbevf_dev_info_get, so reta table update will be supported for VF port.
For X540_vf and 82599_vf, since they don't support reta table update, set reta size to 0.

> 
> Cc: stable@dpdk.org
> 
> Fixes: 2144f6630fca ("ixgbe: add redirection table size in device info")
> Signed-off-by: wei zhao <wei.zhao1@intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 22c5b2c..773f667 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -3927,6 +3927,8 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
>  				     dev_info->rx_queue_offload_capa);
>  	dev_info->tx_queue_offload_capa = ixgbe_get_tx_queue_offloads(dev);
>  	dev_info->tx_offload_capa = ixgbe_get_tx_port_offloads(dev);
> +	dev_info->hash_key_size = IXGBE_HKEY_MAX_INDEX * sizeof(uint32_t);
> +	dev_info->reta_size = ixgbe_reta_size_get(hw->mac.type);
> 
>  	dev_info->default_rxconf = (struct rte_eth_rxconf) {
>  		.rx_thresh = {
> @@ -7438,6 +7440,9 @@ ixgbe_reta_size_get(enum ixgbe_mac_type
> mac_type) {
>  	case ixgbe_mac_X550EM_x_vf:
>  	case ixgbe_mac_X550EM_a_vf:
>  		return ETH_RSS_RETA_SIZE_64;
> +	case ixgbe_mac_X540_vf:
> +	case ixgbe_mac_82599_vf:
> +		return 0;
>  	default:
>  		return ETH_RSS_RETA_SIZE_128;
>  	}
> --
> 2.7.5
  
Xiaolong Ye July 23, 2019, 10:15 p.m. UTC | #2
On 07/23, Wei Zhao wrote:
>There is a bug in function ixgbevf_dev_info_get(), it do not
>contain the reta table size get function for vf port, and this
>will cause error when update reta for x550 vf port. And also
>when function ixgbe_reta_size_get() is called, it should return
>other ixgbe NIC vf reta support or not, not only x550.
>
>Cc: stable@dpdk.org
>
>Fixes: 2144f6630fca ("ixgbe: add redirection table size in device info")
>Signed-off-by: wei zhao <wei.zhao1@intel.com>

Minor nit about your signoff, the first letter of your name should be captial.

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>

For the patch,
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 22c5b2c..773f667 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3927,6 +3927,8 @@  ixgbevf_dev_info_get(struct rte_eth_dev *dev,
 				     dev_info->rx_queue_offload_capa);
 	dev_info->tx_queue_offload_capa = ixgbe_get_tx_queue_offloads(dev);
 	dev_info->tx_offload_capa = ixgbe_get_tx_port_offloads(dev);
+	dev_info->hash_key_size = IXGBE_HKEY_MAX_INDEX * sizeof(uint32_t);
+	dev_info->reta_size = ixgbe_reta_size_get(hw->mac.type);
 
 	dev_info->default_rxconf = (struct rte_eth_rxconf) {
 		.rx_thresh = {
@@ -7438,6 +7440,9 @@  ixgbe_reta_size_get(enum ixgbe_mac_type mac_type) {
 	case ixgbe_mac_X550EM_x_vf:
 	case ixgbe_mac_X550EM_a_vf:
 		return ETH_RSS_RETA_SIZE_64;
+	case ixgbe_mac_X540_vf:
+	case ixgbe_mac_82599_vf:
+		return 0;
 	default:
 		return ETH_RSS_RETA_SIZE_128;
 	}