14#define _CRT_SECURE_NO_DEPRECATE
23 return fn_NetSim_RIP_Configure_F(var);
104 int nLoop1=0,nLink_Id=0;
113 RIP_ENTRY *pstruRIPNewEntry,*pstruRIPCurrentEntry;
118 for(nLoop=0;nLoop<nInterfaceCount;nLoop++)
137 while(pstrudatabase!=NULL)
157 nInterfaceId=nLoop+1;
184 sprintf(str,
"Unable to get the connected device IP address for Router %d Interface %d",nDeviceid,nInterfaceId);
235 switch(nSub_Event_Type)
249 switch(nSub_Event_Type)
261 printf(
"\nInvalid sub event");
266 printf(
"\nInvalid event");
enum enum_ARP_Subevent_Type SUB_EVENT
int fn_NetSim_RIP_DistanceVectorAlgorithm(struct stru_NetSim_Network *NETWORK, NetSim_EVENTDETAILS *pstruEventDetails)
int fn_NetSim_RIP_Garbage_Collection_Timer(struct stru_NetSim_Network *pstruNETWORK, NetSim_EVENTDETAILS *pstruEventDetails)
NETSIM_IPAddress IP_COPY(NETSIM_IPAddress ip)
#define _declspec(dllexport)
This function is used to trigger the update.
#define fnNetSimError(x,...)
void add_dest_to_packet(NetSim_PACKET *packet, NETSIM_ID dest)
int fn_NetSim_RIP_CopyPacket(NetSim_PACKET *pstruDestPacket, NetSim_PACKET *pstruSrcPacket)
int fn_NetSim_RIP_Init(struct stru_NetSim_Network *NETWORK_Formal, NetSim_EVENTDETAILS *pstruEventDetails_Formal, char *pszAppPath_Formal, char *pszWritePath_Formal, int nVersion_Type, void **fnPointer)
char * fn_NetSim_RIP_WritePacketTrace()
char * fn_NetSim_RIP_ConfigPacketTrace()
int fn_NetSim_RIP_Finish()
char * fn_NetSim_RIP_Trace(int nSubEvent)
int fn_NetSim_RIP_TriggeredUpdate(struct stru_NetSim_Network *pstruNETWORK, NetSim_EVENTDETAILS *pstruEventDetails)
int fn_NetSim_RIP_Configure(void **var)
int fn_NetSim_RIP_Run_F()
int fn_NetSim_RIP_Metrics(PMETRICSWRITER metricsWriter)
int fn_NetSim_RIP_FreePacket(NetSim_PACKET *pstruPacket)
NetSim_PACKET *int fn_NetSim_RIP_CopyPacket_F(NetSim_PACKET *, NetSim_PACKET *)
int fn_NetSim_RIP_Finish_F()
#define RIP_PACKET_SIZE_WITH_HEADER
int fn_NetSim_RIP_Timeout_Timer(struct stru_NetSim_Network *pstruNETWORK, NetSim_EVENTDETAILS *pstruEventDetails)
NetSim_EVENTDETAILS * pstruEventDetails_Formal
int fn_NetSim_RIP_Update_Timer(struct stru_NetSim_Network *pstruNETWORK, NetSim_EVENTDETAILS *pstruEventDetails)
int fn_NetSim_RIP_Init_F(struct stru_NetSim_Network *, NetSim_EVENTDETAILS *, char *, char *, int, void **fnPointer)
NetSim_EVENTDETAILS char * pszAppPath_Formal
int fn_NetSim_RIP_Metrics_F(PMETRICSWRITER metricsWriter)
NetSim_EVENTDETAILS char char int nVersion_Type
char * fn_NetSim_RIP_Trace_F(int nSubEvent)
int fn_NetSim_RIPTrace(struct stru_NetSim_Network *, NETSIM_ID, int)
NetSim_EVENTDETAILS char char * pszWritePath_Formal
DEVICE_ROUTER * get_RIP_var(NETSIM_ID d)
int fn_NetSim_RIP_FreePacket_F(NetSim_PACKET *)
NetSim_EVENTDETAILS char char int void ** fnPointer
int fn_NetSim_RIP_ReceivingOf_RIP_Message(struct stru_NetSim_Network *pstruNETWORK, NetSim_EVENTDETAILS *pstruEventDetails)
int fnCheckRoutingPacket()
NETSIM_ID fn_NetSim_Stack_GetConnectedDevice(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId, NETSIM_ID *nConnectedDevId, NETSIM_ID *nConnectedInterfaceId)
void fn_NetSim_Socket_PassPacketToInterface(NETSIM_ID deviceId, NetSim_PACKET *packet, ptrSOCKETINTERFACE socketInterface)
EXPORTED EVENT_TYPE nEventType
EXPORTED struct stru_NetSim_Network * NETWORK
NETSIM_IPAddress fn_NetSim_Stack_GetIPAddressAsId(NETSIM_ID nDeviceId, NETSIM_ID nInterfaceId)
bool fn_NetSim_Socket_GetBufferStatus(ptrSOCKETINTERFACE s)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Packet_CreatePacket(layer)
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_TransportLayer * pstruTransportLayer
struct stru_NetSim_Interface ** ppstruInterfaceList
NETSIM_ID nNumOfInterface
struct stru_NetSim_ApplicationLayer * pstruApplicationLayer
struct stru_NetSim_Packet * pPacket
INTERFACE_TYPE nInterfaceType
NETSIM_IPAddress szAddress
struct stru_NetSim_Device ** ppstruDeviceList
void * Packet_AppProtocol
APPLICATION_LAYER_PROTOCOL nApplicationProtocol
NETWORK_LAYER_PROTOCOL nNetworkProtocol
NETSIM_IPAddress szDestIP
NETSIM_IPAddress szSourceIP
TRANSPORT_LAYER_PROTOCOL nTransportProtocol
unsigned short int nSourcePort
unsigned short int nDestinationPort
struct stru_NetSim_Packet_AppLayer * pstruAppData
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
unsigned int nControlDataType
struct stru_NetSim_Packet_TransportLayer * pstruTransportData
unsigned int nVersion
The version field is used to specify the RIP version (version 1 or 2)
struct stru_RIPEntry * pstruRIPEntry
ROUTING_TABLES * pstruRoutingTables
APPLICATION_LAYER_PROTOCOL * RoutingProtocol
union stru_NetSim_Router::uni_Interior_Routing uniInteriorRouting
unsigned int nMetric
Cost to reach the destination.
unsigned int nAddress_family_identifier
This is used to identify the Address family of the IP address.
NETSIM_IPAddress szSubnet_Mask
Destination Subnet Mask
NETSIM_IPAddress szIPv4_address
Destination IPv4 address
NETSIM_IPAddress szNext_Hop
struct stru_RIPEntry * pstru_RIP_NextEntry
unsigned int n_RIP_Version
RIP_ROUTING_DATABASE * pstruRIP_RoutingTable
Routing database structure Reference : RFC 2453, November 1998, Page 8.
unsigned int nMetric
Distance to the destination
NETSIM_IPAddress szRouter
The first router along the route to the destination
struct stru_Router_RIP_Routing_database * pstru_Router_NextEntry
NETSIM_IPAddress szAddress
IP address of the destination host or destination network
NETSIM_IPAddress szSubnetmask
Subnet mask for the destination network