<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:10.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
p.xxmsonormal, li.xxmsonormal, div.xxmsonormal
        {mso-style-name:xxmsonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:87581235;
        mso-list-template-ids:39334618;}
@list l1
        {mso-list-id:892236586;
        mso-list-template-ids:-1579120894;}
@list l1:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2
        {mso-list-id:1043751340;
        mso-list-template-ids:-1631295972;}
@list l2:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3
        {mso-list-id:1309241434;
        mso-list-template-ids:-689036760;}
@list l3:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l3:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="en-DE" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Hello Asaf,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Thanks for sharing this info, and looking forward to support this feature.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Tao<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></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-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Asaf Penso <asafp@nvidia.com><br>
<b>Date: </b>Tuesday, 26. March 2024 at 20:43<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<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Hello Tao,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Currently, we don't support IPinIP with template API.<o:p></o:p></span></p>
</div>
<div id="ms-outlook-mobile-signature">
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">We have it in our roadmap, but still no concrete release date for it.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Regards,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Asaf Penso<o:p></o:p></span></p>
</div>
</div>
<div id="mail-editor-reference-message-container">
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt">
<hr size="0" width="100%" align="center">
</span></div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><strong><span style="font-size:11.0pt;font-family:"Aptos",sans-serif">From:</span></strong><span style="font-size:11.0pt"> Tao Li <byteocean@hotmail.com><br>
<strong><span style="font-family:"Aptos",sans-serif">Sent:</span></strong> Friday, March 22, 2024 5:08:46 pm<br>
<strong><span style="font-family:"Aptos",sans-serif">To:</span></strong> Asaf Penso <asafp@nvidia.com>; users@dpdk.org <users@dpdk.org><br>
<strong><span style="font-family:"Aptos",sans-serif">Subject:</span></strong> Re: Finer matching granularity with async template API<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hello Asaf,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><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><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-size:10.5pt"><Code snippet to generate IPinIP packets></span></b><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">#!/usr/bin/python3</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">from scapy.all import *</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">from scapy.layers.inet import Ether, UDP, ICMP</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">from scapy.layers.inet6 import *</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ether = Ether()</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ether.src = "src mac"</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ether.dst = "dst mac"</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ether.type = 0x86DD</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ipv6 = IPv6()</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ipv6.src = "src ipv6 addr"</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ipv6.dst = "dst ipv6 addr"</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">ipv6.nh = 4</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">pkt = ether / ipv6 / IP(src="192.168.129.5",dst="172.32.4.9") / ICMP(type=8)</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">print(pkt.show())</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.5pt">sendp(pkt, iface ="ens1f0np0")</span><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-size:10.5pt">< /Code snippet to generate IPinIP packets ></span></b><o:p></o:p></p>
<p class="MsoNormal"><b><span style="font-size:10.5pt"> </span></b><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt">Cheers,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt">Tao</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></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-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;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><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hellp Asaf,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><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><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<ol style="margin-top:0cm" start="1" type="1">
<li class="MsoListParagraph" style="margin-top:0cm;margin-bottom:0cm;mso-list:l2 level1 lfo3">
<span style="font-size:11.0pt">Why ipv6/ipv4/icmp? </span><span style="font-size:10.0pt"><o:p></o:p></span></li></ol>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<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
</span><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"><span style="font-size:11.0pt">article</span></a><span style="font-size:11.0pt">
 also provides good visualization on packet structures for this IPinIP tunnelling approach.
</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<ol style="margin-top:0cm" start="2" type="1">
<li class="MsoListParagraph" style="margin-top:0cm;margin-bottom:0cm;mso-list:l3 level1 lfo6">
<span style="font-size:11.0pt">What output /error message?</span><span style="font-size:10.0pt"><o:p></o:p></span></li></ol>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<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:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<b><span style="font-size:10.5pt"><Code snippet to initialise pattern masks></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">static const struct rte_flow_item_eth flow_item_eth_mask = {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.ether_type = 0xffff,</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">static const struct rte_flow_item_ipv6 flow_item_ipv6_dst_mask = {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.proto = 0xff,</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">static const struct rte_flow_item_ipv4 flow_item_ipv4_proto_mask = {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.next_proto_id = 0xff,</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">static const struct rte_flow_item_icmp flow_item_icmp_mask = {</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.icmp_type = 0xff,</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};</span><o:p></o:p></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<b><span style="font-size:10.5pt"></Code snippet to initialise pattern masks></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<b><span style="font-size:10.5pt"><Code snippet to create pattern template></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                // pattern template</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item pattern[] = {</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                                [0] = {.type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT, .mask = &represented_port_mask},</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                                [1] = {.type = RTE_FLOW_ITEM_TYPE_ETH, .mask = &flow_item_eth_mask},</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                                [2] = {.type = RTE_FLOW_ITEM_TYPE_IPV6, .mask = &flow_item_ipv6_dst_mask},</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                                [3] = {.type = RTE_FLOW_ITEM_TYPE_IPV4, .mask = &flow_item_ipv4_proto_mask},</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                                [4] = {.type = RTE_FLOW_ITEM_TYPE_ICMP, .mask = &flow_item_icmp_mask},</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                                [5] = {.type = RTE_FLOW_ITEM_TYPE_END,},</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                }; </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<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:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<b><span style="font-size:10.5pt"></Code snippet to create pattern template></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<b><span style="font-size:10.5pt"><Code snippet to create patterns></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item_eth eth_pattern = {.type = htons(0x86DD)};</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.5pt"> </span><o:p></o:p></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item_ipv6 ipv6_hdr = {0};</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                ipv6_hdr.hdr.proto = IPPROTO_IPIP;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item_ipv4 ipv4_hdr = {0};</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                ipv4_hdr.hdr.next_proto_id = IPPROTO_ICMP;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item_icmp icmp_hdr = {0};</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                icmp_hdr.hdr.icmp_type = RTE_IP_ICMP_ECHO_REQUEST;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item_ethdev represented_port = {.port_id = pf_port_id};</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                struct rte_flow_item concrete_patterns[6];</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[0].type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[0].spec = &represented_port;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[0].mask = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[0].last = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[1].type = RTE_FLOW_ITEM_TYPE_ETH;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[1].spec = &eth_pattern;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[1].mask = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[1].last = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[2].type = RTE_FLOW_ITEM_TYPE_IPV6;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[2].spec = &ipv6_hdr;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[2].mask = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[2].last = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[3].type = RTE_FLOW_ITEM_TYPE_IPV4;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[3].spec = &ipv4_hdr;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[3].mask = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[3].last = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[4].type = RTE_FLOW_ITEM_TYPE_ICMP;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[4].spec = &icmp_hdr;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[4].mask = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[4].last = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[5].type = RTE_FLOW_ITEM_TYPE_END;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[5].spec = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[5].mask = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:10.5pt">                concrete_patterns[5].last = NULL;</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<b><span style="font-size:10.5pt"></Code snippet to create patterns></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Looking forward to your further support, and many thanks in advance.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Best regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Tao</span><o:p></o:p></p>
<p class="MsoListParagraph" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt">
<span style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><o:p></o:p></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-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;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><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">BTW,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><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><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
</div>
<div id="ms-outlook-mobile-signature">
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Regards,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Asaf Penso</span><o:p></o:p></p>
</div>
</div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt">
<hr size="0" width="100%" align="center">
</span></div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">From:</span></b><span style="font-size:11.0pt;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><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Hello Tao,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">What is the output / error message you get?</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
</div>
<div id="x_ms-outlook-mobile-signature">
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Regards,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt">Asaf Penso</span><o:p></o:p></p>
</div>
</div>
<div class="MsoNormal" align="center" style="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"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">From:</span></b><span style="font-size:11.0pt;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><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt">Hi all,</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><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:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><b><span lang="EN-US" style="font-size:10.0pt"><Not working test-pmd commands></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">port stop all<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow configure 0 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0   # PF0<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow configure 1 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow configure 2 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow configure 3 queues_number 4 queues_size 64 counters_number 0 aging_counters_number 0 meters_number 0 flags 0  # PF1V0<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">port start all<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">set verbose 1<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">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<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">set raw_decap 0 eth  / ipv6 / end_set<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">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<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">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<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow template_table 0 create  group 0 priority 0  transfer wire_orig table_id 5 rules_number 8 pattern_template 10 actions_template 10<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">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<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt"> <o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow push 0 queue 0<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><b><span lang="EN-US" style="font-size:10.0pt"></Not working test-pmd commands></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><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:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><b><span lang="EN-US" style="font-size:10.0pt"><Working test-pmd commands></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">…<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">flow pattern_template 0 create transfer relaxed no pattern_template_id 10  template represented_port ethdev_port_id is 0 / eth  / ipv6 / end<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">…<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">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<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span style="font-size:10.0pt">…<o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><b><span lang="EN-US" style="font-size:10.0pt"></Working test-pmd commands></span></b><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><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:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt">Best regards,</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt">Tao</span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm">
 <span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="xxmsonormal" style="margin:0cm"><span lang="EN-US" style="font-size:11.0pt"> </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>