test_ap_vlan.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/python
  2. #
  3. # Test cases for AP VLAN
  4. # Copyright (c) 2013-2014, Jouni Malinen <j@w1.fi>
  5. #
  6. # This software may be distributed under the terms of the BSD license.
  7. # See README for more details.
  8. import time
  9. import subprocess
  10. import logging
  11. logger = logging.getLogger(__name__)
  12. import hwsim_utils
  13. import hostapd
  14. def test_ap_vlan_open(dev, apdev):
  15. """AP VLAN with open network"""
  16. params = { "ssid": "test-vlan-open",
  17. "dynamic_vlan": "1",
  18. "accept_mac_file": "hostapd.accept" }
  19. hostapd.add_ap(apdev[0]['ifname'], params)
  20. dev[0].connect("test-vlan-open", key_mgmt="NONE", scan_freq="2412")
  21. dev[1].connect("test-vlan-open", key_mgmt="NONE", scan_freq="2412")
  22. dev[2].connect("test-vlan-open", key_mgmt="NONE", scan_freq="2412")
  23. hwsim_utils.test_connectivity(dev[0].ifname, "brvlan1")
  24. hwsim_utils.test_connectivity(dev[1].ifname, "brvlan2")
  25. hwsim_utils.test_connectivity(dev[2].ifname, apdev[0]['ifname'])
  26. def test_ap_vlan_wpa2(dev, apdev):
  27. """AP VLAN with WPA2-PSK"""
  28. params = hostapd.wpa2_params(ssid="test-vlan",
  29. passphrase="12345678")
  30. params['dynamic_vlan'] = "1";
  31. params['accept_mac_file'] = "hostapd.accept";
  32. hostapd.add_ap(apdev[0]['ifname'], params)
  33. dev[0].connect("test-vlan", psk="12345678", scan_freq="2412")
  34. dev[1].connect("test-vlan", psk="12345678", scan_freq="2412")
  35. dev[2].connect("test-vlan", psk="12345678", scan_freq="2412")
  36. hwsim_utils.test_connectivity(dev[0].ifname, "brvlan1")
  37. hwsim_utils.test_connectivity(dev[1].ifname, "brvlan2")
  38. hwsim_utils.test_connectivity(dev[2].ifname, apdev[0]['ifname'])
  39. def test_ap_vlan_wpa2_radius(dev, apdev):
  40. """AP VLAN with WPA2-Enterprise and RADIUS attributes"""
  41. params = hostapd.wpa2_eap_params(ssid="test-vlan")
  42. params['dynamic_vlan'] = "1";
  43. hostapd.add_ap(apdev[0]['ifname'], params)
  44. dev[0].connect("test-vlan", key_mgmt="WPA-EAP", eap="PAX",
  45. identity="vlan1",
  46. password_hex="0123456789abcdef0123456789abcdef",
  47. scan_freq="2412")
  48. dev[1].connect("test-vlan", key_mgmt="WPA-EAP", eap="PAX",
  49. identity="vlan2",
  50. password_hex="0123456789abcdef0123456789abcdef",
  51. scan_freq="2412")
  52. dev[2].connect("test-vlan", key_mgmt="WPA-EAP", eap="PAX",
  53. identity="pax.user@example.com",
  54. password_hex="0123456789abcdef0123456789abcdef",
  55. scan_freq="2412")
  56. hwsim_utils.test_connectivity(dev[0].ifname, "brvlan1")
  57. hwsim_utils.test_connectivity(dev[1].ifname, "brvlan2")
  58. hwsim_utils.test_connectivity(dev[2].ifname, apdev[0]['ifname'])
  59. def test_ap_vlan_wpa2_radius_required(dev, apdev):
  60. """AP VLAN with WPA2-Enterprise and RADIUS attributes required"""
  61. params = hostapd.wpa2_eap_params(ssid="test-vlan")
  62. params['dynamic_vlan'] = "2";
  63. hostapd.add_ap(apdev[0]['ifname'], params)
  64. dev[0].connect("test-vlan", key_mgmt="WPA-EAP", eap="PAX",
  65. identity="vlan1",
  66. password_hex="0123456789abcdef0123456789abcdef",
  67. scan_freq="2412")
  68. dev[2].connect("test-vlan", key_mgmt="WPA-EAP", eap="PAX",
  69. identity="pax.user@example.com",
  70. password_hex="0123456789abcdef0123456789abcdef",
  71. scan_freq="2412", wait_connect=False)
  72. ev = dev[2].wait_event(["CTRL-EVENT-CONNECTED",
  73. "CTRL-EVENT-DISCONNECTED"], timeout=20)
  74. if ev is None:
  75. raise Exception("Timeout on connection attempt")
  76. if "CTRL-EVENT-CONNECTED" in ev:
  77. raise Exception("Unexpected success without tunnel parameters")