[IpSecTest] Fix for no IPv6 IP

cherrypicked from aosp_master

Bug: 159354530
Fixes: 159354530
Test: Verified the changes
Merged-In: I001781deed2c8ba5bde1780afe43ebaea6beccfc
Change-Id: I9de32296512f16fb2cdd27888f6467029ab94bfe
diff --git a/acts/tests/google/net/IpSecTest.py b/acts/tests/google/net/IpSecTest.py
index c767000..5173110 100644
--- a/acts/tests/google/net/IpSecTest.py
+++ b/acts/tests/google/net/IpSecTest.py
@@ -27,6 +27,7 @@
 import random
 
 WLAN = "wlan0"
+WAIT_FOR_IP = 15
 
 
 class IpSecTest(base_test.BaseTestClass):
@@ -39,12 +40,9 @@
 
         req_params = ("wifi_network",)
         self.unpack_userparams(req_params)
-        wutils.start_wifi_connection_scan_and_ensure_network_found(
-            self.dut_a, self.wifi_network['SSID'])
-        wutils.wifi_connect(self.dut_a, self.wifi_network)
-        wutils.start_wifi_connection_scan_and_ensure_network_found(
-            self.dut_b, self.wifi_network['SSID'])
-        wutils.wifi_connect(self.dut_b, self.wifi_network)
+        wutils.connect_to_wifi_network(self.dut_a, self.wifi_network)
+        wutils.connect_to_wifi_network(self.dut_b, self.wifi_network)
+        time.sleep(WAIT_FOR_IP)
 
         self.ipv4_dut_a = self.dut_a.droid.connectivityGetIPv4Addresses(WLAN)[0]
         self.ipv4_dut_b = self.dut_b.droid.connectivityGetIPv4Addresses(WLAN)[0]
@@ -209,7 +207,6 @@
         # dut objects and ip addrs
         dut_a = self.dut_a
         dut_b = self.dut_b
-        port = random.randint(5000, 6000)
         udp_encap_port = 4500
         ip_a = self.ipv4_dut_a
         ip_b = self.ipv4_dut_b
@@ -218,7 +215,6 @@
             ip_b = self.ipv6_dut_b
         self.log.info("DUT_A IP addr: %s" % ip_a)
         self.log.info("DUT_B IP addr: %s" % ip_b)
-        self.log.info("Port: %s" % port)
 
         # create crypt and auth keys
         cl, auth_algo, al, trunc_bits = random.choice(self.crypt_auth_combos)
@@ -227,8 +223,9 @@
         crypt_algo = cconst.CRYPT_AES_CBC
 
         # open sockets
-        socket_a = sutils.open_datagram_socket(dut_a, ip_a, port)
-        socket_b = sutils.open_datagram_socket(dut_b, ip_b, port)
+        socket_a = sutils.open_datagram_socket(dut_a, ip_a, 0)
+        socket_b = sutils.open_datagram_socket(dut_b, ip_b, 0)
+        port = dut_b.droid.getPortOfDatagramSocket(socket_b)
 
         # allocate SPIs
         spi_keys_a = iutils.allocate_spis(dut_a, ip_a, ip_b)
@@ -298,7 +295,6 @@
         # dut objects and ip addrs
         dut_a = self.dut_a
         dut_b = self.dut_b
-        port = random.randint(5000, 6000)
         ip_a = self.ipv4_dut_a
         ip_b = self.ipv4_dut_b
         if domain == cconst.AF_INET6:
@@ -306,13 +302,13 @@
             ip_b = self.ipv6_dut_b
         self.log.info("DUT_A IP addr: %s" % ip_a)
         self.log.info("DUT_B IP addr: %s" % ip_b)
-        self.log.info("Port: %s" % port)
         udp_encap_port = 4500
 
         # open sockets
-        server_sock = sutils.open_server_socket(dut_b, ip_b, port)
+        server_sock = sutils.open_server_socket(dut_b, ip_b, 0)
+        port = dut_b.droid.getPortOfServerSocket(server_sock)
         sock_a, sock_b = sutils.open_connect_socket(
-            dut_a, dut_b, ip_a, ip_b, port, port, server_sock)
+            dut_a, dut_b, ip_a, ip_b, 0, port, server_sock)
 
         # create crypt and auth keys
         cl, auth_algo, al, trunc_bits = random.choice(self.crypt_auth_combos)