<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=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></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-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi Yash,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I think these four bytes are CRC length. In our pmd implementation, crc size will not calculated it into overall packet length. So when comparing the packet length, need add it first.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">If crc has been included into statistic, you can just remove it for your test. It is also fine to add some special check for NIC in DTS test suites.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Marvin<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><a name="_____replyseparator"></a><b>From:</b> dts [mailto:dts-bounces@dpdk.org]
<b>On Behalf Of </b>Sharma, Yash<br>
<b>Sent:</b> Wednesday, August 22, 2018 4:59 PM<br>
<b>To:</b> dts@dpdk.org<br>
<b>Subject:</b> [dts] Jumbo Frame Test Cases failing On NIC Adapters<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am using dts 18.02 and dpdk 18.08.Trying to test JumboFrame On 100G(4x25) adapter. JumboFrame test cases are failing and giving this Exception :
<span style="background:yellow;mso-highlight:yellow">TestJumboframes: Test Case test_jumboframes_jumbo_jumbo Result FAILED: 'packet pass assert error'</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In  TestSuite_jumboframes.py   TestCase  “test_jumboframes_jumbo_jumbo”.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here in the definition of  “jumboframes_send_packet”. Inside verify() function while calling” self.pmdout.check_tx_bytes(<span style="background:lime;mso-highlight:lime">tx_bytes + 4</span>, pktsize ))” and “<span style="background:lime;mso-highlight:lime">((rx_bytes
 + 4</span>) == pktsize)”, <o:p></o:p></p>
<p class="MsoNormal">It is adding 4 bytes to <span style="background:lime;mso-highlight:lime">
tx_bytes</span> and 4 bytes to <span style="background:lime;mso-highlight:lime">rx_bytes</span>.Can anyone Please explain me why these extra 4 bytes are veing added.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Adding these 4 bytes is getting the condition false and test cases are failing. If I don’t add these 4 bytes to both tx_bytes and rx_bytes then the test cases are passing successfully.<o:p></o:p></p>
<p class="MsoNormal">In the def of “test_jumboframes_bigger_jumbo”, It is mentioned that:  “<span style="background:yellow;mso-highlight:yellow">On 1G NICs, when the jubmo frame MTU set as 9000, the software adjust it to 9004</span>.”
<o:p></o:p></p>
<p class="MsoNormal">Is this the reason why extra 4 bytes are being added?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">def jumboframes_send_packet(self, pktsize, received=True):<o:p></o:p></p>
<p class="MsoNormal">        """<o:p></o:p></p>
<p class="MsoNormal">        Send 1 packet to portid<o:p></o:p></p>
<p class="MsoNormal">        """<o:p></o:p></p>
<p class="MsoNormal">        tx_pkts_ori, _, tx_bytes_ori = [int(_) for _ in self.jumboframes_get_stat(self.rx_port, "tx")]<o:p></o:p></p>
<p class="MsoNormal">        rx_pkts_ori, rx_err_ori, rx_bytes_ori = [int(_) for _ in self.jumboframes_get_stat(self.tx_port, "rx")]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        itf = self.tester.get_interface(self.tester.get_local_port(self.tx_port))<o:p></o:p></p>
<p class="MsoNormal">        mac = self.dut.get_mac_address(self.tx_port)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        # The packet total size include ethernet header, ip header, and payload.<o:p></o:p></p>
<p class="MsoNormal">        # ethernet header length is 18 bytes, ip standard header length is 20 bytes.<o:p></o:p></p>
<p class="MsoNormal">        pktlen = pktsize - ETHER_HEADER_LEN<o:p></o:p></p>
<p class="MsoNormal">        padding = pktlen - IP_HEADER_LEN<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        self.tester.scapy_foreground()<o:p></o:p></p>
<p class="MsoNormal">        self.tester.scapy_append('nutmac="%s"' % mac)<o:p></o:p></p>
<p class="MsoNormal">        self.tester.scapy_append('sendp([Ether(dst=nutmac, src="52:00:00:00:00:00")/IP(len=%s)/Raw(load="\x50"*%s)], iface="%s")' % (pktlen, padding, itf))<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        out = self.tester.scapy_execute()<o:p></o:p></p>
<p class="MsoNormal">        sleep(5)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        tx_pkts, _, tx_bytes = [int(_) for _ in self.jumboframes_get_stat(self.rx_port, "tx")]<o:p></o:p></p>
<p class="MsoNormal">        # p0tx_pkts, p0tx_err, p0tx_bytes<o:p></o:p></p>
<p class="MsoNormal">        rx_pkts, rx_err, rx_bytes = [int(_) for _ in self.jumboframes_get_stat(self.tx_port, "rx")]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        tx_pkts -= tx_pkts_ori<o:p></o:p></p>
<p class="MsoNormal">        tx_bytes -= tx_bytes_ori<o:p></o:p></p>
<p class="MsoNormal">        rx_pkts -= rx_pkts_ori<o:p></o:p></p>
<p class="MsoNormal">        rx_bytes -= rx_bytes_ori<o:p></o:p></p>
<p class="MsoNormal">        rx_err -= rx_err_ori<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        if received:<o:p></o:p></p>
<p class="MsoNormal">            self.verify(self.pmdout.check_tx_bytes(tx_pkts, rx_pkts)<o:p></o:p></p>
<p class="MsoNormal">                         and ( self.pmdout.check_tx_bytes(<span style="background:lime;mso-highlight:lime">tx_bytes + 4</span>, pktsize ))<o:p></o:p></p>
<p class="MsoNormal">                         and <span style="background:lime;mso-highlight:lime">
((rx_bytes + 4</span>) == pktsize),<o:p></o:p></p>
<p class="MsoNormal">                        "packet pass assert error")<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Yash<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>