<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:"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;}
/* 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-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@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"><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>
</body>
</html>