17_declspec(dllexport)
int fn_NetSim_Routing_Run()
19 switch(pstruEventDetails->nProtocolId)
21 case APP_PROTOCOL_RIP:
22 fn_NetSim_RIP_Run_F();
30_declspec(dllexport)
int fn_NetSim_UpdateEntryinRoutingTable(
struct stru_NetSim_Network *NETWORK,NetSim_EVENTDETAILS *pstruEventDetails,NETSIM_ID nDeviceId,NETSIM_ID nInterfaceId,
unsigned int bgpRemoteAS,NETSIM_IPAddress szDestinationIP,NETSIM_IPAddress szNexthop,NETSIM_IPAddress szSubnetmask,
unsigned int prefix_len,
int nCost,
int nFlag)
32 DEVICE_ROUTER *pstruRouter = get_RIP_var(nDeviceId);
33 if(pstruRouter->AppIntRoutingProtocol == APP_PROTOCOL_RIP)
35 fn_NetSim_RIP_UpdatingEntriesinRoutingDatabase(NETWORK,nDeviceId,szDestinationIP,szSubnetmask,szNexthop,nInterfaceId,pstruEventDetails->dEventTime,nCost);
38 fn_NetSim_RIP_TriggeredUpdate(NETWORK,pstruEventDetails);
45_declspec(dllexport)
int UpdateInterfaceList()
48 DEVICE_ROUTER *pstruRouter;
49 NETSIM_ID nDeviceCount,nInterfaceCount,nConnectedDevId,nConnectedInterId;
50 nDeviceCount = NETWORK->nDeviceCount;
51 for(i=0;i<nDeviceCount;i++)
54 if(fnCheckRoutingProtocol(i+1))
56 nInterfaceCount = NETWORK->ppstruDeviceList[i]->nNumOfInterface;
57 if(NETWORK->ppstruDeviceList[i]->pstruApplicationLayer)
59 pstruRouter = get_RIP_var(i + 1);
60 if(!pstruRouter->RoutingProtocol)
62 pstruRouter->RoutingProtocol = calloc(nInterfaceCount,
sizeof* pstruRouter->RoutingProtocol);
64 for(j=0;j<nInterfaceCount;j++)
66 if(NETWORK->ppstruDeviceList[i]->ppstruInterfaceList[j]->nInterfaceType == INTERFACE_WAN_ROUTER)
68 fn_NetSim_Stack_GetConnectedDevice(i+1,j+1,&nConnectedDevId,&nConnectedInterId);
69 pstruRouter->RoutingProtocol[j] = APP_PROTOCOL_RIP;
77int fnCheckRoutingPacket()
79 if(pstruEventDetails->pPacket && pstruEventDetails->pPacket->nControlDataType/100 == APP_PROTOCOL_RIP)
84APPLICATION_LAYER_PROTOCOL fnCheckRoutingProtocol(NETSIM_ID deviceId)
86 if(fn_NetSim_Stack_isProtocolConfigured(deviceId,APPLICATION_LAYER,APP_PROTOCOL_RIP))
87 return APP_PROTOCOL_RIP;
89 return APP_PROTOCOL_NULL;