blob: 9f3458bb32df515cdaedcb301906ec00218604f6 [file] [log] [blame]
/*
* Common (OS-independent) portion of
* WLM (Wireless LAN Manufacturing) test library.
*
* Copyright (C) 2016, Broadcom Corporation
* All Rights Reserved.
*
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
* the contents of this file may not be disclosed to third parties, copied
* or duplicated in any form, in whole or in part, without the prior
* written permission of Broadcom Corporation.
*
* $Id: wlm.h 281542 2011-09-02 17:31:19Z $
*/
#ifndef _wlm_h
#define _wlm_h
#ifdef __cplusplus
extern "C" {
#endif
/**
\mainpage mfgtest_api.h
Overview:
The MFG API DLL allows a user to talk to a DUT by providing functions
that abstract out the lower level details of the driver.
The goal of this API is to make testing easier by providing enough
functionality for the user to perform various tasks without
requiring the user to know anything about the driver internals and,
in addition, any differences there may be between drivers.
*/
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef NULL
#define NULL 0
#endif
#define WLM_MAX_FILENAME_LEN 256
#if defined(WIN32)
#define WLM_FUNCTION __declspec(dllexport)
#else
#define WLM_FUNCTION
#endif /* WIN32 */
/* Supported DUT interfaces. */
/* Values are used to select the interface used to talk to the DUT. */
enum {
WLM_DUT_LOCAL = 0, /* client and DUT on same device */
WLM_DUT_SERIAL = 1, /* client to DUT via serial */
WLM_DUT_SOCKET = 2, /* client to DUT via Ethernet */
WLM_DUT_WIFI = 3, /* client to DUT via WLAN */
WLM_DUT_DONGLE = 4 /* client to DUT dongle via serial */
};
typedef int WLM_DUT_INTERFACE;
/* Supported server ports. */
/* Values are used to configure server port (for WLM_DUT_SOCKET only). */
enum {
WLM_DEFAULT_DUT_SERVER_PORT = 8000 /* default */
};
typedef int WLM_DUT_SERVER_PORT;
/* Supported DUT OS. */
/* Values are used to select the OS of the DUT. */
enum {
WLM_DUT_OS_LINUX = 1, /* Linux DUT */
WLM_DUT_OS_WIN32 = 2 /* Win32 DUT */
};
typedef int WLM_DUT_OS;
/* Supported join modes. */
/* Values are used to select the mode used to join a network. */
enum {
WLM_MODE_IBSS = 0, /* IBSS Mode. (Adhoc) */
WLM_MODE_BSS = 1, /* BSS Mode. */
WLM_MODE_AUTO = 2 /* Auto. */
};
typedef int WLM_JOIN_MODE;
/* Supported bands. */
/* Values are used to select the band used for testing. */
enum {
WLM_BAND_AUTO = 0, /* auto select */
WLM_BAND_5G = 1, /* 5G Band. */
WLM_BAND_2G = 2, /* 2G Band. */
WLM_BAND_DUAL = WLM_BAND_2G | WLM_BAND_5G /* Dual Band. */
};
typedef int WLM_BAND;
/* Supported gmode. */
/* Values are used to select gmode used for testing. */
enum {
WLM_GMODE_LEGACYB = 0,
WLM_GMODE_AUTO = 1,
WLM_GMODE_GONLY = 2,
WLM_GMODE_BDEFERED = 3,
WLM_GMODE_PERFORMANCE = 4,
WLM_GMODE_LRS = 5
};
typedef int WLM_GMODE;
/* Supported legacy rates. */
/* Values are used to select the rate used for testing. */
enum {
WLM_RATE_AUTO = 0,
WLM_RATE_1M = 2,
WLM_RATE_2M = 4,
WLM_RATE_5M5 = 11,
WLM_RATE_6M = 12,
WLM_RATE_9M = 18,
WLM_RATE_11M = 22,
WLM_RATE_12M = 24,
WLM_RATE_18M = 36,
WLM_RATE_24M = 48,
WLM_RATE_36M = 72,
WLM_RATE_48M = 96,
WLM_RATE_54M = 108
};
typedef int WLM_RATE;
/* Supported MCS rates */
enum {
WLM_MCS_RATE_0 = 0,
WLM_MCS_RATE_1 = 1,
WLM_MCS_RATE_2 = 2,
WLM_MCS_RATE_3 = 3,
WLM_MCS_RATE_4 = 4,
WLM_MCS_RATE_5 = 5,
WLM_MCS_RATE_6 = 6,
WLM_MCS_RATE_7 = 7,
WLM_MCS_RATE_8 = 8,
WLM_MCS_RATE_9 = 9,
WLM_MCS_RATE_10 = 10,
WLM_MCS_RATE_11 = 11,
WLM_MCS_RATE_12 = 12,
WLM_MCS_RATE_13 = 13,
WLM_MCS_RATE_14 = 14,
WLM_MCS_RATE_15 = 15,
WLM_MCS_RATE_16 = 16,
WLM_MCS_RATE_17 = 17,
WLM_MCS_RATE_18 = 18,
WLM_MCS_RATE_19 = 19,
WLM_MCS_RATE_20 = 20,
WLM_MCS_RATE_21 = 21,
WLM_MCS_RATE_22 = 22,
WLM_MCS_RATE_23 = 23,
WLM_MCS_RATE_24 = 24,
WLM_MCS_RATE_25 = 25,
WLM_MCS_RATE_26 = 26,
WLM_MCS_RATE_27 = 27,
WLM_MCS_RATE_28 = 28,
WLM_MCS_RATE_29 = 29,
WLM_MCS_RATE_30 = 30,
WLM_MCS_RATE_31 = 31,
WLM_MCS_RATE_32 = 32
};
typedef int WLM_MCS_RATE;
/* Supported STF mode */
enum {
WLM_STF_MODE_SISO = 0, /* stf mode SISO */
WLM_STF_MODE_CDD = 1, /* stf mode CDD */
WLM_STF_MODE_STBC = 2, /* stf mode STBC */
WLM_STF_MODE_SDM = 3 /* stf mode SDM */
};
typedef int WLM_STF_MODE;
/* Supported PLCP preambles. */
/* Values are used to select the preamble used for testing. */
enum {
WLM_PREAMBLE_AUTO = -1,
WLM_PREAMBLE_SHORT = 0,
WLM_PREAMBLE_LONG = 1
};
typedef int WLM_PREAMBLE;
/* Supported MIMO preamble types */
enum {
WLM_MIMO_MIXEDMODE = 0,
WLM_MIMO_GREENFIELD = 1
};
typedef int WLM_MIMO_PREAMBLE;
enum {
WLM_CHAN_FREEQ_RANGE_2G = 0,
WLM_CHAN_FREEQ_RANGE_5GL,
WLM_CHAN_FREEQ_RANGE_5GM,
WLM_CHAN_FREEQ_RANGE_5GH
};
typedef int WLM_BANDRANGE;
/* Supported image formats modes. */
/* Values are used to select the type of image to read/write. */
enum {
WLM_TYPE_AUTO = 0, /* Auto mode. */
WLM_TYPE_SROM = 1, /* SROM. */
WLM_TYPE_OTP = 2 /* OTP. */
};
typedef int WLM_IMAGE_TYPE;
/* Supported authentication type. */
/* Values are used to select the authentication type used to join a network. */
enum {
WLM_TYPE_OPEN = 0, /* Open */
WLM_TYPE_SHARED = 1 /* Shared */
};
typedef int WLM_AUTH_TYPE;
/* Supported authentication mode. */
/* Values are used to select the authentication mode used to join a network. */
enum {
WLM_WPA_AUTH_DISABLED = 0x0000, /* Legacy (i.e., non-WPA) */
WLM_WPA_AUTH_NONE = 0x0001, /* none (IBSS) */
WLM_WPA_AUTH_PSK = 0x0004, /* Pre-shared key */
WLM_WPA2_AUTH_PSK = 0x0080 /* Pre-shared key */
};
typedef int WLM_AUTH_MODE;
/* WLAN Security Encryption. */
/* Values are used to select the type of encryption used for testing. */
enum {
WLM_ENCRYPT_NONE = 0, /* No encryption. */
WLM_ENCRYPT_WEP = 1, /* WEP encryption. */
WLM_ENCRYPT_TKIP = 2, /* TKIP encryption. */
WLM_ENCRYPT_AES = 4, /* AES encryption. */
WLM_ENCRYPT_WSEC = 8, /* Software WSEC encryption. */
WLM_ENCRYPT_FIPS = 0x80 /* FIPS encryption. */
};
typedef int WLM_ENCRYPTION;
/* Country abbreviative code */
#define WLM_COUNTRY_ALL "ALL" /* Default country code */
#define WLM_COUNTRY_JAPAN "JP" /* Japan country code */
#define WLM_COUNTRY_KOREA "KR" /* Korea country code */
/* number of 5G channel offsets */
#define CGA_5G_OFFSETS_LEN 24
/* number of 2G channel offsets */
#define CGA_2G_OFFSETS_LEN 14
/* Initialization related functions */
#define WLM_VERSION_STR "wlm version: 10.02.0 (support 4325, 4329, 4330 and 43236)"
/* Get the WLM version.
* param[out] buffer version string for current wlm (dll, lib and dylib)
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmWLMVersionGet(const char **buffer);
/* Performs any initialization required internally by the DLL.
* NOTE: This method needs to be called before any other API function.
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmApiInit(void);
/* Performs any cleanup required internally by the DLL.
* NOTE: This method needs to be called by the user at the end of the application.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmApiCleanup(void);
/* Selects the interface to use for talking to the DUT
*
* param[in] ifType The desired interface.
* param[in] ifName Expected value depends on ifType:
* For ifType = WLM_DUT_DONGLE, ifName is the COM port to use (ex: "COM1").
* For ifType = WLM_DUT_SOCKET, ifName is the IP address to use
* (ex: "192.168.1.1" or "localhost").
* param[in] dutServerPort Server port of DUT (used only for WLM_DUT_SOCKET).
* param[in] dutOs Operating system of DUT.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSelectInterface(WLM_DUT_INTERFACE ifType, char *ifName,
WLM_DUT_SERVER_PORT dutServerPort, WLM_DUT_OS dutOs);
/* Gets the WLAN driver version.
*
* param[in] buffer Buffer for the version string.
* param[in] length Maximum length of buffer.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmVersionGet(char *buffer, int length);
/* Enables or disables wireless adapter.
*
* param[in] enable Set to true to bring adapter up, false to bring down.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmEnableAdapterUp(int enable);
/* Check if adapter is currently up.
*
* param[in] up Return the up/down state of adapter.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmIsAdapterUp(int *up);
/* Enables or disables Minimum Power Consumption (MPC).
* MPC will automatically turn off the radio if not associated to a network.
*
* param[in] enable Set to true to enable MPC, false to disable MPC.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmMinPowerConsumption(int enable);
/* Sets the operating channel of the DUT.
*
* param[in] channel Desired channel.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmChannelSet(int channel);
/* Sets the operating legacy rate (bg_rate or a_rate) for the DUT.
*
* param[in] rate Desired rate.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRateSet(WLM_RATE rate);
/* Sets the operating legacy rate (nrate) of the DUT.
*
* param[in] rate Desired rate.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmLegacyRateSet(WLM_RATE rate);
/* Sets the operating mcs rate and STF of the DUT
* param[in] Desired mcs rate [0, 7] for SISO (single-in-single-out) device.
* param[in] Stf mode, 0=SISO, 1= CDD, 2=STBC, 3=SDM
* return - True for sucess, false for failure.
*/
WLM_FUNCTION
int wlmMcsRateSet(WLM_MCS_RATE mcs_rate, WLM_STF_MODE stf_mode);
/* Sets the PLCP preamble.
*
* param[in] preamble Desired preamble.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPreambleSet(WLM_PREAMBLE preamble);
/* Set the band.
*
* param[in] The Desired band.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmBandSet(WLM_BAND band);
/* Get available bands.
*
* param[in] Available bands returned in the form of WLM_BANDs added.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmGetBandList(WLM_BAND * bands);
/* Set gmode.
*
* param[in] The desired gmode.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmGmodeSet(WLM_GMODE gmode);
/* Sets the receive antenna.
*
* param[in] antenna Desired antenna.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRxAntSet(int antenna);
/* Sets the transmit antenna.
*
* param[in] antenna Desired antenna.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxAntSet(int antenna);
/* Retrieves the current estimated power in milli-dBm.
*
* param[out] estPower Power value returned.
* param[in] chain For MIMO device, specifies which chain to retrieve power value from.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmEstimatedPowerGet(int *estPower, int chain);
/* Retrieves the current TX power in milli-dB.
*
* param[in] power Power value returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxPowerGet(int *power);
/* Sets the current TX power.
*
* param[in] powerValue Desired power value. Expected to be in milli-dB. Use -1 to restore default.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxPowerSet(int powerValue);
/* Retrieves the tx power control parameters for SISO system.
*
* param[in] bandrange. The desired band range for getting PA parameters.
* param[out] b0 PA parameter returned.
* param[out] b1 PA parameter returned.
* param[out] a1 PA parameter returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPaParametersGet(WLM_BANDRANGE bandrange,
unsigned int *a1, unsigned int *b0, unsigned int *b1);
/* Sets tx power control parameters for SISO system.
*
* param[in] bandrange. The desired band range for getting PA parameters.
* param[in] b0 PA parameter.
* param[in] b1 PA parameter.
* param[in] a1 PA parameter.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPaParametersSet(WLM_BANDRANGE bandrange,
unsigned int a1, unsigned int b0, unsigned int b1);
/* Retrieves the tx power control parameters for MIMO system.
*
* param[in] bandrange The desired band range for getting PA parameters.
* param[in] chain. The desired tx chain for getting PA parameters
* param[out] b0 PA parameter returned.
* param[out] b1 PA parameter returned.
* param[out] a1 PA parameter returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmMIMOPaParametersGet(WLM_BANDRANGE bandrange, int chain,
unsigned int *a1, unsigned int *b0, unsigned int *b1);
/* Sets tx power control parameters for MIMO system.
*
* param[in] bandrange. The desired band range for getting PA parameters.
* param[in] chain. The desired tx chain for getting PA parameters.
* param[in] b0 PA parameter.
* param[in] b1 PA parameter.
* param[in] a1 PA parameter.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmMIMOPaParametersSet(WLM_BANDRANGE bandrange, int chain,
unsigned int a1, unsigned int b0, unsigned int b1);
/* Retrieves the current MAC address of the device.
*
* param[in] macAddr MAC address returned.
* param[in] length Length of macAddr buffer.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmMacAddrGet(char *macAddr, int length);
/* Sets the MAC address of the device.
*
* param[in] macAddr The desired MAC address. Expected format is "XX:XX:XX:XX:XX:XX".
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmMacAddrSet(const char* macAddr);
/* Enables or disables output of a carrier tone.
*
* param[in] enable Set to true to enable carrier tone, false to disable.
* param[in] channel Desired channel. Ignored if <i>enable</i> is false.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmEnableCarrierTone(int enable, int channel);
/* Enables or disables an EVM test.
*
* param[in] enable Set to true to enable EVM test, false to disable.
* param[in] channel Desired channel. Ignored if <i>enable</i> is false.
* param[in] rate Desired rate. Ignored if <i>enable</i> is false.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmEnableEVMTest(int enable, WLM_RATE rate, int channel);
/* RX/TX related functions */
/* Starts sending packets with supplied parameters.
*
* param[in] shortPreamble Set to true to use a short preamble, false for a long preamble.
* param[in] interPacketDelay Delay between each packet.
* param[in] numPackets The number of packets transmitted.
* param[in] packetLength Length of packet transmitted.
* param[in] destMac The MAC address of the destination.
* param[in] withAck Ack response expected for transmitted packet.
* param[in] syncMode Enable synchronous mode to transmit packets before returning.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxPacketStart(unsigned int interPacketDelay,
unsigned int numPackets, unsigned int packetLength,
const char* destMac, int withAck, int syncMode);
/* Stops sending packets.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxPacketStop(void);
/* Starts receiving packets with supplied parameters.
*
* param[in] srcMac The MAC address of the packet source..
* param[in] withAck Ack response expected for received packet.
* param[in] syncMode Enable synchronous mode to receive packets before returning or timeout.
* param[in] numPackets Number of receive packets before returning (sync mode only).
* param[in] timeout Maximum timeout in msec (sync mode only).
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRxPacketStart(const char* srcMac, int withAck,
int syncMode, unsigned int numPackets, unsigned int timeout);
/* Stops receiving packets.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRxPacketStop(void);
/* Returns number of packets that were ACKed successfully.
*
* param[in] count Packet count returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxGetAckedPackets(unsigned int *count);
/* Returns number of packets received successfully.
*
* param[in] count Packet count returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRxGetReceivedPackets(unsigned int *count);
/* Returns Receive Signal Strength Indicator (RSSI).
*
* param[in] rssi RSSI returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRssiGet(int *rssi);
/* Sequence related functions */
/* Initiates a command batch sequence.
* Any commands issued after calling this function will be queued
* instead of being executed. Call sequenceStop() to run queued commands.
*
* param[in] clientBatching Set to true to batch on client, false to batch on server/DUT.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSequenceStart(int clientBatching);
/* Signals the end of a command batch sequence.
* Requires a previous call to sequenceStart(). Any commands
* issued after previously calling sequenceStart() will be run.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSequenceStop(void);
/* Sets a delay between commands, in ms.
* Requires a previous call to sequenceStart(). Once sequenceStart() is called,
* calling sequenceDelay() after a command will insert a delay after the
* previous command is complete.
*
* param[in] msec Amount of time to wait after previous command has complete.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSequenceDelay(int msec);
/* If a command sequence fails at a particular command, the remaining
* commands will be aborted. Calling this function, will return the index
* of which command failed. NOTE: Index starts at 1.
*
* param[in] index Failed command index returned.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSequenceErrorIndex(int *index);
/* Image access (SROM/OTP) functions: */
/* Programs the device with a supplied image. Used to program the SROM/OTP.
*
* param[in] byteStream A stream of bytes loaded from an image file.
* param[in] length The number of bytes to write.
* param[in] imageType Use this to force a specific image type (ex: SROM, OTP, etc).
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmDeviceImageWrite(const char* byteStream, int length, WLM_IMAGE_TYPE imageType);
/* Dumps the image from the device. Used to read the SROM/OTP.
*
* param[out] byteStream A user supplied buffer.
* param[in] length The size of the buffer supplied by byteStream.
* param[in] imageType Use this to force a specific image type (ex: SROM, OTP, etc).
*
* return - Size of image in bytes. -1 if size of image is larger than supplied buffer.
*/
WLM_FUNCTION
int wlmDeviceImageRead(char* byteStream, unsigned int length, WLM_IMAGE_TYPE imageType);
/* Network related functions */
/* Set the current wireless security.
*
* param[in] authType Desired authentication type.
* param[in] authMode Desired authentication mode.
* param[in] encryption The desired encryption method.
* param[in] key The encryption key string (null terminated).
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSecuritySet(WLM_AUTH_TYPE authType, WLM_AUTH_MODE authMode,
WLM_ENCRYPTION encryption, const char *key);
/* Joins a network.
*
* param[in] ssid The SSID of the network to join.
* param[in] mode The mode used for the join.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmJoinNetwork(const char* ssid, WLM_JOIN_MODE mode);
/* Disassociates from a currently joined network.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmDisassociateNetwork(void);
/* Retrieves the current SSID of the AP.
*
* param[in] ssid SSID returned. SSID may be returned if not associated
* (i.e. attempting to associate, roaming).
* param[in] length Length of ssid buffer.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSsidGet(char *ssid, int length);
/* Retrieves the current BSSID of the AP.
*
* param[in] bssid BSSID returned. If the device is not associated, empty string returned.
* param[in] length Length of bssid buffer.
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmBssidGet(char *ssid, int length);
/* Set/Get the MIMO Preamble mode
* Valid options are:
* WLC_N_PREAMBLE_MIXEDMODE 0
* WLC_N_PREAMBLE_GF 1
*/
WLM_FUNCTION
int wlmMimoPreambleSet(int type);
WLM_FUNCTION
int wlmMimoPreambleGet(int* type);
/* Set/Get the CGA coefficients in the 2.4G/5G band
* requires an array of 24 uint8s to be set
* and a specified length of 24 to get
* All of these CGA value query functions only applies to 4329 solution
*/
WLM_FUNCTION
int wlmCga5gOffsetsSet(char* values, int len);
WLM_FUNCTION
int wlmCga5gOffsetsGet(char* buffer, int len);
WLM_FUNCTION
int wlmCga2gOffsetsSet(char* values, int len);
WLM_FUNCTION
int wlmCga2gOffsetsGet(char* buffer, int len);
/* Set Glacial Timer
* param[in] timer duration in msec
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmGlacialTimerSet(int val);
/* Set Fast Timer
* param[in] timer duration in msec
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmFastTimerSet(int val);
/* Set Slow Timer
* param[in] timer duration in msec
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSlowTimerSet(int val);
/* Enable/Disable Scansuppress
* param[in] set to TRUE enables scansuppress, set to false disable scansuppress
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmScanSuppress(int val);
/* Set Country Code
* param[in] country code abbrv. Default use WLM_COUNTRY_CODE_ABBRV_ALL
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmCountryCodeSet(const char *country_name);
/* Set fullcal
* Trigger lpphy fullcal
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmFullCal(void);
/* Get Receiver IQ Estimation
* param[out] estimated rxiq power in dBm at 0.25dBm resolution
* param[in] sampel count, 0 to 15
* param[in] antenna, 0 to 3
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRxIQEstGet(float *val, int sampleCount, int ant);
/* Get PHY txpwrindex
* param[out] txpwrindex
* param[in] chip id: 4325, 4329, 43291, 4330, 4336 and 43236
*/
WLM_FUNCTION
int wlmPHYTxPowerIndexGet(unsigned int *val, const char *chipid);
/* Set PHY txpwrindex
* param[in] txpwrindex
* param[in] chip id: 4325, 4329, 43291, 4330, 4336 and 43236
*/
WLM_FUNCTION
int wlmPHYTxPowerIndexSet(unsigned int val, const char *chipid);
/* Enable/Disable RIFS
* param[in] Set RIFS mode. 1 = enable ; 0 = disable
*/
WLM_FUNCTION
int wlmRIFSEnable(int enable);
/* Get/Set IOCTL
* param[in] cmd IOCTL command.
* param[in] buf Get data returned or set data input.
* param[in] len Length of buf.
* return - True for success, false for failure.
*/
WLM_FUNCTION int wlmIoctlGet(int cmd, void *buf, int len);
WLM_FUNCTION int wlmIoctlSet(int cmd, void *buf, int len);
/* Get/Set IOVAR
* param[in] iovar IOVAR command.
* param[in] buf Get data returned or set data input.
* param[in] len Length of buf.
* return - True for success, false for failure.
*/
WLM_FUNCTION int wlmIovarGet(const char *iovar, void *buf, int len);
WLM_FUNCTION int wlmIovarSet(const char *iovar, void *buf, int len);
/* Get/Set IOVAR integer.
* param[in] iovar IOVAR integer command.
* param[out/in] val Get integer returned or set integer input.
* return - True for success, false for failure.
*/
WLM_FUNCTION int wlmIovarIntegerGet(const char *iovar, int *val);
WLM_FUNCTION int wlmIovarIntegerSet(const char *iovar, int val);
/* Get/Set IOVAR using internal buffer.
* param[in] iovar IOVAR command.
* param[in] param Input parameters.
* param[in] param_len Length of parameters.
* param[out] bufptr Buffer returning get data.
* return - True for success, false for failure.
*/
WLM_FUNCTION int wlmIovarBufferGet(const char *iovar, void *param, int param_len, void **bufptr);
WLM_FUNCTION int wlmIovarBufferSet(const char *iovar, void *param, int param_len);
/* Enables radio
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRadioOn(void);
/* Disable radio .
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRadioOff(void);
/* Set Power Saving Mode
* param[in] 0 = CAM, 1 =Power Save, 2 = Fast PS Mode
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPMmode(int val);
/* Enable roaming
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRoamingOff(void);
/* Disable roaming
*
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRoamingOn(void);
/* Get roaming trigger level
* param[out] roaming trigger level in dBm returned
* param[in] frequency band
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRoamTriggerLevelGet(int *val, WLM_BAND band);
/* Set roaming trigger level
* param[in] roaming trigger level in dBm
* param[in] frequence band
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRoamTriggerLevelSet(int val, WLM_BAND band);
/* Set framburst mode on
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmFrameBurstOn(void);
/* Set framburst mode off
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmFrameBurstOff(void);
/* Set beacon interval
* param[in] beacon interval in ms
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmBeaconIntervalSet(int val);
/* Set AMPDU mode on/off
* param[in] on = 1, off = 0
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmAMPDUModeSet(int val);
/* Set MIMO bandwidth capability
* param[in] mimo bandwidth capability. 0 = 20Mhz, 1 =40Mhz
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmMIMOBandwidthCapabilitySet(int val);
/* Set interference on/off
* param[in] on = 1, 0ff = 0
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmInterferenceSet(int val);
/* Set interferenceoverride on/off
* param[in] on = 1, 0ff = 0
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmInterferenceOverrideSet(int val);
/* Set MIMO transmit banddwith
* param[in] auto = -1, 2 = 20Mhz, 3 = 20Mhz upper , 4 =40 Mhz, 5 =40dup (mcs32 only)
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTransmitBandwidthSet(int val);
/* Set MIMO short guard intervaltransmit banddwith
* param[in] auto = -1, 1 = on, 0 = off
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmShortGuardIntervalSet(int val);
/* Set MIMO OBSS coex set
* param[in] auto = -1, 1 = on, 0 = off
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmObssCoexSet(int val);
/* Set PHY Periodical call
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPHYPeriodicalCalSet(void);
/* Set PHY Force call
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPHYForceCalSet(void);
/* Disable scrambler update
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPHYScramblerUpdateDisable(void);
/* Enable scrambler update
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPHYScramblerUpdateEnable(void);
/* Turn PHY watchdog on/off
* param[in] on = 1, off = 0
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPHYWatchdogSet(int val);
/* Disable temperature sensore
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTemperatureSensorDisable(void);
/* Enable temperature sensore
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTemperatureSensorEnable(void);
/* Set transmit core
* param[in]
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTransmitCoreSet(int val);
/* Get temperation sensor read
* param[out] chip core temperature in F
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmPhyTempSenseGet(int *val);
/* Get chip OTP Fab ID
* param[out] chip fab id
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmOtpFabidGet(int *val);
/* Set mimo channnel specifications
* param[in] channel
* param[in] bandwidth 20 = 20Mhz, 40 = 40Mhz
* param[in] sideband 1 = upper, -1 = lower, 0 = none
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmChannelSpecSet(int channel, int bandwidth, int sideband);
/* Set rts threshold
* param[in] rts threshold value
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRtsThresholdOverride(int val);
/* Turn STBC Tx mode on/off
* param[in] on = 1, off = 0
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSTBCTxSet(int val);
/* Turn STBC Rx mode on/off
* param[in] on = 1, off = 0
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmSTBCRxSet(int val);
/* MIMO single stream tx chain selection
* param[in] chain 1 = 1, chain 2 = 2
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmTxChainSet(int val);
/* MIMO single stream rx chain selection
* param[in] chain 1 = 1, chain 2 = 2
* return - True for success, false for failure.
*/
WLM_FUNCTION
int wlmRxChainSet(int val);
#ifdef __cplusplus
}
#endif
#endif /* _wlm_h */