18 NetSim_EVENTDETAILS *pstruEventDetails_Formal,
19 char *pszAppPath_Formal,
20 char *pszWritePath_Formal,
23int fn_NetSim_DSR_Configure_F(
void** var);
24int fn_NetSim_DSR_CopyPacket_F(
const NetSim_PACKET* destPacket,
const NetSim_PACKET* srcPacket);
25int fn_NetSim_DSR_FreePacket_F(NetSim_PACKET* packet);
26int fn_NetSim_DSR_Metrics_F(PMETRICSWRITER filename);
34 NetSim_EVENTDETAILS *pstruEventDetails_Formal,
35 char *pszAppPath_Formal,
36 char *pszWritePath_Formal,
40 return fn_NetSim_DSR_Init_F(NETWORK_Formal,pstruEventDetails_Formal,pszAppPath_Formal,pszWritePath_Formal,nVersion_Type,fnPointer);
45_declspec(dllexport)
int fn_NetSim_DSR_Configure(
void** var)
47 return fn_NetSim_DSR_Configure_F(var);
65_declspec(dllexport)
int fn_NetSim_DSR_Run()
68 if (!isDsrConfigured(pstruEventDetails->nDeviceId, dsr_get_curr_if()))
70 switch(pstruEventDetails->nEventType)
72 case NETWORK_OUT_EVENT:
73 switch(pstruEventDetails->nSubEventType)
78 if(!isDSRPACKET(pstruEventDetails->pPacket))
80 NETSIM_IPAddress n1,n2;
81 NETSIM_IPAddress dest = pstruEventDetails->pPacket->pstruNetworkData->szDestIP;
82 NETSIM_IPAddress ip = dsr_get_curr_ip();
83 if(ip->type != dest->type)
85 n1=IP_NETWORK_ADDRESS(ip,
86 DEVICE_INTERFACE(pstruEventDetails->nDeviceId,1)->szSubnetMask,
87 DEVICE_INTERFACE(pstruEventDetails->nDeviceId,1)->prefix_len);
88 n2=IP_NETWORK_ADDRESS(dest,
89 DEVICE_INTERFACE(pstruEventDetails->nDeviceId,1)->szSubnetMask,
90 DEVICE_INTERFACE(pstruEventDetails->nDeviceId,1)->prefix_len);
92 if(!IP_COMPARE(n1,n2))
93 DSR_PACKET_PROCESSING();
105 if(pstruEventDetails->pPacket)
106 pstruEventDetails->nInterfaceId = dsr_get_curr_if();
108 pstruEventDetails->nInterfaceId = 0;
110 case NETWORK_IN_EVENT:
112 switch(pstruEventDetails->nSubEventType)
117 switch(pstruEventDetails->pPacket->nControlDataType)
120 if(pstruEventDetails->pPacket->pstruNetworkData->Packet_RoutingProtocol)
122 DSR_PROCESS_SRC_ROUTE();
123 if(pstruEventDetails->pPacket && pstruEventDetails->pPacket->pstruNetworkData)
124 pstruEventDetails->pPacket->pstruNetworkData->nTTL--;
128 case ctrlPacket_ROUTE_REQUEST:
130 pstruEventDetails->pPacket=NULL;
132 case ctrlPacket_ROUTE_REPLY:
134 pstruEventDetails->pPacket=NULL;
136 case ctrlPacket_ROUTE_ERROR:
138 pstruEventDetails->pPacket=NULL;
143 pstruEventDetails->pPacket=NULL;
148 case subevent_PROCESS_RERR:
150 pstruEventDetails->pPacket=NULL;
157 switch(pstruEventDetails->nSubEventType)
159 case subevent_RREQ_TIMEOUT:
163 case subevent_MAINT_TIMEOUT:
177_declspec(dllexport)
char* fn_NetSim_DSR_Trace(NETSIM_ID nSubeventid)
181 case subevent_RREQ_TIMEOUT:
182 return "DSR_RREQ_TIMEOUT";
183 case subevent_MAINT_TIMEOUT:
184 return "DSR_MAINT_TIMEOUT";
185 case subevent_PROCESS_RERR:
186 return "DSR_PROCESS_RERR";
188 return "DSR_UNKNOWN";
195_declspec(dllexport)
int fn_NetSim_DSR_CopyPacket(
const NetSim_PACKET* destPacket,
const NetSim_PACKET* srcPacket)
197 return fn_NetSim_DSR_CopyPacket_F(destPacket,srcPacket);
202_declspec(dllexport)
int fn_NetSim_DSR_FreePacket(NetSim_PACKET* packet)
204 return fn_NetSim_DSR_FreePacket_F(packet);
209_declspec(dllexport)
int fn_NetSim_DSR_Metrics(PMETRICSWRITER filename)
211 return fn_NetSim_DSR_Metrics_F(filename);
217_declspec(dllexport)
int fn_NetSim_DSR_Finish()
219 return fn_NetSim_DSR_Finish_F();
224_declspec(dllexport)
char* fn_NetSim_DSR_ConfigPacketTrace()
231_declspec(dllexport)
char* fn_NetSim_DSR_WritePacketTrace()