37 fnNetSimError(
"Control frame data rate is 0 for device %d, interface %d in %s\n",
272 double dRandomNumber = 0.0;
338 print_ieee802_11_log(
"Time %lf micro sec, Backoff failed for %d-%d due to medium is not idle\n",
352 print_ieee802_11_log(
"Time %lf micro sec, Backoff paused for %d-%d due to medium is not idle.\n",
450 UINT success=0,fail=0;
459 if (flag == 0 && i == 1)
648 if (frameLength <= mac->dot11RTSThreshold)
726 bool isUpdated =
false;
746 memset(&pevent, 0,
sizeof pevent);
bool fn_NetSim_IEEE802_11_CSMACA_CheckRetryLimit(PIEEE802_11_MAC_VAR mac, UINT frameLength)
int fn_NetSim_IEEE802_11_CSMACA_CheckNAV()
static void fn_NetSim_IEEE802_11_CSMACA_StartBackOff()
static double get_CSMACA_Time(PIEEE802_11_PHY_VAR phy)
int fn_NetSim_IEEE802_11_CSMACA_SendBlockACK()
int fn_NetSim_IEEE802_11_CSMACA_SendACK()
void fn_NetSim_IEEE802_11_CSMA_AckTimeOut()
void fn_NetSim_IEEE802_11_CSMA_UpdateNAV(NETSIM_ID d, NETSIM_ID in, NetSim_PACKET *packet)
void fn_NetSim_IEEE802_11_CSMACA_DIFSEnd()
void ieee802_11_csmaca_aifs_failed(PIEEE802_11_MAC_VAR mac)
void fn_NetSim_IEEE802_11_CSMACA_AddAckTimeOut(NetSim_PACKET *packet, NETSIM_ID devId, NETSIM_ID devIf)
static void fn_NetSim_IEEE802_11_CSMACA_RandomBackOffTimeCalculation()
void fn_NetSim_IEEE802_11_CSMACA_ProcessAck()
void ieee802_11_csmaca_pause_backoff(PIEEE802_11_MAC_VAR mac)
void ieee802_11_csmaca_difs_failed(PIEEE802_11_MAC_VAR mac)
bool fn_NetSim_IEEE802_11_CSMACA_CS()
bool fn_NetSim_IEEE802_11_CSMACA_Backoff()
void fn_NetSim_IEEE802_11_CSMACA_AIFSEnd()
int fn_NetSim_IEEE802_11_CSMACA_Init()
void fn_NetSim_IEEE802_11_CSMACA_ProcessBlockAck()
void fn_NetSim_IEEE802_11_CSMACA_IncreaseCW(PIEEE802_11_MAC_VAR mac)
void packet_recv_notify(NETSIM_ID devid, NETSIM_ID ifid, NETSIM_ID rcvid)
void packet_drop_notify(NETSIM_ID devid, NETSIM_ID ifid, NETSIM_ID rcvid)
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)
bool validate_processing_time(double time, NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
NetSim_PACKET * get_from_queue(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, UINT nPacketRequire, UINT *nPacketCount)
@ RATEADAPTATION_MINSTREL
bool is_more_fragment_coming(NetSim_PACKET *packet)
BOOL Minstrel_DoNeedDataSend(NETSIM_ID nDevId, NETSIM_ID nifid, NETSIM_ID recvid)
double getAckSize(void *phy)
@ IEEE802_11_MACSTATE_BACKING_OFF
@ IEEE802_11_MACSTATE_Wait_AIFS
@ IEEE802_11_MACSTATE_Wait_ACK
@ IEEE802_11_MACSTATE_MAC_IDLE
@ IEEE802_11_MACSTATE_TXing_MPDU
@ IEEE802_11_MACSTATE_Wait_DIFS
@ IEEE802_11_MACSTATE_TXing_ACK
void fn_NetSim_IEEE802_11_RTS_CTS_Init()
void fn_NetSim_IEE802_11_MacReInit(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
NetSim_PACKET * fn_NetSim_IEEE802_11_CreateAckPacket(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NetSim_PACKET *data, double time)
void DoReportAmpduStatus(NETSIM_ID devid, NETSIM_ID ifid, NETSIM_ID recvid, UINT success, UINT failed)
void DoReportDataOk(NETSIM_ID dev, NETSIM_ID ifid, NETSIM_ID recv)
void IEEE802_11_Change_Mac_State(PIEEE802_11_MAC_VAR mac, IEEE802_11_MAC_STATE state)
NetSim_PACKET * fn_NetSim_IEEE802_11_CreateBlockAckPacket(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NetSim_PACKET *data, double time)
void fn_NetSim_IEEE802_11_SendToPhy()
bool ieee802_11_edcaf_is_txop_timer_set(PIEEE802_11_MAC_VAR mac, double currTime)
#define isCurrSTAMediumIdle()
void print_ieee802_11_Backoff_log(char *format,...)
void ieee802_11_edcaf_unset_txop_time(PIEEE802_11_MAC_VAR mac)
void Minstrel_ReportDataFailed(NETSIM_ID nDevId, NETSIM_ID nifid, NETSIM_ID recvid)
void print_ieee802_11_log(char *format,...)
#define IEEE802_11_CURR_MAC
void Minstrel_ReportFinalDataFailed(NETSIM_ID nDevId, NETSIM_ID nifid, NETSIM_ID recvid)
void set_blockack_bitmap(NetSim_PACKET *ackPacket, NetSim_PACKET *packet)
void * ieee802_11_get_hdr(NetSim_PACKET *packet, UINT *type)
struct stru_ieee802_11_hdr * ptrIEEE802_11_HDR
double get_preamble_time(PIEEE802_11_PHY_VAR phy)
#define IEEE802_11_CURR_PHY
#define fnNetSimError(x,...)
#define BIT_IS_SET_64(val, bitIndex)
#define PACKET_MACPROTOCOLDATA(pPacket)
EXPORTED double ldEventTime
#define DEVICE_NAME(DeviceId)
#define DEVICE_TYPE(DeviceId)
double fn_NetSim_Utilities_GenerateRandomNo(unsigned long *uSeed, unsigned long *uSeed1)
@ MAC_PROTOCOL_IEEE802_11
EXPORTED struct stru_NetSim_Network * NETWORK
int fnDeleteEvent(unsigned long long int nEventId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Packet_FreePacket(pstruPacket)
#define fnpAddEvent(pstruEvent)
Data structure for cumulative acknowledgment.
Page-405 of IEEE Std 802.11-2012 Figure 8-14—CTS frame.
double dPacketProcessingEndTime
UINT nNumberOfAggregatedPackets
NETSIM_ID parentInterfaceId
IEEE802_11_RATE_ADAPTATION rate_adaptationAlgo
IEEE802_11_MAC_STATE currMacState
UINT dot11ShortRetryLimit
ptrDOT11EDCATABLE currEdcaTable
NetSim_PACKET * currentProcessingPacket
IEEE802_11_METRICS metrics
struct stru_802_11_Mac_Var::@0 EVENTID
UINT nBackoffSuccessCount
double dControlFrameDataRate
PLME_CHARACTERISTICS plmeCharacteristics
Page-404 of IEEE Std 802.11-2012 Figure 8-13—RTS frame.
unsigned long ulSeed[SEED_COUNT]
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
struct stru_NetSim_Device ** ppstruDeviceList
void * Packet_MACProtocol
struct stru_NetSim_Packet_AppLayer * pstruAppData
struct stru_NetSim_Packet_PhyLayer * pstruPhyData
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
int(* ReceiveAckNotification)(struct stru_NetSim_Packet *ack)
struct stru_NetSim_Packet * pstruNextPacket
int(* DropNotification)(struct stru_NetSim_Packet *packet)
struct stru_NetSim_Packet_MACLayer * pstruMacData
NETSIM_ID sendInterfaceId
NETSIM_ID recvInterfaceId