def test_ap_acl_mgmt(dev, apdev):
    'MAC ACL accept/deny management'
    ssid = 'acl'
    params = {}
    filename = hostapd.acl_file(dev, apdev, 'hostapd.macaddr')
    hostapd.send_file(apdev[0], filename, filename)
    params['ssid'] = ssid
    params['deny_mac_file'] = filename
    hapd = hostapd.add_ap(apdev[0], params)
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 0):
        raise Exception('Unexpected number of accept entries')
    if (len(deny) != 3):
        raise Exception('Unexpected number of deny entries')
    if ('01:01:01:01:01:01 VLAN_ID=0' not in deny):
        raise Exception('Missing deny entry')
    hapd.request('ACCEPT_ACL ADD_MAC 22:33:44:55:66:77')
    hapd.request('DENY_ACL ADD_MAC 22:33:44:55:66:88 VLAN_ID=2')
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 1):
        raise Exception('Unexpected number of accept entries (2)')
    if (len(deny) != 4):
        raise Exception('Unexpected number of deny entries (2)')
    if ('01:01:01:01:01:01 VLAN_ID=0' not in deny):
        raise Exception('Missing deny entry (2)')
    if ('22:33:44:55:66:88 VLAN_ID=2' not in deny):
        raise Exception('Missing deny entry (2)')
    if ('22:33:44:55:66:77 VLAN_ID=0' not in accept):
        raise Exception('Missing accept entry (2)')
    hapd.request('ACCEPT_ACL DEL_MAC 22:33:44:55:66:77')
    hapd.request('DENY_ACL DEL_MAC 22:33:44:55:66:88')
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 0):
        raise Exception('Unexpected number of accept entries (3)')
    if (len(deny) != 3):
        raise Exception('Unexpected number of deny entries (3)')
    if ('01:01:01:01:01:01 VLAN_ID=0' not in deny):
        raise Exception('Missing deny entry (3)')
    hapd.request('ACCEPT_ACL CLEAR')
    hapd.request('DENY_ACL CLEAR')
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 0):
        raise Exception('Unexpected number of accept entries (4)')
    if (len(deny) != 0):
        raise Exception('Unexpected number of deny entries (4)')
    dev[0].scan_for_bss(apdev[0]['bssid'], freq='2412')
    dev[0].connect(ssid, key_mgmt='NONE', scan_freq='2412')
    dev[0].dump_monitor()
    hapd.request(('DENY_ACL ADD_MAC ' + dev[0].own_addr()))
    dev[0].wait_disconnected()
    dev[0].request('DISCONNECT')
    if filename.startswith('/tmp/'):
        os.unlink(filename)
MAC ACL accept/deny management
def test_ap_acl_mgmt(dev, apdev):
    
    ssid = 'acl'
    params = {}
    filename = hostapd.acl_file(dev, apdev, 'hostapd.macaddr')
    hostapd.send_file(apdev[0], filename, filename)
    params['ssid'] = ssid
    params['deny_mac_file'] = filename
    hapd = hostapd.add_ap(apdev[0], params)
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 0):
        raise Exception('Unexpected number of accept entries')
    if (len(deny) != 3):
        raise Exception('Unexpected number of deny entries')
    if ('01:01:01:01:01:01 VLAN_ID=0' not in deny):
        raise Exception('Missing deny entry')
    hapd.request('ACCEPT_ACL ADD_MAC 22:33:44:55:66:77')
    hapd.request('DENY_ACL ADD_MAC 22:33:44:55:66:88 VLAN_ID=2')
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 1):
        raise Exception('Unexpected number of accept entries (2)')
    if (len(deny) != 4):
        raise Exception('Unexpected number of deny entries (2)')
    if ('01:01:01:01:01:01 VLAN_ID=0' not in deny):
        raise Exception('Missing deny entry (2)')
    if ('22:33:44:55:66:88 VLAN_ID=2' not in deny):
        raise Exception('Missing deny entry (2)')
    if ('22:33:44:55:66:77 VLAN_ID=0' not in accept):
        raise Exception('Missing accept entry (2)')
    hapd.request('ACCEPT_ACL DEL_MAC 22:33:44:55:66:77')
    hapd.request('DENY_ACL DEL_MAC 22:33:44:55:66:88')
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 0):
        raise Exception('Unexpected number of accept entries (3)')
    if (len(deny) != 3):
        raise Exception('Unexpected number of deny entries (3)')
    if ('01:01:01:01:01:01 VLAN_ID=0' not in deny):
        raise Exception('Missing deny entry (3)')
    hapd.request('ACCEPT_ACL CLEAR')
    hapd.request('DENY_ACL CLEAR')
    accept = hapd.request('ACCEPT_ACL SHOW').splitlines()
    logger.info(('accept: ' + str(accept)))
    deny = hapd.request('DENY_ACL SHOW').splitlines()
    logger.info(('deny: ' + str(deny)))
    if (len(accept) != 0):
        raise Exception('Unexpected number of accept entries (4)')
    if (len(deny) != 0):
        raise Exception('Unexpected number of deny entries (4)')
    dev[0].scan_for_bss(apdev[0]['bssid'], freq='2412')
    dev[0].connect(ssid, key_mgmt='NONE', scan_freq='2412')
    dev[0].dump_monitor()
    hapd.request(('DENY_ACL ADD_MAC ' + dev[0].own_addr()))
    dev[0].wait_disconnected()
    dev[0].request('DISCONNECT')
    if filename.startswith('/tmp/'):
        os.unlink(filename)