![]() |
|
|||
0001 /* SPDX-License-Identifier: ISC */ 0002 /* 0003 * Copyright (C) 2020 Felix Fietkau <nbd@nbd.name> 0004 */ 0005 #ifndef __MT76_TESTMODE_H 0006 #define __MT76_TESTMODE_H 0007 0008 #define MT76_TM_TIMEOUT 10 0009 0010 #include <net/netlink.h> 0011 0012 /** 0013 * enum mt76_testmode_attr - testmode attributes inside NL80211_ATTR_TESTDATA 0014 * 0015 * @MT76_TM_ATTR_UNSPEC: (invalid attribute) 0016 * 0017 * @MT76_TM_ATTR_RESET: reset parameters to default (flag) 0018 * @MT76_TM_ATTR_STATE: test state (u32), see &enum mt76_testmode_state 0019 * 0020 * @MT76_TM_ATTR_MTD_PART: mtd partition used for eeprom data (string) 0021 * @MT76_TM_ATTR_MTD_OFFSET: offset of eeprom data within the partition (u32) 0022 * 0023 * @MT76_TM_ATTR_TX_COUNT: configured number of frames to send when setting 0024 * state to MT76_TM_STATE_TX_FRAMES (u32) 0025 * @MT76_TM_ATTR_TX_PENDING: pending frames during MT76_TM_STATE_TX_FRAMES (u32) 0026 * @MT76_TM_ATTR_TX_LENGTH: packet tx mpdu length (u32) 0027 * @MT76_TM_ATTR_TX_RATE_MODE: packet tx mode (u8, see &enum mt76_testmode_tx_mode) 0028 * @MT76_TM_ATTR_TX_RATE_NSS: packet tx number of spatial streams (u8) 0029 * @MT76_TM_ATTR_TX_RATE_IDX: packet tx rate/MCS index (u8) 0030 * @MT76_TM_ATTR_TX_RATE_SGI: packet tx use short guard interval (u8) 0031 * @MT76_TM_ATTR_TX_RATE_LDPC: packet tx enable LDPC (u8) 0032 * @MT76_TM_ATTR_TX_RATE_STBC: packet tx enable STBC (u8) 0033 * @MT76_TM_ATTR_TX_LTF: packet tx LTF, set 0 to 2 for 1x, 2x, and 4x LTF (u8) 0034 * 0035 * @MT76_TM_ATTR_TX_ANTENNA: tx antenna mask (u8) 0036 * @MT76_TM_ATTR_TX_POWER_CONTROL: enable tx power control (u8) 0037 * @MT76_TM_ATTR_TX_POWER: per-antenna tx power array (nested, u8 attrs) 0038 * 0039 * @MT76_TM_ATTR_FREQ_OFFSET: RF frequency offset (u32) 0040 * 0041 * @MT76_TM_ATTR_STATS: statistics (nested, see &enum mt76_testmode_stats_attr) 0042 * 0043 * @MT76_TM_ATTR_TX_SPE_IDX: tx spatial extension index (u8) 0044 * 0045 * @MT76_TM_ATTR_TX_DUTY_CYCLE: packet tx duty cycle (u8) 0046 * @MT76_TM_ATTR_TX_IPG: tx inter-packet gap, in unit of us (u32) 0047 * @MT76_TM_ATTR_TX_TIME: packet transmission time, in unit of us (u32) 0048 * 0049 * @MT76_TM_ATTR_DRV_DATA: driver specific netlink attrs (nested) 0050 * 0051 * @MT76_TM_ATTR_MAC_ADDRS: array of nested MAC addresses (nested) 0052 */ 0053 enum mt76_testmode_attr { 0054 MT76_TM_ATTR_UNSPEC, 0055 0056 MT76_TM_ATTR_RESET, 0057 MT76_TM_ATTR_STATE, 0058 0059 MT76_TM_ATTR_MTD_PART, 0060 MT76_TM_ATTR_MTD_OFFSET, 0061 0062 MT76_TM_ATTR_TX_COUNT, 0063 MT76_TM_ATTR_TX_LENGTH, 0064 MT76_TM_ATTR_TX_RATE_MODE, 0065 MT76_TM_ATTR_TX_RATE_NSS, 0066 MT76_TM_ATTR_TX_RATE_IDX, 0067 MT76_TM_ATTR_TX_RATE_SGI, 0068 MT76_TM_ATTR_TX_RATE_LDPC, 0069 MT76_TM_ATTR_TX_RATE_STBC, 0070 MT76_TM_ATTR_TX_LTF, 0071 0072 MT76_TM_ATTR_TX_ANTENNA, 0073 MT76_TM_ATTR_TX_POWER_CONTROL, 0074 MT76_TM_ATTR_TX_POWER, 0075 0076 MT76_TM_ATTR_FREQ_OFFSET, 0077 0078 MT76_TM_ATTR_STATS, 0079 0080 MT76_TM_ATTR_TX_SPE_IDX, 0081 0082 MT76_TM_ATTR_TX_DUTY_CYCLE, 0083 MT76_TM_ATTR_TX_IPG, 0084 MT76_TM_ATTR_TX_TIME, 0085 0086 MT76_TM_ATTR_DRV_DATA, 0087 0088 MT76_TM_ATTR_MAC_ADDRS, 0089 0090 /* keep last */ 0091 NUM_MT76_TM_ATTRS, 0092 MT76_TM_ATTR_MAX = NUM_MT76_TM_ATTRS - 1, 0093 }; 0094 0095 /** 0096 * enum mt76_testmode_state - statistics attributes 0097 * 0098 * @MT76_TM_STATS_ATTR_TX_PENDING: pending tx frames (u32) 0099 * @MT76_TM_STATS_ATTR_TX_QUEUED: queued tx frames (u32) 0100 * @MT76_TM_STATS_ATTR_TX_QUEUED: completed tx frames (u32) 0101 * 0102 * @MT76_TM_STATS_ATTR_RX_PACKETS: number of rx packets (u64) 0103 * @MT76_TM_STATS_ATTR_RX_FCS_ERROR: number of rx packets with FCS error (u64) 0104 * @MT76_TM_STATS_ATTR_LAST_RX: information about the last received packet 0105 * see &enum mt76_testmode_rx_attr 0106 */ 0107 enum mt76_testmode_stats_attr { 0108 MT76_TM_STATS_ATTR_UNSPEC, 0109 MT76_TM_STATS_ATTR_PAD, 0110 0111 MT76_TM_STATS_ATTR_TX_PENDING, 0112 MT76_TM_STATS_ATTR_TX_QUEUED, 0113 MT76_TM_STATS_ATTR_TX_DONE, 0114 0115 MT76_TM_STATS_ATTR_RX_PACKETS, 0116 MT76_TM_STATS_ATTR_RX_FCS_ERROR, 0117 MT76_TM_STATS_ATTR_LAST_RX, 0118 0119 /* keep last */ 0120 NUM_MT76_TM_STATS_ATTRS, 0121 MT76_TM_STATS_ATTR_MAX = NUM_MT76_TM_STATS_ATTRS - 1, 0122 }; 0123 0124 0125 /** 0126 * enum mt76_testmode_rx_attr - packet rx information 0127 * 0128 * @MT76_TM_RX_ATTR_FREQ_OFFSET: frequency offset (s32) 0129 * @MT76_TM_RX_ATTR_RCPI: received channel power indicator (array, u8) 0130 * @MT76_TM_RX_ATTR_IB_RSSI: internal inband RSSI (array, s8) 0131 * @MT76_TM_RX_ATTR_WB_RSSI: internal wideband RSSI (array, s8) 0132 * @MT76_TM_RX_ATTR_SNR: signal-to-noise ratio (u8) 0133 */ 0134 enum mt76_testmode_rx_attr { 0135 MT76_TM_RX_ATTR_UNSPEC, 0136 0137 MT76_TM_RX_ATTR_FREQ_OFFSET, 0138 MT76_TM_RX_ATTR_RCPI, 0139 MT76_TM_RX_ATTR_IB_RSSI, 0140 MT76_TM_RX_ATTR_WB_RSSI, 0141 MT76_TM_RX_ATTR_SNR, 0142 0143 /* keep last */ 0144 NUM_MT76_TM_RX_ATTRS, 0145 MT76_TM_RX_ATTR_MAX = NUM_MT76_TM_RX_ATTRS - 1, 0146 }; 0147 0148 /** 0149 * enum mt76_testmode_state - phy test state 0150 * 0151 * @MT76_TM_STATE_OFF: test mode disabled (normal operation) 0152 * @MT76_TM_STATE_IDLE: test mode enabled, but idle 0153 * @MT76_TM_STATE_TX_FRAMES: send a fixed number of test frames 0154 * @MT76_TM_STATE_RX_FRAMES: receive packets and keep statistics 0155 * @MT76_TM_STATE_TX_CONT: waveform tx without time gap 0156 * @MT76_TM_STATE_ON: test mode enabled used in offload firmware 0157 */ 0158 enum mt76_testmode_state { 0159 MT76_TM_STATE_OFF, 0160 MT76_TM_STATE_IDLE, 0161 MT76_TM_STATE_TX_FRAMES, 0162 MT76_TM_STATE_RX_FRAMES, 0163 MT76_TM_STATE_TX_CONT, 0164 MT76_TM_STATE_ON, 0165 0166 /* keep last */ 0167 NUM_MT76_TM_STATES, 0168 MT76_TM_STATE_MAX = NUM_MT76_TM_STATES - 1, 0169 }; 0170 0171 /** 0172 * enum mt76_testmode_tx_mode - packet tx phy mode 0173 * 0174 * @MT76_TM_TX_MODE_CCK: legacy CCK mode 0175 * @MT76_TM_TX_MODE_OFDM: legacy OFDM mode 0176 * @MT76_TM_TX_MODE_HT: 802.11n MCS 0177 * @MT76_TM_TX_MODE_VHT: 802.11ac MCS 0178 * @MT76_TM_TX_MODE_HE_SU: 802.11ax single-user MIMO 0179 * @MT76_TM_TX_MODE_HE_EXT_SU: 802.11ax extended-range SU 0180 * @MT76_TM_TX_MODE_HE_TB: 802.11ax trigger-based 0181 * @MT76_TM_TX_MODE_HE_MU: 802.11ax multi-user MIMO 0182 */ 0183 enum mt76_testmode_tx_mode { 0184 MT76_TM_TX_MODE_CCK, 0185 MT76_TM_TX_MODE_OFDM, 0186 MT76_TM_TX_MODE_HT, 0187 MT76_TM_TX_MODE_VHT, 0188 MT76_TM_TX_MODE_HE_SU, 0189 MT76_TM_TX_MODE_HE_EXT_SU, 0190 MT76_TM_TX_MODE_HE_TB, 0191 MT76_TM_TX_MODE_HE_MU, 0192 0193 /* keep last */ 0194 NUM_MT76_TM_TX_MODES, 0195 MT76_TM_TX_MODE_MAX = NUM_MT76_TM_TX_MODES - 1, 0196 }; 0197 0198 extern const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS]; 0199 0200 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |