[dpdk-dev] net/iavf: fix protocol field selector configure

Jeff Guo jia.guo at intel.com
Sun May 24 07:46:26 CEST 2020


hi, qi

On 5/23/2020 10:03 AM, Zhang, Qi Z wrote:
>
>> -----Original Message-----
>> From: Guo, Jia <jia.guo at intel.com>
>> Sent: Saturday, May 23, 2020 7:18 AM
>> To: Xing, Beilei <beilei.xing at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>;
>> Wu, Jingjing <jingjing.wu at intel.com>
>> Cc: Ye, Xiaolong <xiaolong.ye at intel.com>; dev at dpdk.org; Guo, Jia
>> <jia.guo at intel.com>
>> Subject: [dpdk-dev] net/iavf: fix protocol field selector configure
>>
>> When VFs configure the rss rule by virtchnl, it need to set bit mask into the
>> field selector for the protocol, then PF got the configure massage and parse
>> the field selector to the corresponding protocol field.
>>
>> Fixes: 7be10c3004be ("net/iavf: add RSS configuration for VF")
>>
>> Signed-off-by: Jeff Guo <jia.guo at intel.com>
>> ---
>>   drivers/net/iavf/iavf_hash.c | 474 +++++++++++++++++++++--------------
>>   1 file changed, 280 insertions(+), 194 deletions(-)
>>
>> diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index
>> af528863b..1e0ffad4c 100644
>> --- a/drivers/net/iavf/iavf_hash.c
>> +++ b/drivers/net/iavf/iavf_hash.c
>> @@ -43,6 +43,7 @@ struct iavf_hash_match_type {
>>   	enum iavf_pattern_hint_type phint_type;
>>   	uint64_t hash_type;
>>   	struct virtchnl_proto_hdrs *proto_hdrs;
>> +	uint32_t link_type;
> If this is just a hint for gtpu link type.
> Better to rename to "gtpu_hint"
> And use the already defined enum but not uint32_t.
>   


ok.


>>   };
>>
>>   struct iavf_rss_meta {
>> @@ -147,8 +148,11 @@ static struct iavf_pattern_match_item
>> iavf_hash_pattern_list[] = {
>>   	{iavf_pattern_empty, IAVF_INSET_NONE, &phint_empty},  };
>>
>> -#define	GTP_EH_PDU_LINK_UP		1
>> -#define	GTP_EH_PDU_LINK_DWN		0
>> +enum iavf_pattern_link_type {
> Rename to iavf_gtpu_hint.


seem it is better.


>> +	IAVF_PATTERN_LINK_DOWN,
>> +	IAVF_PATTERN_LINK_UP,
>> +	IAVF_PATTERN_LINK_NONE,
>> +};
> The configure is for GTP down/up link,
> The name "xxx_LINK_DOWN", and "xxx_LINK_UP" is a little bit misleading.
> Could be
> IAVF_GTPU_HINT_UPLINK.
> IAVF_GTPU_HINT_DOWNLINK.
> IAVF_GTPU_HINT_N/A


ok, but i will choose  IAVF_GTPU_HINT_NONE but not IAVF_GTPU_HINT_N/A 
for common and it should also knowledgeable.


>>   #define TUNNEL_LEVEL_OUTER		0
>>   #define TUNNEL_LEVEL_FIRST_INNER	1
>> @@ -160,103 +164,112 @@ static struct iavf_pattern_match_item
>> iavf_hash_pattern_list[] = {
>>   #define BUFF_NOUSED			0
>>   #define FIELD_FOR_PROTO_ONLY		0
>>
>> +#define FIELD_SELECTOR(proto_hdr_field)	(1UL << ((proto_hdr_field) % \
>> +					 (1UL << PROTO_HDR_SHIFT)))
> Could be simplified to.
> #define FIELD_SELECTOR(proto_hdr_field) \
> 	(1UL << (proto_hdr_field & PROTO_HDR_FIELD_MASK))


Use the currently macro to make it simple, sounds good. Thanks.


> ......
>
> Regards
> Qi


More information about the dev mailing list