24#ifndef _NETSIM_IEEE802_11_PHY_H_
25#define _NETSIM_IEEE802_11_PHY_H_
34#define BATTERY_RECHARGING_CURRENT_MA_DEFAULT 0
35#define BATTERY_VOLTAGE_V_DEFAULT 0
36#define BATTERY_INITIAL_ENERGY_DEFAULT 0
37#define BATTERY_TRANSMITTING_CURRENT_MA_DEFAULT 0
38#define BATTERY_RECEIVING_CURRENT_MA_DEFAULT 0
39#define BATTERY_IDLEMODE_CURRENT_MA_DEFAULT 0
40#define BATTERY_SLEEPMODE_CURRENT_MA_DEFAULT 0
118#define getSlotTime(phy) (phy->plmeCharacteristics.aSlotTime)
119#define getSIFSTime(phy) (phy->plmeCharacteristics.aSIFSTime)
208#define IEEE802_11_CURR_PHY IEEE802_11_PHY(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId)
212#define GET_RX_POWER_mw(tx, txi, rx, rxi, time) (DBM_TO_MW(GET_RX_POWER_dbm(tx, txi, rx, rxi, time)))
#define GET_RX_POWER_dbm(tx, rx, time)
IEEE802_11_CCAMODE
page-1534 16.4.8.5 CCA, and 17.4.8.5 CCA IEEE802.11-2012
IEEE802_11_PROTOCOL
Enumeration for WLAN PHY protocols.
struct stru_802_11_phy_radio * ptrIEEE802_11_RADIO
void free_ieee802_11_phy_header(NetSim_PACKET *packet)
PHY_TX_STATUS get_radio_state(PIEEE802_11_PHY_VAR phy)
void get_ofdm_phy_all_rate(int bandwidth_MHz, double *rate, UINT *len)
unsigned int get_dsss_phy_min_index()
struct stru_802_11_Phy_Var * PIEEE802_11_PHY_VAR
bool is_radio_idle(PIEEE802_11_PHY_VAR phy)
struct stru_802_11_phy_radio IEEE802_11_RADIO
double get_11ac_preamble_time(PIEEE802_11_PHY_VAR phy)
bool set_radio_state(NETSIM_ID d, NETSIM_ID in, PHY_TX_STATUS state, NETSIM_ID peerId, UINT64 transmissionId)
int fn_NetSim_IEEE802_11_SetDataRate(NETSIM_ID txId, NETSIM_ID txIf, NETSIM_ID rxId, NETSIM_ID rxIf, NetSim_PACKET *packet, double time)
void fn_NetSim_IEEE802_11_HTPhy_SetEDThreshold(PIEEE802_11_PHY_VAR phy)
int fn_NetSim_IEEE802_11_HTPhy_DataRate(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NETSIM_ID nReceiverId, NetSim_PACKET *packet, double time)
enum_802_11_DSSS_PLCP_SIGNAL_Field
Enumeration to represent the DSSS rate
bool fn_NetSim_IEEE802_11_TransmitBroadcastFrame(NetSim_PACKET *pstruPacket, NETSIM_ID nDevId, NETSIM_ID nInterfaceId)
struct stru_802_11_PHY_PLME_characteristics PLME_CHARACTERISTICS
PIEEE802_11_PHY_VAR IEEE802_11_PHY(NETSIM_ID ndeviceId, NETSIM_ID nInterfaceId)
int fn_NetSim_IEEE802_11_DSSSPhy_DataRate(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NETSIM_ID nReceiverId, NetSim_PACKET *packet, double time)
struct stru_IEEE802_11_OFDM_Phy IEEE802_11_OFDM_PHY
unsigned int get_ht_phy_max_index(IEEE802_11_PROTOCOL protocol, UINT)
double fn_NetSim_IEEE802_11_CalculateTransmissionTime(double size, NETSIM_ID nDevId, NETSIM_ID nInterfaceId)
struct stru_802_11_Phy_Parameters_HT * get_phy_parameter_HT(double dChannelBandwidth, UINT NSS)
struct stru_IEEE802_11_DSSS_Phy IEEE802_11_DSSS_PHY
int fn_NetSim_IEEE802_11_PropagationModel(NETSIM_ID nodeId, double time)
int fn_NetSim_IEEE802_11_PhyOut()
double fn_NetSim_IEEE802_11n_TxTimeCalculation(NetSim_PACKET *pstruPacket, NETSIM_ID nDevId, NETSIM_ID nInterfaceId)
void fn_NetSim_IEEE802_11n_OFDM_MIMO_init(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
unsigned int get_ht_phy_min_index(IEEE802_11_PROTOCOL protocol, UINT)
void fn_NetSim_IEEE802_11_OFDMPhy_SetEDThreshold(PIEEE802_11_PHY_VAR phy)
int fn_NetSim_IEEE802_11_OFDMPhy_DataRate(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NETSIM_ID nReceiverId, NetSim_PACKET *packet, double time)
int fn_NetSim_IEEE802_11_HTPhy_UpdateParameter()
struct stru_IEEE802_11_DSSS_Phy * PIEEE802_11_DSSS_PHY
int fn_NetSim_IEEE802_11_PHY_Init(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
unsigned int get_ofdm_phy_min_index()
void fn_NetSim_IEEE802_11_DSSPhy_SetEDThreshold(PIEEE802_11_PHY_VAR phy)
bool fn_NetSim_IEEE802_11_TransmitFrame(NetSim_PACKET *pstruPacket, NETSIM_ID nDevId, NETSIM_ID nInterfaceId)
int fn_NetSim_IEEE802_11_OFDMPhy_UpdateParameter()
void fn_NetSim_IEEE802_11_Add_Phy_Header(NetSim_PACKET *packet, UINT64 *transmissionId)
struct stru_802_11_PHY_PLME_characteristics * PPLME_CHARACTERISTICS
void copy_ieee802_11_phy_header(NetSim_PACKET *d, NetSim_PACKET *s)
int fn_NetSim_IEEE802_11_DSSPhy_UpdateParameter()
enum enum_802_11_DSSS_PLCP_SIGNAL_Field IEEE802_11_DSSS_PLCP_SIGNAL
Enumeration to represent the DSSS rate
struct stru_IEEE802_11_OFDM_Phy * PIEEE802_11_OFDM_PHY
void SET_IEEE802_11_PHY(NETSIM_ID ndeviceId, NETSIM_ID nInterfaceId, PIEEE802_11_PHY_VAR phy)
unsigned int get_dsss_phy_max_index()
double get_11n_preamble_time(PIEEE802_11_PHY_VAR phy)
double fn_NetSim_IEEE802_11_GetMinRxSensitivity(NETSIM_ID txId, NETSIM_ID txIf)
void fn_NetSim_IEEE802_11ac_OFDM_MIMO_init(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
unsigned int get_ofdm_phy_max_index()
void get_dsss_phy_all_rate(double *rate, UINT *len)
int fn_NetSim_IEEE802_11_PhyIn()
double get_preamble_time(PIEEE802_11_PHY_VAR phy)
void set_mac_state_after_txend(PIEEE802_11_MAC_VAR mac)
double fn_NetSim_IEEE802_11_HTPhy_getCtrlFrameDataRate(PIEEE802_11_PHY_VAR pstruPhy)
double fn_NetSim_IEEE802_11ac_TxTimeCalculation(NetSim_PACKET *pstruPacket, NETSIM_ID nDevId, NETSIM_ID nInterfaceId)
bool CheckFrequencyInterfrence(double dFrequency1, double dFrequency2, double bandwidth)
struct stru_802_11_Phy_Var IEEE802_PHY_VAR
enum enum_tx_status PHY_TX_STATUS
enum enum_Modulation PHY_MODULATION
enum enum_PacketStatus PACKET_STATUS
Table 20-5—Timing-related constants and Table 20-6—Frequently used parameters.
Data structure for physical layer parameters.
double dCurrentRxSensitivity_dbm
IEEE802_11_PHY_TYPE PhyType
IEEE802_11_OFDM_MIMO ofdmPhy_11n
union stru_802_11_Phy_Var::@4 PHY_TYPE
IEEE802_11_DSSS_PHY dsssPhy
PACKET_STATUS firstpacketstatus
IEEE802_11_PROTOCOL PhyProtocol
IEEE802_11_CCAMODE ccaMode
IEEE802_11_OFDM_PHY ofdmPhy
double dBroadcastFrameDataRate
ptrpropagation_info_for_list propagation_info_list
unsigned short int nN_HT_DLTF
IEEE802_11_OFDM_MIMO ofdmPhy_11ac
double dControlFrameDataRate
PLME_CHARACTERISTICS plmeCharacteristics
void * rateAdaptationData
IEEE802_11_DSSS_PLCP_SIGNAL dsssrate
PHY_MODULATION modulation
PHY_MODULATION modulation