<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:12.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
p.xxmsonormal, li.xxmsonormal, div.xxmsonormal
        {mso-style-name:x_x_msonormal;
        margin: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:344677577;
        mso-list-template-ids:-2079189024;}
@list l1
        {mso-list-id:818034374;
        mso-list-type:hybrid;
        mso-list-template-ids:-1871048930 134807567 134807577 134807579 134807567 134807577 134807579 134807567 134807577 134807579;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.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="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Hellp 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 your speedy reply. Please find additional information based on your questions, and I hope they would help to understand our purpose and issue.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<ol style="margin-top:0cm" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0cm;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">Why ipv6/ipv4/icmp?
<o:p></o:p></span></li></ol>
<p class="MsoListParagraph"><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.
<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<ol style="margin-top:0cm" start="2" type="1">
<li class="MsoListParagraph" style="margin-left:0cm;mso-list:l1 level1 lfo3"><span style="font-size:11.0pt">What output /error message?<o:p></o:p></span></li></ol>
<p class="MsoListParagraph"><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:<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><b><span style="font-size:10.5pt"><Code snippet to initialise pattern masks><o:p></o:p></span></b></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 = {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.ether_type = 0xffff,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt"><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_ipv6 flow_item_ipv6_dst_mask = {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.proto = 0xff,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt"><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_ipv4 flow_item_ipv4_proto_mask = {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.next_proto_id = 0xff,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt"><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_icmp flow_item_icmp_mask = {<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">                .hdr.icmp_type = 0xff,<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:72.0pt"><span style="font-size:10.5pt">};<o:p></o:p></span></p>
<p class="MsoListParagraph"><b><span style="font-size:10.5pt"></Code snippet to initialise pattern masks><o:p></o:p></span></b></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><b><span style="font-size:10.5pt"><Code snippet to create pattern template><o:p></o:p></span></b></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                // pattern template<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item pattern[] = {<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                                [0] = {.type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT, .mask = &represented_port_mask},<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                                [1] = {.type = RTE_FLOW_ITEM_TYPE_ETH, .mask = &flow_item_eth_mask},<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                                [2] = {.type = RTE_FLOW_ITEM_TYPE_IPV6, .mask = &flow_item_ipv6_dst_mask},<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                                [3] = {.type = RTE_FLOW_ITEM_TYPE_IPV4, .mask = &flow_item_ipv4_proto_mask},<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                                [4] = {.type = RTE_FLOW_ITEM_TYPE_ICMP, .mask = &flow_item_icmp_mask},<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                                [5] = {.type = RTE_FLOW_ITEM_TYPE_END,},<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                }; <o:p>
</o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                port_template_info_pf.pattern_templates[0] = create_pattern_template(main_eswitch_port, pattern);<o:p></o:p></span></p>
<p class="MsoListParagraph"><b><span style="font-size:10.5pt"></Code snippet to create pattern template><o:p></o:p></span></b></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><b><span style="font-size:10.5pt"><Code snippet to create patterns><o:p></o:p></span></b></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item_eth eth_pattern = {.type = htons(0x86DD)};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item_ipv6 ipv6_hdr = {0};<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                ipv6_hdr.hdr.proto = IPPROTO_IPIP;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item_ipv4 ipv4_hdr = {0};<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                ipv4_hdr.hdr.next_proto_id = IPPROTO_ICMP;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item_icmp icmp_hdr = {0};<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                icmp_hdr.hdr.icmp_type = RTE_IP_ICMP_ECHO_REQUEST;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item_ethdev represented_port = {.port_id = pf_port_id};<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                struct rte_flow_item concrete_patterns[6];<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[0].type = RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[0].spec = &represented_port;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[0].mask = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[0].last = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[1].type = RTE_FLOW_ITEM_TYPE_ETH;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[1].spec = &eth_pattern;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[1].mask = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[1].last = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[2].type = RTE_FLOW_ITEM_TYPE_IPV6;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[2].spec = &ipv6_hdr;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[2].mask = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[2].last = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[3].type = RTE_FLOW_ITEM_TYPE_IPV4;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[3].spec = &ipv4_hdr;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[3].mask = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[3].last = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[4].type = RTE_FLOW_ITEM_TYPE_ICMP;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[4].spec = &icmp_hdr;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[4].mask = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[4].last = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[5].type = RTE_FLOW_ITEM_TYPE_END;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[5].spec = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[5].mask = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:10.5pt">                concrete_patterns[5].last = NULL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><b><span style="font-size:10.5pt"></Code snippet to create patterns><o:p></o:p></span></b></p>
<p class="MsoListParagraph"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:11.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.<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="MsoListParagraph"><span style="font-size:11.0pt"><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="color:black">From:
</span></b><span style="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<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal">BTW,</p>
</div>
<div>
<p class="MsoNormal">In the non working example I see ipv6 / ipv4 / ICMP. Was this your intention or did you mean ipv6 / ICMP?</p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="ms-outlook-mobile-signature">
<div>
<p class="MsoNormal">Regards,</p>
</div>
<div>
<p class="MsoNormal">Asaf Penso</p>
</div>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="1" width="100%" align="center">
</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> </p>
<div>
<p class="MsoNormal"> </p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Hello Tao,</p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">What is the output / error message you get?</p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="x_ms-outlook-mobile-signature">
<div>
<p class="MsoNormal">Regards,</p>
</div>
<div>
<p class="MsoNormal">Asaf Penso</p>
</div>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="1" width="100%" align="center">
</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> </p>
<div>
<p class="MsoNormal"> </p>
</div>
</div>
<div>
<div>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt">Hi all,</span></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
<p class="xxmsonormal"><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></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
<p class="xxmsonormal"><b><span lang="EN-US" style="font-size:10.0pt"><Not working test-pmd commands></span></b></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">port stop all</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">port start all</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">set verbose 1</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">set raw_decap 0 eth  / ipv6 / end_set</span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt"> </span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">flow push 0 queue 0</span></p>
<p class="xxmsonormal"><b><span lang="EN-US" style="font-size:10.0pt"></Not working test-pmd commands></span></b></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
<p class="xxmsonormal"><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></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
<p class="xxmsonormal"><b><span lang="EN-US" style="font-size:10.0pt"><Working test-pmd commands></span></b></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">…</span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">…</span></p>
<p class="xxmsonormal"><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</span></p>
<p class="xxmsonormal"><span style="font-size:10.0pt">…</span></p>
<p class="xxmsonormal"><b><span lang="EN-US" style="font-size:10.0pt"></Working test-pmd commands></span></b></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
<p class="xxmsonormal"><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></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt">Best regards,</span></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt">Tao</span></p>
<p class="xxmsonormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<p class="xxmsonormal"><span lang="EN-US" style="font-size:11.0pt"> </span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>