74 return ceil(rtsduration -
bool fn_NetSim_IEEE802_11_CSMACA_CheckRetryLimit(PIEEE802_11_MAC_VAR mac, UINT frameLength)
int fn_NetSim_IEEE802_11_CSMACA_Init()
void fn_NetSim_IEEE802_11_CSMACA_IncreaseCW(PIEEE802_11_MAC_VAR mac)
PIEEE802_11_MAC_VAR IEEE802_11_MAC(NETSIM_ID ndeviceId, NETSIM_ID nInterfaceId)
PIEEE802_11_PHY_VAR IEEE802_11_PHY(NETSIM_ID ndeviceId, NETSIM_ID nInterfaceId)
NetSim_PACKET * fn_NetSim_IEEE802_11_CreateCTSPacket(NetSim_PACKET *data)
double getAckSize(void *phy)
@ IEEE802_11_MACSTATE_TXing_CTS
@ IEEE802_11_MACSTATE_MAC_IDLE
@ IEEE802_11_MACSTATE_TXing_MPDU
double getMacOverhead(void *phy, double size)
NetSim_PACKET * fn_NetSim_IEEE802_11_CreateRTSPacket(NetSim_PACKET *data, double duration)
void IEEE802_11_Change_Mac_State(PIEEE802_11_MAC_VAR mac, IEEE802_11_MAC_STATE state)
bool isIEEE802_11_CtrlPacket(NetSim_PACKET *packet)
#define IEEE802_11_CURR_MAC
int fn_NetSim_IEEE802_11_SetDataRate(NETSIM_ID txId, NETSIM_ID txIf, NETSIM_ID rxId, NETSIM_ID rxIf, NetSim_PACKET *packet, double time)
double fn_NetSim_IEEE802_11_CalculateTransmissionTime(double size, NETSIM_ID nDevId, NETSIM_ID nInterfaceId)
double get_preamble_time(PIEEE802_11_PHY_VAR phy)
#define IEEE802_11_CURR_PHY
bool isMulticastPacket(NetSim_PACKET *packet)
bool isBroadcastPacket(NetSim_PACKET *packet)
void fn_NetSim_IEEE802_11_RTS_CTS_Init()
void fn_NetSim_IEEE802_11_RTS_CTS_SendCTS()
double calculate_CTS_duration(NETSIM_ID d, NETSIM_ID i, double rtsduration)
void fn_NetSim_IEEE802_11_RTS_CTS_AddCTSTimeOut(NetSim_PACKET *packet, NETSIM_ID devId, NETSIM_ID devIf)
static bool decide_RTS_CTS_Mechanism()
static double get_RTS_CTS_Time(PIEEE802_11_MAC_VAR mac, PIEEE802_11_PHY_VAR phy)
void fn_NetSim_IEEE802_11_RTS_CTS_ProcessCTS()
void fn_NetSim_IEEE802_11_RTS_CTS_ProcessRTS()
void fn_NetSim_IEEE802_11_RTS_CTS_CTSTimeOut()
double calculate_RTS_duration(NETSIM_ID txId, NETSIM_ID txIf, NetSim_PACKET *packet)
#define DEVICE_TYPE(DeviceId)
@ MAC_PROTOCOL_IEEE802_11
int fnDeleteEvent(unsigned long long int nEventId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
NETSIM_ID fn_NetSim_Stack_GetConnectedInterface(NETSIM_ID devId, NETSIM_ID ifid, NETSIM_ID conId)
#define fn_NetSim_Packet_FreePacket(pstruPacket)
#define fnpAddEvent(pstruEvent)
double dPacketProcessingEndTime
NetSim_PACKET * waitingforCTS
NetSim_PACKET * currentProcessingPacket
IEEE802_11_METRICS metrics
struct stru_802_11_Mac_Var::@0 EVENTID
double dBroadcastFrameDataRate
double dControlFrameDataRate
PLME_CHARACTERISTICS plmeCharacteristics
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
void * Packet_MACProtocol
struct stru_NetSim_Packet_AppLayer * pstruAppData
struct stru_NetSim_Packet_PhyLayer * pstruPhyData
struct stru_NetSim_Packet * pstruNextPacket
int(* DropNotification)(struct stru_NetSim_Packet *packet)
struct stru_NetSim_Packet_MACLayer * pstruMacData
NETSIM_ID sendInterfaceId