<div dir="ltr">Hi,<div><br></div><div>I didn't noticed previously that this might be connected to my change so thank for giving the feedback.<br></div><div><br></div><div>I need to spend some time and think about it, but is seems that "wirespeed" function should be function of a nic or rather a port, not test class.</div><div>And I'm surprised that it didn't check the actual speed of a port since even ThunderX NIC 10G can work either 1G or 10G.</div><div><br></div><div>So in general please give me some time I should came up with some more elegant solution which possibly I can add as V2 of this patch.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 4 December 2017 at 13:12, Verma, Ayuj <span dir="ltr"><<a href="mailto:Ayuj.Verma@cavium.com" target="_blank">Ayuj.Verma@cavium.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div id="m_5481072119043250413divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,"EmojiFont","Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi <font style="font-size:11pt" face="Calibri, sans-serif" color="#000000">
Biernacki</font>,</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Thanks for the heads up.</p>
<p style="margin-top:0;margin-bottom:0">The reason for us to put this check is ThunderX
<span>Ethernet controller</span>s 1G, 10G and 40G NIC devices have same device-id which make it difficult to recognize correct device being tested, which is required in ./<span>framework</span>/<span>test_case.py</span>  "wirespeed" to provide bitrate for particular
 NIC.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Initially we added support for 10G only but, we planed to have support for our 40G NIC also.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">More acceptable way to do this might be having a global variable for linkspeed and using it further in </p>
<div>./<span>framework</span>/<span>test_case.py</span> or elsewhere. <br>
User can provide linkspeed.<br>
<br>
Let us know your thoughts on this.<br>
<br>
Thanks and regards<br>
Ayuj Verma<br>
</div>
<br>
<p></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<br>
<br>
<div style="color:rgb(26,26,26)">
<hr style="display:inline-block;width:98%">
<div id="m_5481072119043250413divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Radoslaw Biernacki <<a href="mailto:radoslaw.biernacki@linaro.org" target="_blank">radoslaw.biernacki@linaro.org</a><wbr>><br>
<b>Sent:</b> 04 December 2017 16:14<br>
<b>To:</b> <a href="mailto:dts@dpdk.org" target="_blank">dts@dpdk.org</a>; Verma, Ayuj; Jogarao, Nartu<br>
<b>Cc:</b> Herbert Guan; Radoslaw Biernacki; Czubak, Angela; Liu, Yong<br>
<b>Subject:</b> Re: [PATCH 1/4] framework/crb: Fixing ThunderX ethernet controler detection</font>
<div> </div>
</div><div><div class="h5">
<div>
<div dir="ltr">Ayuj and Jogarao you might also be interested to look at this one.</div>
<div class="m_5481072119043250413x_gmail_extra"><br>
<div class="m_5481072119043250413x_gmail_quote">On 1 December 2017 at 22:20, Radoslaw Biernacki <span dir="ltr">
<<a href="mailto:radoslaw.biernacki@linaro.org" target="_blank">radoslaw.biernacki@linaro.org</a><wbr>></span> wrote:<br>
<blockquote class="m_5481072119043250413x_gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Asking for link speed for ThunderX Ethernet controller is not reliable<br>
since driver report error when the link is down. In fact we dont need<br>
to ask for link speed as Ethernet controllers can be easily identified<br>
by device name from lspci. The mapping will fuhrer filter out the PF<br>
and VF interfaces which does not have the interface name assigned.<br>
<br>
Fixes: 150716d93f5e ("framework crb: Appending only 10G devices for cavium")<br>
<br>
Signed-off-by: Radoslaw Biernacki <<a href="mailto:radoslaw.biernacki@linaro.org" target="_blank">radoslaw.biernacki@linaro.org</a><wbr>><br>
---<br>
 framework/crb.py | 11 ++---------<br>
 1 file changed, 2 insertions(+), 9 deletions(-)<br>
<br>
diff --git a/framework/crb.py b/framework/crb.py<br>
index dd29a8b..36b1ffe 100644<br>
--- a/framework/crb.py<br>
+++ b/framework/crb.py<br>
@@ -268,20 +268,13 @@ class Crb(object):<br>
         Look for the NIC's information (PCI Id and card type).<br>
         """<br>
         out = self.send_expect(<br>
-            "lspci -Dnn | grep -i eth", "# ", alt_session=True)<br>
+            "lspci -Dnn | grep -i 'Ethernet controller'", "# ", alt_session=True)<br>
         rexp = r"([\da-f]{4}:[\da-f]{2}:[\da-<wbr>f]{2}.\d{1}) .*Eth.*?ernet .*?([\da-f]{4}:[\da-f]{4})"<br>
         pattern = re.compile(rexp)<br>
         match = pattern.findall(out)<br>
         self.pci_devices_info = []<br>
         for i in range(len(match)):<br>
-            #check if device is cavium and check its linkspeed, append only if it is 10G<br>
-            if "177d:" in match[i][1]:<br>
-                linkspeed = "10000"<br>
-                nic_linkspeed = self.send_command("cat /sys/bus/pci/devices/%s/net/*/<wbr>speed" % match[i][0])<br>
-                if nic_linkspeed == linkspeed:<br>
-                    self.pci_devices_info.append((<wbr>match[i][0], match[i][1]))<br>
-            else:<br>
-                self.pci_devices_info.append((<wbr>match[i][0], match[i][1]))<br>
+            self.pci_devices_info.append((<wbr>match[i][0], match[i][1]))<br>
<br>
     def pci_devices_information_uncach<wbr>ed_freebsd(self):<br>
         """<br>
<span class="m_5481072119043250413x_HOEnZb"><font color="#888888">--<br>
2.7.4<br>
<br>
</font></span></blockquote>
</div>
<br>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>