hostap/wlantest/wlantest_ctrl.h
Jouni Malinen 7d23e971f0 wlantest: Add preliminary infrastructure for injecting frames
This adds new commands for wlantest_cli to request wlantest to
inject frames. This version can only send out Authentication
frames and unprotected SA Query Request frames, but there is
now place to add more frames and encryption with future commits.
2010-11-19 00:35:13 +02:00

106 lines
3 KiB
C

/*
* wlantest control interface
* Copyright (c) 2010, Jouni Malinen <j@w1.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Alternatively, this software may be distributed under the terms of BSD
* license.
*
* See README and COPYING for more details.
*/
#ifndef WLANTEST_CTRL_H
#define WLANTEST_CTRL_H
#define WLANTEST_SOCK_NAME "w1.fi.wlantest"
#define WLANTEST_CTRL_MAX_CMD_LEN 1000
#define WLANTEST_CTRL_MAX_RESP_LEN 1000
enum wlantest_ctrl_cmd {
WLANTEST_CTRL_SUCCESS,
WLANTEST_CTRL_FAILURE,
WLANTEST_CTRL_INVALID_CMD,
WLANTEST_CTRL_UNKNOWN_CMD,
WLANTEST_CTRL_PING,
WLANTEST_CTRL_TERMINATE,
WLANTEST_CTRL_LIST_BSS,
WLANTEST_CTRL_LIST_STA,
WLANTEST_CTRL_FLUSH,
WLANTEST_CTRL_CLEAR_STA_COUNTERS,
WLANTEST_CTRL_CLEAR_BSS_COUNTERS,
WLANTEST_CTRL_GET_STA_COUNTER,
WLANTEST_CTRL_GET_BSS_COUNTER,
WLANTEST_CTRL_INJECT,
};
enum wlantest_ctrl_attr {
WLANTEST_ATTR_BSSID,
WLANTEST_ATTR_STA_ADDR,
WLANTEST_ATTR_STA_COUNTER,
WLANTEST_ATTR_BSS_COUNTER,
WLANTEST_ATTR_COUNTER,
WLANTEST_ATTR_INJECT_FRAME,
WLANTEST_ATTR_INJECT_SENDER_AP,
WLANTEST_ATTR_INJECT_PROTECTION,
};
enum wlantest_bss_counter {
WLANTEST_BSS_COUNTER_VALID_BIP_MMIE,
WLANTEST_BSS_COUNTER_INVALID_BIP_MMIE,
WLANTEST_BSS_COUNTER_MISSING_BIP_MMIE,
NUM_WLANTEST_BSS_COUNTER
};
enum wlantest_sta_counter {
WLANTEST_STA_COUNTER_AUTH_TX,
WLANTEST_STA_COUNTER_AUTH_RX,
WLANTEST_STA_COUNTER_ASSOCREQ_TX,
WLANTEST_STA_COUNTER_REASSOCREQ_TX,
WLANTEST_STA_COUNTER_PTK_LEARNED,
WLANTEST_STA_COUNTER_VALID_DEAUTH_TX,
WLANTEST_STA_COUNTER_VALID_DEAUTH_RX,
WLANTEST_STA_COUNTER_INVALID_DEAUTH_TX,
WLANTEST_STA_COUNTER_INVALID_DEAUTH_RX,
WLANTEST_STA_COUNTER_VALID_DISASSOC_TX,
WLANTEST_STA_COUNTER_VALID_DISASSOC_RX,
WLANTEST_STA_COUNTER_INVALID_DISASSOC_TX,
WLANTEST_STA_COUNTER_INVALID_DISASSOC_RX,
WLANTEST_STA_COUNTER_VALID_SAQUERYREQ_TX,
WLANTEST_STA_COUNTER_VALID_SAQUERYREQ_RX,
WLANTEST_STA_COUNTER_INVALID_SAQUERYREQ_TX,
WLANTEST_STA_COUNTER_INVALID_SAQUERYREQ_RX,
WLANTEST_STA_COUNTER_VALID_SAQUERYRESP_TX,
WLANTEST_STA_COUNTER_VALID_SAQUERYRESP_RX,
WLANTEST_STA_COUNTER_INVALID_SAQUERYRESP_TX,
WLANTEST_STA_COUNTER_INVALID_SAQUERYRESP_RX,
NUM_WLANTEST_STA_COUNTER
};
enum wlantest_inject_frame {
WLANTEST_FRAME_AUTH,
WLANTEST_FRAME_ASSOCREQ,
WLANTEST_FRAME_REASSOCREQ,
WLANTEST_FRAME_DEAUTH,
WLANTEST_FRAME_DISASSOC,
WLANTEST_FRAME_SAQUERYREQ,
};
/**
* enum wlantest_inject_protection - WLANTEST_CTRL_INJECT protection
* @WLANTEST_INJECT_NORMAL: Use normal rules (protect if key is set)
* @WLANTEST_INJECT_PROTECTED: Force protection (fail if not possible)
* @WLANTEST_INJECT_UNPROTECTED: Force unprotected
* @WLANTEST_INJECT_INCORRECT_KEY: Force protection with incorrect key
*/
enum wlantest_inject_protection {
WLANTEST_INJECT_NORMAL,
WLANTEST_INJECT_PROTECTED,
WLANTEST_INJECT_UNPROTECTED,
WLANTEST_INJECT_INCORRECT_KEY,
};
#endif /* WLANTEST_CTRL_H */