hwsim_utils.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # hwsim testing utilities
  2. # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
  3. #
  4. # This software may be distributed under the terms of the BSD license.
  5. # See README for more details.
  6. import os
  7. import subprocess
  8. import logging
  9. logger = logging.getLogger()
  10. def test_connectivity(ifname1, ifname2, dscp=None, tos=None):
  11. if os.path.isfile("../../mac80211_hwsim/tools/hwsim_test"):
  12. hwsim_test = "../../mac80211_hwsim/tools/hwsim_test"
  13. else:
  14. hwsim_test = "hwsim_test"
  15. cmd = ["sudo",
  16. hwsim_test,
  17. ifname1,
  18. ifname2]
  19. if dscp:
  20. cmd.append('-D')
  21. cmd.append(str(dscp))
  22. elif tos:
  23. cmd.append('-t')
  24. cmd.append(str(tos))
  25. try:
  26. s = subprocess.check_output(cmd)
  27. logger.debug(s)
  28. except subprocess.CalledProcessError, e:
  29. logger.info("hwsim failed: " + str(e.returncode))
  30. logger.info(e.output)
  31. raise
  32. def test_connectivity_p2p(dev1, dev2, dscp=None, tos=None):
  33. ifname1 = dev1.group_ifname if dev1.group_ifname else dev1.ifname
  34. ifname2 = dev2.group_ifname if dev2.group_ifname else dev2.ifname
  35. test_connectivity(ifname1, ifname2, dscp, tos)
  36. def test_connectivity_p2p_sta(dev1, dev2, dscp=None, tos=None):
  37. ifname1 = dev1.group_ifname if dev1.group_ifname else dev1.ifname
  38. ifname2 = dev2.ifname
  39. test_connectivity(ifname1, ifname2, dscp, tos)
  40. def test_connectivity_sta(dev1, dev2, dscp=None, tos=None):
  41. ifname1 = dev1.ifname
  42. ifname2 = dev2.ifname
  43. test_connectivity(ifname1, ifname2, dscp, tos)