18_declspec(dllexport)
int fn_NetSim_AODV_PacketDropNotification(NetSim_PACKET* packet);
30int fn_NetSim_AODV_GeneralPacketProcessing(NetSim_EVENTDETAILS* pstruEventDetails)
32 NETSIM_IPAddress destIP = pstruEventDetails->pPacket->pstruNetworkData->szDestIP;
33 pstruEventDetails->pPacket->pstruNetworkData->szGatewayIP = IP_COPY(aodv_get_curr_ip());
34 if(AODV_CHECK_ROUTE_FOUND(destIP))
38 NETSIM_IPAddress nextHop = IP_COPY(AODV_FIND_NEXT_HOP(AODV_DEV_VAR(pstruEventDetails->nDeviceId),destIP));
39 pstruEventDetails->pPacket->nTransmitterId = pstruEventDetails->nDeviceId;
40 pstruEventDetails->pPacket->nReceiverId = fn_NetSim_Stack_GetDeviceId_asIP(nextHop,&port);
41 pstruEventDetails->pPacket->pstruNetworkData->szNextHopIp = nextHop;
42 pstruEventDetails->pPacket->pstruNetworkData->nTTL = AODV_NET_DIAMETER;
43 pstruEventDetails->pPacket->DropNotification = fn_NetSim_AODV_PacketDropNotification;
44 sprintf(comment,
"Sending Data Packet using an existing route");
46 AODV_UPDATE_ROUTE_TABLE(destIP,
47 pstruEventDetails->dEventTime+AODV_ACTIVE_ROUTE_TIMEOUT);
49 if(pstruEventDetails->nDeviceId == pstruEventDetails->pPacket->nSourceId)
50 AODV_METRICS_VAR(pstruEventDetails->nDeviceId).packetOrginated++;
51 AODV_METRICS_VAR(pstruEventDetails->nDeviceId).packetTransmitted++;
53 else if(AODV_ADD_TO_FIFO(pstruEventDetails->pPacket,&AODV_DEV_VAR(pstruEventDetails->nDeviceId)->fifo,pstruEventDetails->dEventTime))
56 pstruEventDetails->pPacket = NULL;
61 pstruEventDetails->pPacket = AODV_GEN_RREQ();