<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<div dir="auto">Hello Tao,</div>
<div dir="auto"><br>
</div>
<div dir="auto">Currently, we don't support IPinIP with template API.</div>
<div id="ms-outlook-mobile-signature" dir="auto">
<div dir="auto">We have it in our roadmap, but still no concrete release date for it.</div>
<div dir="auto"><br>
</div>
<div>Regards,</div>
<div dir="auto">Asaf Penso</div>
</div>
<div id="mail-editor-reference-message-container" dir="auto"><br>
<hr style="display:inline-block;width:98%">
<div id="divRplyFwdMsg" style="font-size: 11pt;"><strong>From:</strong> Tao Li <byteocean@hotmail.com><br>
<strong>Sent:</strong> Friday, March 22, 2024 5:08:46 pm<br>
<strong>To:</strong> Asaf Penso <asafp@nvidia.com>; users@dpdk.org <users@dpdk.org><br>
<strong>Subject:</strong> Re: Finer matching granularity with async template API<br>
</div>
<br>
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<div class="WordSection1">
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">Hello Asaf,</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">We generate incoming IPinIP packets by using our complex solution, but below you can find a Python script to generate such packets to serve this purpose. I hope it is helpful to reproduce this issue. Thanks again.</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"><Code snippet to generate IPinIP packets></span></b></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">#!/usr/bin/python3</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">from scapy.all import *</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">from scapy.layers.inet import Ether, UDP, ICMP</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">from scapy.layers.inet6 import *</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ether = Ether()</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ether.src = "src mac"</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ether.dst = "dst mac"</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ether.type = 0x86DD</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ipv6 = IPv6()</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ipv6.src = "src ipv6 addr"</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ipv6.dst = "dst ipv6 addr"</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">ipv6.nh = 4</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">pkt = ether / ipv6 / IP(src="192.168.129.5",dst="172.32.4.9") / ICMP(type=8)</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">print(pkt.show())</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt">sendp(pkt, iface ="ens1f0np0")</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt">< /Code snippet to generate IPinIP packets ></span></b></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"> </span></b></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Cheers,</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Tao</span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none; border-top:solid #B5C4DF 1.0pt; padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-bottom:12.0pt">
<b><span style="font-size: 12pt; color: black;">From: </span></b><span style="font-size: 12pt; color: black;">Tao Li <byteocean@hotmail.com><br>
<b>Date: </b>Friday, 22. March 2024 at 14:19<br>
<b>To: </b>Asaf Penso <asafp@nvidia.com>, users@dpdk.org <users@dpdk.org><br>
<b>Subject: </b>Re: Finer matching granularity with async template API</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">Hellp Asaf,</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">Thanks for your speedy reply. Please find additional information based on your questions, and I hope they would help to understand our purpose and issue.</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<ol start="1" type="1" style="margin-bottom: 0cm;margin-top:0cm">
<li class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:0cm">
<span style="font-size:11.0pt">Why ipv6/ipv4/icmp? </span><span style="font-size:12.0pt"></span></li></ol>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">We are performing IPinIP tunnelling for traffic, and in this provided test-pmd example we encapsulate IPv4 packets from VMs into IPv6 underlay packets. The refence RFCs for this approach are RFC 1853 and RFC 2473. This
<a href="https://www.h3c.com/en/Support/Resource_Center/HK/Switches/H3C_S7500E_X/S7500E-X/Technical_Documents/Configure___Deploy/Configuration_Guides/H3C_S7500E-X_CG-Release7178-6W100/05/201602/914694_294551_0.htm">
article</a> also provides good visualization on packet structures for this IPinIP tunnelling approach.
</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<ol start="2" type="1" style="margin-bottom: 0cm;margin-top:0cm">
<li class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:0cm">
<span style="font-size:11.0pt">What output /error message?</span><span style="font-size:12.0pt"></span></li></ol>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">No crashing error message or similar happens, thus it is difficult for us to debug what is exactly going on. What is observed is that incoming packets
<b>cannot</b> be captured and processed by this flow rule, compared with using the flow rule only performs eth/ipv6 matching. After removing relevant commands
<b>or</b> code that perform inner header matching for IPv4 and ICMP, packets can be successfully processed. The code snippets to programmably achieve the above described IPinIP tunnelling approach are as following:</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"><Code snippet to initialise pattern masks></span></b><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">static const struct rte_flow_item_eth flow_item_eth_mask = {</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> .hdr.ether_type = 0xffff,</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">static const struct rte_flow_item_ipv6 flow_item_ipv6_dst_mask = {</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> .hdr.proto = 0xff,</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">static const struct rte_flow_item_ipv4 flow_item_ipv4_proto_mask = {</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> .hdr.next_proto_id = 0xff,</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">static const struct rte_flow_item_icmp flow_item_icmp_mask = {</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt"> .hdr.icmp_type = 0xff,</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-left:72.0pt">
<span style="font-size:10.5pt">};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"></Code snippet to initialise pattern masks></span></b><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"><Code snippet to create pattern template></span></b><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> // pattern template</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item pattern[] = {</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> [0] = {.type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT, .mask = &represented_port_mask},</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> [1] = {.type = RTE_FLOW_ITEM_TYPE_ETH, .mask = &flow_item_eth_mask},</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> [2] = {.type = RTE_FLOW_ITEM_TYPE_IPV6, .mask = &flow_item_ipv6_dst_mask},</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> [3] = {.type = RTE_FLOW_ITEM_TYPE_IPV4, .mask = &flow_item_ipv4_proto_mask},</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> [4] = {.type = RTE_FLOW_ITEM_TYPE_ICMP, .mask = &flow_item_icmp_mask},</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> [5] = {.type = RTE_FLOW_ITEM_TYPE_END,},</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> }; </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> port_template_info_pf.pattern_templates[0] = create_pattern_template(main_eswitch_port, pattern);</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"></Code snippet to create pattern template></span></b><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"><Code snippet to create patterns></span></b><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item_eth eth_pattern = {.type = htons(0x86DD)};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item_ipv6 ipv6_hdr = {0};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> ipv6_hdr.hdr.proto = IPPROTO_IPIP;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item_ipv4 ipv4_hdr = {0};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> ipv4_hdr.hdr.next_proto_id = IPPROTO_ICMP;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item_icmp icmp_hdr = {0};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> icmp_hdr.hdr.icmp_type = RTE_IP_ICMP_ECHO_REQUEST;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item_ethdev represented_port = {.port_id = pf_port_id};</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> struct rte_flow_item concrete_patterns[6];</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[0].type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[0].spec = &represented_port;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[0].mask = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[0].last = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[1].type = RTE_FLOW_ITEM_TYPE_ETH;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[1].spec = ð_pattern;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[1].mask = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[1].last = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[2].type = RTE_FLOW_ITEM_TYPE_IPV6;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[2].spec = &ipv6_hdr;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[2].mask = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[2].last = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[3].type = RTE_FLOW_ITEM_TYPE_IPV4;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[3].spec = &ipv4_hdr;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[3].mask = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[3].last = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[4].type = RTE_FLOW_ITEM_TYPE_ICMP;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[4].spec = &icmp_hdr;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[4].mask = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[4].last = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[5].type = RTE_FLOW_ITEM_TYPE_END;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[5].spec = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[5].mask = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:10.5pt"> concrete_patterns[5].last = NULL;</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size:10.5pt"></Code snippet to create patterns></span></b><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">Looking forward to your further support, and many thanks in advance.</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">Best regards,</span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt">Tao</span><span style="font-size:12.0pt"></span></p>
<p class="MsoListParagraph" style="margin: 0cm 0cm 0cm 36pt; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none; border-top:solid #B5C4DF 1.0pt; padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-bottom:12.0pt">
<b><span style="font-size: 12pt; color: black;">From: </span></b><span style="font-size: 12pt; color: black;">Asaf Penso <asafp@nvidia.com><br>
<b>Date: </b>Thursday, 21. March 2024 at 20:18<br>
<b>To: </b>Tao Li <byteocean@hotmail.com>, users@dpdk.org <users@dpdk.org><br>
<b>Subject: </b>Re: Finer matching granularity with async template API</span><span style="font-size:12.0pt"></span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">BTW,</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">In the non working example I see ipv6 / ipv4 / ICMP. Was this your intention or did you mean ipv6 / ICMP?</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div id="ms-outlook-mobile-signature">
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Regards,</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Asaf Penso</span></p>
</div>
</div>
<div class="MsoNormal" align="center" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;text-align:center">
<span style="font-size:12.0pt">
<hr size="0" width="100%" align="center">
</span></div>
<div id="divRplyFwdMsg">
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;"> Asaf Penso <asafp@nvidia.com><br>
<b>Sent:</b> Thursday, March 21, 2024 9:17:04 PM<br>
<b>To:</b> Tao Li <byteocean@hotmail.com>; users@dpdk.org <users@dpdk.org><br>
<b>Subject:</b> Re: Finer matching granularity with async template API</span><span style="font-size:12.0pt">
</span></p>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"> </span></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Hello Tao,</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">What is the output / error message you get?</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"> </span></p>
</div>
<div id="x_ms-outlook-mobile-signature">
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Regards,</span></p>
</div>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt">Asaf Penso</span></p>
</div>
</div>
<div class="MsoNormal" align="center" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;text-align:center">
<span style="font-size:12.0pt">
<hr size="0" width="100%" align="center">
</span></div>
<div id="x_divRplyFwdMsg">
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black;"> Tao Li <byteocean@hotmail.com><br>
<b>Sent:</b> Thursday, March 21, 2024 5:44:00 PM<br>
<b>To:</b> users@dpdk.org <users@dpdk.org><br>
<b>Subject:</b> Finer matching granularity with async template API</span><span style="font-size:12.0pt">
</span></p>
<div>
<p class="MsoNormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"> </span></p>
</div>
</div>
<div>
<div>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt">Hi all,</span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt">I am using async template API to install flow rules to perform actions on packets to achieve IP(v4)inIP(v6) tunnelling. Currently I am facing an issue where I cannot perform incoming traffic matching with finer granularity.
The test-pmd commands in use are as following:</span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span lang="EN-US"><Not working test-pmd commands></span></b><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
port stop all<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow configure 0 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0 # PF0<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow configure 1 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow configure 2 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow configure 3 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0 # PF1V0<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
port start all<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
set verbose 1<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow pattern_template 0 create transfer relaxed no pattern_template_id 10 template represented_port ethdev_port_id is 0 / eth / ipv6
<b>/ ipv4 / icmp</b> / end<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
set raw_decap 0 eth / ipv6 / end_set<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
set raw_encap 0 eth src is 11:22:33:44:55:66 dst is 66:9d:a7:fd:fb:43 type is 0x0800 / end_set<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow actions_template 0 create transfer actions_template_id 10 template raw_decap index 0 / raw_encap index 0 / represented_port / end mask raw_decap index 0 / raw_encap index 0 / represented_port / end<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow template_table 0 create group 0 priority 0 transfer wire_orig table_id 5 rules_number 8 pattern_template 10 actions_template 10<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow queue 0 create 0 template_table 5 pattern_template 0 actions_template 0 postpone no pattern represented_port ethdev_port_id is 0 / eth / ipv6
<b>/ ipv4 / icmp</b> / end actions raw_decap index 0 / raw_encap index 0 / represented_port ethdev_port_id 3 / end<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow push 0 queue 0<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span lang="EN-US"></Not working test-pmd commands></span></b><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt">Once I remove matching patterns for the inner packet headers( ipv4 / icmp) as following, I can see the processed packets inside VMs using tcpdump.</span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span lang="EN-US"><Working test-pmd commands></span></b><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
…<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow pattern_template 0 create transfer relaxed no pattern_template_id 10 template represented_port ethdev_port_id is 0 / eth / ipv6 / end<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
…<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
flow queue 0 create 0 template_table 5 pattern_template 0 actions_template 0 postpone no pattern represented_port ethdev_port_id is 0 / eth / ipv6 / end actions raw_decap index 0 / raw_encap index 0 / represented_port ethdev_port_id 3 / end<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
…<span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<b><span lang="EN-US"></Working test-pmd commands></span></b><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt">Similar combination works when using the synchronous rte_flow API. Any comment or suggestion on this issue is much appreciated. Many thanks in advance.</span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt">Best regards,</span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt">Tao</span><span style="font-size:12.0pt"></span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;margin-bottom:12.0pt">
<span style="font-size:12.0pt"> </span></p>
<p class="xxmsonormal" style="margin: 0cm; font-size: 10pt; font-family: Aptos, sans-serif;">
<span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:12.0pt"></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
</body>
</html>