[dpdk-dev] [PATCH 12/12] examples/l3fwd: add option to parse ptype

Tan, Jianfeng jianfeng.tan at intel.com
Thu Jan 7 02:20:13 CET 2016


Hi Konstantin,

On 1/6/2016 12:49 AM, Ananyev, Konstantin wrote:
> Hi Jianfeng,
>
>>>> +static int
>>>> +check_packet_type_ok(int portid)
>>>> +{
>>>> +	int i;
>>>> +	int ret;
>>>> +	uint32_t ptypes[RTE_PTYPE_L3_MAX_NUM];
>>>> +	int ptype_l3_ipv4 = 0, ptype_l3_ipv6 = 0;
>>>> +
>>>> +	ret = rte_eth_dev_get_ptype_info(portid, RTE_PTYPE_L3_MASK,
>>> ptypes);
>>>> +	for (i = 0; i < ret; ++i) {
>>>> +		if (ptypes[i] & RTE_PTYPE_L3_IPV4)
>>>> +			ptype_l3_ipv4 = 1;
>>>> +		if (ptypes[i] & RTE_PTYPE_L3_IPV6)
>>>> +			ptype_l3_ipv6 = 1;
>>>> +	}
>>>> +
>>>> +	if (ptype_l3_ipv4 == 0)
>>>> +		printf("port %d cannot parse RTE_PTYPE_L3_IPV4\n", portid);
>>>> +
>>>> +	if (ptype_l3_ipv6 == 0)
>>>> +		printf("port %d cannot parse RTE_PTYPE_L3_IPV6\n", portid);
>>>> +
>>>> +	if (ptype_l3_ipv4 || ptype_l3_ipv6)
>>>> +		return 1;
>
> Forgot one thing: I think it should be:
>
> if (ptype_l3_ipv4 && ptype_l3_ipv6)
>    return 1;
> return 0;
>
> or just:
>
> return ptype_l3_ipv4 && ptype_l3_ipv6;

My original thought is: PMDs, like vmxnet3, fills ptype_l3_ipv4, but not 
ptype_l3_ipv6.
If we use "&&", then it would add rx callback to parse ptype whether 
ipv4 or ipv6 traffic is comming.

Thanks,
Jianfeng

>
> Konstantin



More information about the dev mailing list