test suite reviews and discussions
 help / color / mirror / Atom feed
From: Angela Czubak <aczubak@caviumnetworks.com>
To: dts@dpdk.org
Cc: Angela Czubak <aczubak@caviumnetworks.com>
Subject: [dts] [PATCH v2 06/28]  framework: checking link with IPv4 ping
Date: Mon, 10 Apr 2017 19:09:00 +0200	[thread overview]
Message-ID: <1491844162-16300-7-git-send-email-aczubak@caviumnetworks.com> (raw)
In-Reply-To: <1491844162-16300-1-git-send-email-aczubak@caviumnetworks.com>

Some kernels may not use IPv6 and hence there is no point using ping6.
If lack of link by IPv6 is detected then IPv4 pings are sent
(previously ports where skipped if they had no IPv6 connectivity).
DPDK binding script uses "--force" argument, since interfaces are
detected as active.

Signed-off-by: Angela Czubak <aczubak at caviumnetworks.com>
---
 framework/dut.py          | 30 ++++++++++++++++++++----------
 framework/project_dpdk.py |  2 +-
 framework/tester.py       | 11 +++++++++++
 nics/net_device.py        |  8 ++++----
 4 files changed, 36 insertions(+), 15 deletions(-)

diff --git a/framework/dut.py b/framework/dut.py
index b5a21ce..cd899c8 100644
--- a/framework/dut.py
+++ b/framework/dut.py
@@ -382,7 +382,7 @@ class Dut(Crb):
             return
         op = self.send_command("ls")
         if "usertools" in op:
-            self.send_expect('usertools/dpdk-devbind.py %s' % binding_list, '# ')
+            self.send_expect('usertools/dpdk-devbind.py --force %s' % binding_list, '# ')
         else:
             op = self.send_command("ls tools")
             if "dpdk_nic_bind.py" in op:
@@ -602,7 +602,12 @@ class Dut(Crb):
             if ":" not in ipv6:
                 ipv6 = "Not connected"
 
+            out = self.send_expect("ip -family inet address show dev %s | awk '/inet/ { print $2 }'"
+                    % intf, "# ")
+            ipv4 = out.split('/')[0]
+
             port_info['ipv6'] = ipv6
+            port_info['ipv4'] = ipv4
 
     def rescan_ports_uncached_freebsd(self):
         unknow_interface = RED('Skipped: unknow_interface')
@@ -922,15 +927,20 @@ class Dut(Crb):
                 # skip ping those not connected port
                 ipv6 = self.get_ipv6_address(dutPort)
                 if ipv6 == "Not connected":
-                    continue
-
-                if getattr(self, 'send_ping6', None):
-                    out = self.send_ping6(
-                        dutPort, self.tester.ports_info[remotePort]['ipv6'],
-                        self.get_mac_address(dutPort))
-                else:
-                    out = self.tester.send_ping6(
-                        remotePort, ipv6, self.get_mac_address(dutPort))
+                    if self.tester.ports_info[remotePort].has_key('ipv4'):
+			out = self.tester.send_ping(
+				dutPort, self.tester.ports_info[remotePort]['ipv4'],
+				self.get_mac_address(dutPort))
+		    else:
+                    	continue
+		else:
+                    if getattr(self, 'send_ping6', None):
+                    	out = self.send_ping6(
+                        	dutPort, self.tester.ports_info[remotePort]['ipv6'],
+                        	self.get_mac_address(dutPort))
+                    else:
+                    	out = self.tester.send_ping6(
+				remotePort, ipv6, self.get_mac_address(dutPort))
 
                 if ('64 bytes from' in out):
                     self.logger.info("PORT MAP: [dut %d: tester %d]" % (dutPort, remotePort))
diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py
index f3d3701..2a50e87 100644
--- a/framework/project_dpdk.py
+++ b/framework/project_dpdk.py
@@ -325,7 +325,7 @@ class DPDKdut(Dut):
 
         op = self.send_command("ls")
         if "usertools" in op:
-            self.send_expect('usertools/dpdk-devbind.py %s' % binding_list, '# ')
+            self.send_expect('usertools/dpdk-devbind.py --force %s' % binding_list, '# ')
         else:
             op = self.send_command("ls tools")
             if "dpdk_nic_bind.py" in op:
diff --git a/framework/tester.py b/framework/tester.py
index d793e91..5cf5e00 100644
--- a/framework/tester.py
+++ b/framework/tester.py
@@ -336,6 +336,7 @@ class Tester(Crb):
             macaddr = port.get_mac_addr()
 
             ipv6 = port.get_ipv6_addr()
+            ipv4 = port.get_ipv4_addr()
 
             # store the port info to port mapping
             self.ports_info.append({'port': port,
@@ -343,6 +344,7 @@ class Tester(Crb):
                                     'type': pci_id,
                                     'intf': intf,
                                     'mac': macaddr,
+				    'ipv4': ipv4,
                                     'ipv6': ipv6})
 
             # return if port is not connect x3
@@ -364,6 +366,15 @@ class Tester(Crb):
                                     'mac': macaddr,
                                     'ipv6': ipv6})
 
+    def send_ping(self, localPort, ipv4, mac):
+        """
+        Send ping6 packet from local port with destination ipv4 address.
+        """
+        if self.ports_info[localPort]['type'] == 'ixia':
+            return "Not implemented yet"
+        else:
+            return self.send_expect("ping -w 5 -c 5 -A -I %s %s" % (self.ports_info[localPort]['intf'], ipv4), "# ", 10)
+
     def send_ping6(self, localPort, ipv6, mac):
         """
         Send ping6 packet from local port with destination ipv6 address.
diff --git a/nics/net_device.py b/nics/net_device.py
index 0af4ad5..4861145 100644
--- a/nics/net_device.py
+++ b/nics/net_device.py
@@ -343,21 +343,21 @@ class NetDevice(object):
         """
         get_ipv4_addr = getattr(
             self, 'get_ipv4_addr_%s' % self.__get_os_type())
-        return get_ipv4_addr(self.intf_name, self.currenct_driver)
+        return get_ipv4_addr(self.intf_name, self.current_driver)
 
     def get_ipv4_addr_linux(self, intf, driver):
         """
         Get ipv4 address of specified pci device on linux.
         """
         try:
-            get_ipv4_addr_linux = getattr(self, 'get_ipv4_linux_%s' % driver)
+            get_ipv4_addr_linux = getattr(self, 'get_ipv4_addr_linux_%s' % driver)
         except Exception as e:
             generic_driver = 'generic'
             get_ipv4_addr_linux = getattr(
-                self, 'get_ipv4_linux_%s' %
+                self, 'get_ipv4_addr_linux_%s' %
                 generic_driver)
 
-        return get_ipv4_addr_linux(intf, domain_id, bus_id, devfun_id, driver)
+        return get_ipv4_addr_linux(intf)
 
     def get_ipv4_addr_linux_generic(self, intf):
         """
-- 
2.7.4

  parent reply	other threads:[~2017-04-10 17:09 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-06 17:51 [dts] [PATCH 00/26] DTS support for Cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 01/26] framework settings: Adding cavium PCI IDs and drivers Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 02/26] framework dut and project_dpdk: using correct available binding scripts Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 03/26] framework dut and project_dpdk: binding smaller number of hugepages for arm64 Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 04/26] framework crb: Appending only 10G devices for cavium Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 05/26] framework project_dpdk: asserting loading vfio-pci by using DPDK binding script Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 06/26] framework: checking link with IPv4 ping Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 07/26] tests: ipv4_reassembly - added splitting result in tcpdump_command Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 08/26] framework: getting DPDK binding script moved to a method in dut Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 09/26] tests: Modified tests to take cavium nics into account Angela Czubak
2017-04-10 17:08   ` Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 10/26] tests: checksum_offload - fixes Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 11/26] tests: dynamic_config - taking into account cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 12/26] tests: fdir - skipping fdir tests for Cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 13/26] tests: ieee1588 - skipping ieee1588_enable test " Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 14/26] tests: jumboframes - skipping jumboframes tests testing bigger than allowed frames " Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 15/26] tests: l2fwd - fixes to run on two cards (same NIC) and expecting "L2FWD: entering main loop" instead of "memory mapped" Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 16/26] tests: link_status_interrupt - skipping test_link_status_interrupt_port_available for Cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 17/26] tests: link_status_interrupt - skipping tests verifying adding MAC addresses " Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 18/26] tests: pmdpcap - modifying the right config file + importing utils after scapy Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 19/26] tests: pmdrssreta - skipping tests for Cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 20/26] tests: queue_start_stop - taking into account cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 21/26] tests: quota_watermark - skipping tests for Cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 22/26] tests: short_live - taking into account cavium NICs + fixes Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 23/26] tests: tso - taking into account cavium NICs Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 24/26] tests: uni_pkt " Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 25/26] tests: unit_tests_dump " Angela Czubak
2017-04-06 17:51 ` [dts] [PATCH 26/26] tests: unit_tests_lpm - asking for lesser amount of hugepages if they are 524288kB Angela Czubak
2017-04-10 17:08 ` [dts] [PATCH v2 00/28] DTS support for Cavium NICs Angela Czubak
2017-04-10 17:08   ` [dts] [PATCH v2 01/28] framework settings: Adding cavium PCI IDs and drivers Angela Czubak
2017-04-10 17:08   ` [dts] [PATCH v2 02/28] framework dut and project_dpdk: using correct available binding scripts Angela Czubak
2017-04-17  6:35     ` Liu, Yong
2017-04-10 17:08   ` [dts] [PATCH v2 03/28] framework dut and project_dpdk: binding smaller number of hugepages for arm64 Angela Czubak
2017-04-10 17:08   ` [dts] [PATCH v2 04/28] framework crb: Appending only 10G devices for cavium Angela Czubak
2017-04-10 17:08   ` [dts] [PATCH v2 05/28] framework project_dpdk: asserting loading vfio-pci by using DPDK binding script Angela Czubak
2017-04-10 17:09   ` Angela Czubak [this message]
2017-04-10 17:09   ` [dts] [PATCH v2 07/28] tests: ipv4_reassembly - added splitting result in tcpdump_command Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 08/28] framework: getting DPDK binding script moved to a method in dut Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 09/28] tests: Modified tests to take cavium nics into account Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 10/28] tests: checksum_offload - fixes Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 11/28] tests: dynamic_config - taking into account cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 12/28] tests: fdir - skipping fdir tests for Cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 13/28] tests: ieee1588 - skipping ieee1588_enable test " Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 14/28] tests: jumboframes - skipping jumboframes tests testing bigger than allowed frames " Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 15/28] tests: l2fwd - fixes to run on two cards (same NIC) and expecting "L2FWD: entering main loop" instead of "memory mapped" Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 16/28] tests: link_status_interrupt - skipping test_link_status_interrupt_port_available for Cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 17/28] tests: link_status_interrupt - skipping tests verifying adding MAC addresses " Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 18/28] tests: pmdpcap - modifying the right config file + importing utils after scapy Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 19/28] tests: pmdrssreta - skipping tests for Cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 20/28] tests: queue_start_stop - taking into account cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 21/28] tests: quota_watermark - skipping tests for Cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 22/28] tests: short_live - taking into account cavium NICs + fixes Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 23/28] tests: tso - taking into account cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 24/28] tests: uni_pkt " Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 25/28] tests: unit_tests_dump " Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 26/28] tests: unit_tests_lpm - asking for lesser amount of hugepages if they are 524288kB Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 27/28] framework: Adding linkspeed parameter for Cavium NICs Angela Czubak
2017-04-10 17:09   ` [dts] [PATCH v2 28/28] tests: pmd - Recompiling DPDK only if that is relevant Angela Czubak
2017-04-17  8:02   ` [dts] [PATCH v2 00/28] DTS support for Cavium NICs Liu, Yong
2017-04-19 12:21 ` [dts] [PATCH v3 00/27] " Angela Czubak
2017-04-19 12:21   ` [dts] [PATCH v3 01/27] framework settings: Adding cavium PCI IDs and drivers Angela Czubak
2017-04-19 12:21   ` [dts] [PATCH v3 02/27] framework dut and project_dpdk: using correct available binding scripts Angela Czubak
2017-04-19 12:21   ` [dts] [PATCH v3 03/27] framework dut and project_dpdk: binding smaller number of hugepages for arm64 Angela Czubak
2017-04-19 12:21   ` [dts] [PATCH v3 04/27] framework crb: Appending only 10G devices for cavium Angela Czubak
2017-04-19 12:21   ` [dts] [PATCH v3 05/27] framework project_dpdk: asserting loading vfio-pci by using DPDK binding script Angela Czubak
2017-04-19 12:21   ` [dts] [PATCH v3 06/27] framework: checking link with IPv4 ping Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 07/27] tests: ipv4_reassembly - added splitting result in tcpdump_command Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 08/27] tests: Modified tests to take cavium nics into account Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 09/27] tests: checksum_offload - fixes Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 10/27] tests: dynamic_config - taking into account cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 11/27] tests: fdir - skipping fdir tests for Cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 12/27] tests: ieee1588 - skipping ieee1588_enable test " Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 13/27] tests: jumboframes - skipping jumboframes tests testing bigger than allowed frames " Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 14/27] tests: l2fwd - fixes to run on two cards (same NIC) and expecting "L2FWD: entering main loop" instead of "memory mapped" Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 15/27] tests: link_status_interrupt - skipping test_link_status_interrupt_port_available for Cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 16/27] tests: link_status_interrupt - skipping tests verifying adding MAC addresses " Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 17/27] tests: pmdpcap - modifying the right config file + importing utils after scapy Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 18/27] tests: pmdrssreta - skipping tests for Cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 19/27] tests: queue_start_stop - taking into account cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 20/27] tests: quota_watermark - skipping tests for Cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 21/27] tests: short_live - taking into account cavium NICs + fixes Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 22/27] tests: tso - taking into account cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 23/27] tests: uni_pkt " Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 24/27] tests: unit_tests_dump " Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 25/27] tests: unit_tests_lpm - asking for lesser amount of hugepages if they are 524288kB Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 26/27] framework: Adding linkspeed parameter for Cavium NICs Angela Czubak
2017-04-19 12:22   ` [dts] [PATCH v3 27/27] tests: pmd - Recompiling DPDK only if that is relevant Angela Czubak
2017-04-20  5:55   ` [dts] [PATCH v3 00/27] DTS support for Cavium NICs Liu, Yong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1491844162-16300-7-git-send-email-aczubak@caviumnetworks.com \
    --to=aczubak@caviumnetworks.com \
    --cc=dts@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).