]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: proxyarp_errors: Sync carrier before sending frame
authorJohannes Berg <johannes.berg@intel.com>
Wed, 24 Jan 2024 16:12:49 +0000 (17:12 +0100)
committerJouni Malinen <j@w1.fi>
Thu, 25 Jan 2024 10:01:19 +0000 (12:01 +0200)
Similar to other cases before, this may end up trying to
send the frame before the carrier state is ready. Ensure
it's ready before sending the frame.

To do that, rename the sync_carrier() function and make
the ifname argument optional.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
tests/hwsim/hwsim_utils.py
tests/hwsim/test_ap_hs20.py

index 48eee0f8bd7169f8f906af22180816d63eb67d75..7b0afb496061ef04832d5fb72442115272f8ecf2 100644 (file)
@@ -11,7 +11,7 @@ logger = logging.getLogger()
 
 from wpasupplicant import WpaSupplicant
 
-def _sync_carrier(dev, ifname):
+def sync_carrier(dev, ifname=None):
     ifname = ifname or dev.ifname
     carrier_p2p = None
     try:
@@ -40,7 +40,7 @@ def config_data_test(dev1, dev2, dev1group, dev2group, ifname1, ifname2):
     if "OK" not in res:
         raise Exception("Failed to enable data test functionality")
 
-    _sync_carrier(dev1, ifname1)
+    sync_carrier(dev1, ifname1)
 
     cmd = "DATA_TEST_CONFIG 1"
     if ifname2:
@@ -52,7 +52,7 @@ def config_data_test(dev1, dev2, dev1group, dev2group, ifname1, ifname2):
     if "OK" not in res:
         raise Exception("Failed to enable data test functionality")
 
-    _sync_carrier(dev2, ifname2)
+    sync_carrier(dev2, ifname2)
 
 def run_multicast_connectivity_test(dev1, dev2, tos=None,
                                     dev1group=False, dev2group=False,
index afb54c5d5401604b72fdcda2a4621bc5aa0ece3c..81becf04f5b0f22c0594bec04405ba69f18964da 100644 (file)
@@ -5483,6 +5483,7 @@ def run_proxyarp_errors(dev, apdev, params):
         pkt = build_ns(src_ll=addr0, ip_src="aaaa:bbbb:cccc::2",
                        ip_dst="ff02::1:ff00:2", target="aaaa:bbbb:cccc::2",
                        opt=src_ll_opt0)
+        hwsim_utils.sync_carrier(dev[0])
         if "OK" not in dev[0].request("DATA_TEST_FRAME " + binascii.hexlify(pkt).decode()):
             raise Exception("DATA_TEST_FRAME failed")
         wait_fail_trigger(hapd, "GET_ALLOC_FAIL")