On 11/23/2017 10:33 PM, Jingjing Wu wrote: > Enable Virtchnl offload Caps negotiation and RSS_PF offload > to support AVF basic interface. > > Signed-off-by: Jingjing Wu <jingjing...@intel.com> > --- > config/common_base | 2 +- > drivers/net/i40e/i40e_ethdev.c | 64 +++++++++++++++---- > drivers/net/i40e/i40e_ethdev.h | 4 ++ > drivers/net/i40e/i40e_pf.c | 137 > +++++++++++++++++++++++++++++++++++++---- > drivers/net/i40e/i40e_pf.h | 6 ++
This is a i40e patch that enables AVF support, right? I believe it would be better to separate the config change that enables the AVF PMD by default from i40e changes patches. <...> > @@ -3694,14 +3695,21 @@ i40e_get_rss_lut(struct i40e_vsi *vsi, uint8_t *lut, > uint16_t lut_size) > uint32_t *lut_dw = (uint32_t *)lut; > uint16_t i, lut_size_dw = lut_size / 4; > > - for (i = 0; i < lut_size_dw; i++) > - lut_dw[i] = I40E_READ_REG(hw, I40E_PFQF_HLUT(i)); > + if (vsi->type == I40E_VSI_SRIOV) { > + for (i = 0; i <= lut_size_dw; i++) > + reg = I40E_VFQF_HLUT1(i, vsi->user_param); > + lut_dw[i] = i40e_read_rx_ctl(hw, reg); this assignment is out of "for" loop. > + } else { > + for (i = 0; i < lut_size_dw; i++) > + lut_dw[i] = I40E_READ_REG(hw, > + I40E_PFQF_HLUT(i)); > + } > } > > return 0; > } > <...> > @@ -6754,8 +6784,20 @@ i40e_get_rss_key(struct i40e_vsi *vsi, uint8_t *key, > uint8_t *key_len) > uint32_t *key_dw = (uint32_t *)key; > uint16_t i; > > - for (i = 0; i <= I40E_PFQF_HKEY_MAX_INDEX; i++) > - key_dw[i] = i40e_read_rx_ctl(hw, I40E_PFQF_HKEY(i)); > + if (vsi->type == I40E_VSI_SRIOV) { > + for (i = 0; i <= I40E_VFQF_HKEY_MAX_INDEX; i++) > + reg = I40E_VFQF_HKEY1(i, vsi->user_param); > + key_dw[i] = i40e_read_rx_ctl(hw, reg); This line is not part of the for loop, seems which is the intention, and all credits goes to compiler to figuring this out. > + *key_len = (I40E_VFQF_HKEY_MAX_INDEX + 1) * > + sizeof(uint32_t); > + > + } else { > + for (i = 0; i <= I40E_PFQF_HKEY_MAX_INDEX; i++) > + reg = I40E_PFQF_HKEY(i); > + key_dw[i] = i40e_read_rx_ctl(hw, reg); Same problem here, "for" scope is wrong. <...>