25#include "IEEE802_11.h"
26#include "IEEE802_11_Phy.h"
27#include "NetSim_utility.h"
28#include "AdvancedPlots.h"
29#pragma comment(lib,"AdvancedPlots.lib")
32int fn_NetSim_IEEE802_11_Configure_F(
void** var);
34 NetSim_EVENTDETAILS *pstruEventDetails_Formal,
35 char *pszAppPath_Formal,
36 char *pszWritePath_Formal,
38int fn_NetSim_IEEE802_11_Metrics_F(PMETRICSWRITER metricsWriter);
39void print_minstrel_table(PMETRICSWRITER metricsWriter);
41_declspec(dllexport)
int fn_NetSim_IEEE802_11_Configure(
void** var)
43 return fn_NetSim_IEEE802_11_Configure_F(var);
46_declspec(dllexport)
int fn_NetSim_IEEE802_11_Init(
struct stru_NetSim_Network *NETWORK_Formal,
47 NetSim_EVENTDETAILS *pstruEventDetails_Formal,
48 char *pszAppPath_Formal,
49 char *pszWritePath_Formal,
53 fnNetSim_buffer_log_init();
54 IEEE_802_11RadioMeasurements_Init();
55 return fn_NetSim_IEEE802_11_Init_F(NETWORK_Formal,
56 pstruEventDetails_Formal,pszAppPath_Formal,
61_declspec(dllexport)
int fn_NetSim_IEEE802_11_Run()
63 switch(pstruEventDetails->nEventType)
66 fn_NetSim_IEEE802_11_MacOut();
69 fn_NetSim_IEEE802_11_MacIn();
71 case PHYSICAL_OUT_EVENT:
72 fn_NetSim_IEEE802_11_PhyOut();
74 case PHYSICAL_IN_EVENT:
75 fn_NetSim_IEEE802_11_PhyIn();
78 fn_NetSim_IEEE802_11_Timer();
81 fnNetSimError(
"Unknown event type %d for IEEE802.11 protocol",pstruEventDetails->nEventType);
91_declspec(dllexport)
char* fn_NetSim_IEEE802_11_Trace(
int nSubEvent)
93 return GetStringIEEE802_11_Subevent(nSubEvent);
100_declspec(dllexport)
int fn_NetSim_IEEE802_11_FreePacket(NetSim_PACKET* pstruPacket)
102 ieee802_11_free_hdr(pstruPacket);
103 free_ieee802_11_phy_header(pstruPacket);
111_declspec(dllexport)
int fn_NetSim_IEEE802_11_CopyPacket(NetSim_PACKET* pstruDestPacket,NetSim_PACKET* pstruSrcPacket)
113 ieee802_11_hdr_copy(pstruDestPacket,pstruSrcPacket);
114 copy_ieee802_11_phy_header(pstruDestPacket, pstruSrcPacket);
121_declspec(dllexport)
int fn_NetSim_IEEE802_11_Metrics(PMETRICSWRITER metricsWriter)
123 fn_NetSim_IEEE802_11_Metrics_F(metricsWriter);
124 print_minstrel_table(metricsWriter);
132_declspec(dllexport)
char* fn_NetSim_IEEE802_11_ConfigPacketTrace(
const void* xmlNetSimNode)
142_declspec(dllexport)
int fn_NetSim_IEEE802_11_WritePacketTrace(NetSim_PACKET* pstruPacket,
char** ppszTrace)
153_declspec(dllexport)
int fn_NetSim_IEEE802_11_Finish()
155 fn_NetSim_buffer_log_close();
156 LinkPacketLog_close();
157 IEEE_802_11RadioMeasurements_Finish();
158 return fn_NetSim_IEEE802_11_Finish_F();
161void fn_NetSim_IEEE802_11_Timer()
163 switch(pstruEventDetails->nSubEventType)
166 fn_NetSim_IEEE802_11_CSMA_AckTimeOut();
169 fn_NetSim_IEEE802_11_RTS_CTS_CTSTimeOut();
172 fnNetSimError(
"Unknown Timer event-%d subevent for IEEE802.11 protocol in %s\n",
173 pstruEventDetails->nSubEventType,
178bool isIEEE802_11_log()
180 if (get_protocol_log_status(
"IEEE802_11_LOG"))
186bool isieee802_11_Backoff_log()
188 if (get_protocol_log_status(
"IEEE802_11_BACKOFF_LOG"))
194bool get_protocol_log_status(
char* logname)
200 sprintf(str,
"%s/%s", pszIOPath,
"ProtocolLogsConfig.txt");
201 fp = fopen(str,
"r");
205 sprintf(str,
"%s=true", logname);
207 while (fgets(data, BUFSIZ, fp))
210 if (!_strnicmp(data, str, strlen(str)))