<html 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=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<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:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
/* 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;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.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;}
--></style>
</head>
<body lang="en-PS" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<div id="mail-editor-reference-message-container">
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:36.0pt">
<span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> From: Raslan Darawsheh [<a href="mailto:rasland@nvidia.com">mailto:rasland@nvidia.com</a>]<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> Sent: Sunday, 23 March 2025 13.28<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>
<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> Updated the `get_ethertype_by_ptype` function to correctly parse VLAN<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> headers.<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>
<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> Fixes: 76730c7b9b5a ("app/testpmd: use packet type parsing API")<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> Cc: haijie1@huawei.com<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>
<br>
</span><span lang="EN-US" style="font-size:11.0pt">>></span><span style="font-size:11.0pt">> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com><br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> ---<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>  app/test-pmd/csumonly.c | 8 +++++---<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>  1 file changed, 5 insertions(+), 3 deletions(-)<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>
<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> index 5b906eaa53..302cc4cc66 100644<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> --- a/app/test-pmd/csumonly.c<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> +++ b/app/test-pmd/csumonly.c<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> @@ -468,6 +468,7 @@ get_ethertype_by_ptype(struct rte_ether_hdr<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> *eth_hdr, uint32_t ptype)<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>  {<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>        struct rte_vlan_hdr *vlan_hdr;<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>        uint16_t ethertype;<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> +     uint32_t i = 0;<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>
<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>        switch (ptype) {<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>        case RTE_PTYPE_L3_IPV4:<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> @@ -486,10 +487,11 @@ get_ethertype_by_ptype(struct rte_ether_hdr<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> *eth_hdr, uint32_t ptype)<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>                return _htons(RTE_ETHER_TYPE_IPV6);<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>        default:<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>                ethertype = eth_hdr->ether_type;<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> -             while (eth_hdr->ether_type == _htons(RTE_ETHER_TYPE_VLAN)<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> ||<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> -                     eth_hdr->ether_type == _htons(RTE_ETHER_TYPE_QINQ)) {<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> +             while (ethertype == _htons(RTE_ETHER_TYPE_VLAN) ||<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> +                     ethertype == _htons(RTE_ETHER_TYPE_QINQ)) {<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>                        vlan_hdr = (struct rte_vlan_hdr *)<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> -                             ((char *)eth_hdr + sizeof(*eth_hdr));<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> +                             ((char *)eth_hdr + sizeof(*eth_hdr) +<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> +                             (i * sizeof(struct rte_vlan_hdr)));<br>
<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">Doesn't work; "i" is not incremented, and remains 0.<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">Instead do this: Initialize (struct rte_vlan_hdr *)vlan_hdr=RTE_PTR_ADD(eth_hdr, offsetof(rte_ether_hdr, ether_type)) before the loop, and move vlan_hdr+=RTE_VLAN_HLEN
 inside the loop.<br>
</span><span lang="EN-US" style="font-size:11.0pt">Yes you are correct I had a (i++ *) but must have slipped while rebasing will handle your way in v2
</span><span style="font-size:11.0pt"><br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>                        ethertype = vlan_hdr->eth_proto;<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>                }<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">>                return ethertype;<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> --<br>
</span><span lang="EN-US" style="font-size:11.0pt">></span><span style="font-size:11.0pt">> 2.39.5 (Apple Git-154)</span><span lang="EN-US" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:11.0pt">Kindest regards<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:11.0pt">Raslan Darawsheh<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>