[dts] [PATCH 1/6] framework: crb :add some parameters and check_Mellanox_pci function to identify mellanox device

Raslan Darawsheh rasland at mellanox.com
Thu Oct 29 09:04:38 CET 2015


Hi Xu, HuilongX ,

>From what I changed it seems that it's only executed over the linux OS. And there are an already "lspci" command executed inside the function. 
Can you explain more ?
Kindest regards 
Raslan Darawsheh

-----Original Message-----
From: Xu, HuilongX [mailto:huilongx.xu at intel.com] 
Sent: Thursday, October 29, 2015 4:01 AM
To: Raslan Darawsheh <rasland at mellanox.com>; dts at dpdk.org
Cc: rdarawsheh at asaltech.com
Subject: RE: [dts] [PATCH 1/6] framework: crb :add some parameters and check_Mellanox_pci function to identify mellanox device


Hi darawsheh,
Pls see my comments as below., thanks  a lot
> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Raslan Darawsheh
> Sent: Tuesday, October 27, 2015 2:08 PM
> To: dts at dpdk.org
> Cc: rdarawsheh at asaltech.com
> Subject: [dts] [PATCH 1/6] framework: crb :add some parameters and 
> check_Mellanox_pci function to identify mellanox device
> 
> From: Raslsn Darawsheh <rdarawsheh at asaltech.com>
> 
> Signed-off-by: Raslsn Darawsheh <rdarawsheh at asaltech.com>
> ---
>  framework/crb.py | 23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/framework/crb.py b/framework/crb.py index 
> fcbd7d9..0acec3b 100644
> --- a/framework/crb.py
> +++ b/framework/crb.py
> @@ -33,7 +33,7 @@ import time
>  import dts
>  import re
>  import os
> -from settings import TIMEOUT, IXIA
> +from settings import TIMEOUT, IXIA, NICS
> 
>  """
>  CRB (customer reference board) basic functions and handlers @@ -54,6 
> +54,9 @@ class Crb(object):
>          self.skip_setup = False
>          self.serializer = serializer
>          self.ports_info = None
> +        self.isMellanox = False
> +        self.mellanoxPortCount = 0
> +        self.mellanoxCardType = None
> 
>      def send_expect(self, cmds, expected, timeout=TIMEOUT,
>                      alt_session=False, verify=False):
> @@ -79,6 +82,19 @@ class Crb(object):
> 
>          return self.session.send_command(cmds, timeout)
> 
> +    def check_Mellanox_pci(self,pci_bus,pci_id):
> +        """
> +        check if the PCI is Mellanox device or not
> +        its used to set a flag to handle Mellanox ports differently
> +        """
> +        out = self.send_expect("lspci -nn | grep -i "  + pci_bus, "# ")
> +        if "Mell" in out:
> +            self.isMellanox =True
> +            if NICS['ConnectX_4'] in out:
> +                self.mellanoxCardType = "cx4"
> +            else:
> +                self.mellanoxCardType = "cx3"
> +
>      def get_session_output(self, timeout=TIMEOUT):
>          """
>          Get session output message before timeout @@ -196,6 +212,11 
> @@ class Crb(object):
>          rexp = r"([\da-f]{2}:[\da-f]{2}.\d{1}) .*Eth.*?ernet 
> .*?([\da- f]{4}:[\da-f]{4})"
>          pattern = re.compile(rexp)
>          match = pattern.findall(out)
Could you not changed this function? because it not about dts feature It only a ssh session function, when you exec "lspci" command, freebsd os not support.
So some  case will failed on freebesd.
> +        out = self.send_expect(
> +                        "lspci -nn ", "# ", alt_session=True)
> +        rexp = r"([\da-f]{2}:[\da-f]{2}.\d{1}) Network .*?([\da-
> f]{4}:[\da-f]{4})"
> +        pattern = re.compile(rexp)
> +        match += pattern.findall(out)
>          self.pci_devices_info = []
>          for i in range(len(match)):
>              self.pci_devices_info.append((match[i][0], match[i][1]))
> --
> 1.8.3.1



More information about the dts mailing list