Thread (202 messages) 202 messages, 11 authors, 2016-04-06

Re: [PATCH 12/12] examples/l3fwd: add option to parse ptype

From: Tan, Jianfeng <hidden>
Date: 2016-01-07 01:20:15

Hi Konstantin,

On 1/6/2016 12:49 AM, Ananyev, Konstantin wrote:
Hi Jianfeng,
quoted
quoted
quoted
+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);
quoted
+	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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help