NetSim Source Code Help
Loading...
Searching...
No Matches
OSPF.h
Go to the documentation of this file.
1/************************************************************************************
2* Copyright (C) 2020 *
3* TETCOS, Bangalore. India *
4* *
5* Tetcos owns the intellectual property rights in the Product and its content. *
6* The copying, redistribution, reselling or publication of any or all of the *
7* Product or its content without express prior written consent of Tetcos is *
8* prohibited. Ownership and / or any other right relating to the software and all *
9* intellectual property rights therein shall remain at all times with Tetcos. *
10* *
11* Author: Shashi Kant Suman *
12* *
13* ---------------------------------------------------------------------------------*/
14
15#ifndef _NETSIM_OSPF_H_
16#define _NETSIM_OSPF_H_
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#pragma comment(lib,"NetworkStack.lib")
22#pragma comment(lib,"Metrics.lib")
23
24#include "OSPF_Typedef.h"
25
26 //DEBUG Flag
27 static bool isOSPFHelloDebug = false;
28 static bool isOSPFSPFDebug = false;
29 typedef enum
30 {
34
35//Useful macro
36#define GET_LOWER_IP(ip1,ip2) ((ip1) ? ((ip2) ? ((ip1)->int_ip[0] < (ip2)->int_ip[0] ? (ip1) : (ip2)) : (ip1)) : (ip2));
37#define DEVICE_CURR_IP (DEVICE_NWADDRESS(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId))
38#define DEVICE_CURR_MASK (DEVICE_SUBNETMASK(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId))
39
40#define OSPF_CURR_TIME() (pstruEventDetails->dEventTime)
41
42#define strAllSPFRouters "224.0.0.5"
43#define strAllDRouters "224.0.0.6"
44#define strNULLIP "0.0.0.0"
45#define strInvalidAreaId "255.255.255.254" //0xFFFFFFFE
46#define strSingleAreaId "255.255.255.255" //0xFFFFFFFF
47#define strBackboneAreaId "0.0.0.0" //0x00
54#define ANY_DEST (GET_BROADCAST_IP(4))
55
56#define OSPF_BROADCAST_JITTER (0*MILLISECOND)
57#define OSPF_DO_NOT_AGE (0x8000)
58#define OSPF_LSA_MAX_AGE_DIFF (15 * MINUTE)
59
61 {
67
69 {
73
74 typedef struct stru_address_range
75 {
80
81 typedef struct stru_area_ds
82 {
88
95
98
102 NETSIM_ID in,
103 OSPFID areaId,
104 NETSIM_IPAddress interfaceIP); //Pass only one
105#define OSPF_AREA_GET_IN(ospf,in) (OSPF_AREA_GET((ospf),(in),NULL,NULL))
106#define OSPF_AREA_GET_ID(ospf,id) (OSPF_AREA_GET((ospf),0,(id),NULL))
107#define OSPF_AREA_GET_IP(ospf,ip) (OSPF_AREA_GET((ospf),0,NULL,(ip)))
108 void OSPF_AREA_SET(ptrOSPF_PDS ospf,
109 ptrOSPFAREA_DS area);
110
112 {
124
128
130
131 double SPFTimer;
135 void** ipTable;
136
138
139 // Enabling this might reduce some duplicate LSA transmission in a network.
140 // When enable this, a node wait for time [0, OSPFv2_FLOOD_TIMER] before
141 // sending Update in response to a Request. Thus at synchronization time
142 // a node send less number of Update packet in response to several duplicate
143 // Request from different node in the network. This intern also reduce
144 // number of Ack packet transmitted in the network.
146
148 };
149#define OSPF_PDS_SET(d,ospf) (fn_NetSim_Stack_SetAppProtocolData(d,APP_PROTOCOL_OSPF,ospf))
150#define OSPF_PDS_GET(d) ((ptrOSPF_PDS)(DEVICE_APPVAR(d,APP_PROTOCOL_OSPF)))
151#define OSPF_PDS_CURRENT() (OSPF_PDS_GET(pstruEventDetails->nDeviceId))
152
154 {
158
160 UINT nwLSASeqNum; // For NWLSA
161 //For summary LSA
166
167 //Function prototype
168 //Hello
169 void ospf_process_hello();
172
173 //DD
175 void ospf_handle_DD();
176
177 //OSPF Interface
179#define OSPF_IF_CURRENT() (OSPF_IF_GET(OSPF_PDS_CURRENT(), pstruEventDetails->nInterfaceId))
183
184 //OSPF Neighbor
190 ptrOSPFLSAHDR lsa,
191 double time);
193 ptrOSPFLSAHDR lsa);
196 NETSIM_IPAddress neighIPaddr);
198 OSPFID rid);
200
201 // OSPF Neighbor event handler
211
212 //OSPF Area
215
216 // LSA Header
218 void* lsa,
219 UINT16 len);
221 ptrOSPFAREA_DS area,
222 ptrOSPFLSAHDR lsa,
223 ptrOSPFLSAHDR old,
224 LSTYPE lstype);
225
226 //LSA
227 void ospf_lsa_print(char* logid,
228 ptrOSPFLSAHDR LSHeader,
229 char* msg);
230 void ospf_lsa_printList(char* logid,
231 ptrOSPFLIST list,
232 char* name);
234 ptrOSPFAREA_DS area,
235 bool isFlush);
237 ptrOSPF_IF thisInterface,
238 ptrOSPFAREA_DS area,
239 bool isFlush);
241 ptrOSPF_IF thisInterface,
242 ptrOSPFAREA_DS area,
243 NETSIM_IPAddress destAddr,
244 NETSIM_IPAddress destMask,
245 OSPFDESTTYPE destType,
246 bool isFlush);
248 ptrOSPF_IF thisInterface,
249 ptrOSPFAREA_DS area,
250 ptrOSPFLSAHDR lsa);
254 UINT16 routerLSAAge);
256 UINT16* routerLSAAge,
257 UINT16 newLSAAge);
259 ptrOSPFLSAHDR oldLS,
260 ptrOSPFLSAHDR newLS);
262 ptrOSPFLSAHDR oldLS,
263 ptrOSPFLSAHDR newLS);
266 ptrOSPFLSAHDR lsa);
268 ptrOSPF_IF ospf,
269 ptrOSPFLSAHDR lsa);
271 OSPFID area,
272 ptrOSPFLSAHDR lsa,
273 NETSIM_IPAddress srcAddr,
274 NETSIM_ID in);
275 void ospf_lsa_flush(ptrOSPF_PDS ospf,
276 ptrOSPFAREA_DS area,
277 ptrOSPFLSAHDR lsa);
279 ptrOSPFLSAHDR newLSA,
280 ptrOSPFLSAHDR oldLSA);
282 ptrOSPFLSAHDR LSA,
283 ptrOSPFLSAHDR newLSA);
285 ptrOSPFLSAHDR lsa);
287 UINT16 routerLSAAge);
289 OSPFID areaId,
290 ptrOSPFLSAHDR lsa);
292 ptrOSPFLSAHDR wlsa,
293 ptrOSPFLSAHDR vlsa);
295 OSPFID rid,
296 OSPFID lid);
297
298 //RLSA
299 void ospf_lsa_printRLSA(char* logid,
300 ptrOSPFRLSA rlsa);
304 bool isFlush);
306 ptrOSPFLSAHDR oldLSA);
308 ptrOSPFLSAHDR wlsa,
309 ptrOSPFLSAHDR vlsa);
310
311 //LSDB
313 OSPFID adverRouter,
314 OSPFID linkStateId);
316 OSPFID linkStateId);
318 ptrOSPFAREA_DS area,
319 LSTYPE lsType,
320 OSPFID adveRouter,
321 OSPFID linkStateID);
323 OSPFID areaId,
324 ptrOSPFLSAHDR lsa,
325 ptrOSPFLIST list);
327 ptrOSPF_IF thisInterface,
328 ptrOSPFLSAHDR lsa,
329 ptrOSPFAREA_DS thisArea,
330 NETSIM_IPAddress srcAddr);
334 ptrOSPFAREA_DS area,
335 ptrOSPFLSAHDR lsa);
337
338 //LSU
340 void ospf_lsupdate_send();
342 ptrOSPF_IF thisInterface);
344
345 //LSAACK
347 ptrOSPF_IF thisInterface,
348 ptrOSPFLSAHDR lsa);
350 NETSIM_ID interfaceId,
351 ptrARRAYLIST ackList,
352 NETSIM_IPAddress nbrAddr);
354 void ospf_handle_LSAck();
355
356 //LSREQ
359 ptrOSPFLSAHDR lsa);
361 ptrOSPFLSAHDR lsHdr,
362 double time);
364 ptrOSPFLSAHDR lsa);
367 NETSIM_ID interfaceId,
368 NETSIM_IPAddress nbrAddr,
369 bool retx);
371 ptrOSPF_IF thisInterface,
372 ptrOSPF_NEIGHBOR neigh,
373 UINT seqNum);
375
376 //SPF
379
380 //DR
382 ptrOSPF_IF thisInterface);
383
384 //OSPF common function
387 NETSIM_IPAddress addr);
388
389 //OSPF utility function
391 char* form_dlogId(char* name,
392 NETSIM_ID d);
393 bool isOSPFSPFLog();
394 bool isOSPFHelloLog();
395 void print_ospf_log(OSPFLOGFLAG logFlag, char* format, ...);
396 void print_ospf_Dlog(char* id, char* format, ...);
397 void init_ospf_dlog(char* id,
398 char* fileName);
399 bool ospf_dlog_isEnable(char* id);
400#define ospf_event_add(time,d,in,subevent,packet,eventdata) ospf_event_add_dbg(time,d,in,subevent,packet,eventdata,__LINE__,__FILE__)
402 NETSIM_ID d,
403 NETSIM_ID in,
404 int subevent,
405 NetSim_PACKET* packet,
406 void* eventData,
407 int line,
408 char* file);
409 void ospf_event_set(int subevent);
410 void ospf_event_set_and_call(int subevent, void* otherDetails);
411
412#pragma message(__LOC__"Remove after link failure bug")
413 //Added for cost calculation
414 typedef struct stru_OSPF_PATH {
419
420 typedef struct stru_OSPF_COST_LIST {
423 double cost;
427
429
430 bool get_ospf_log_status();
431#ifdef __cplusplus
432}
433#endif
434#endif //_NETSIM_OSPF_H_
unsigned int NETSIM_ID
Definition: Animation.h:45
#define UINT64
Definition: Linux.h:37
#define UINT
Definition: Linux.h:38
#define UINT16
Definition: Linux.h:33
#define UINT8
Definition: Linux.h:31
void ospf_lsreq_retransmit(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPF_NEIGHBOR neigh, UINT seqNum)
Definition: OSPF_LSREQ.c:374
void ospf_lsupdate_send()
Definition: OSPF_LSUPDATE.c:96
NETSIM_IPAddress AllDRouters
Definition: OSPF.h:49
bool ospf_lsreq_isRequestedLSAReceived(ptrOSPF_NEIGHBOR neigh)
Definition: OSPF_LSREQ.c:133
struct stru_event_details_lsdb EVENTLSDB
bool ospf_rlsa_hasLink(ptrOSPF_PDS ospf, ptrOSPFLSAHDR wlsa, ptrOSPFLSAHDR vlsa)
Definition: OSPF_RLSA.c:375
void start_interval_hello_timer()
Definition: OSPF_Hello.c:50
ptrOSPFLSAHDR ospf_lsa_find_old_lsa(ptrOSPFLIST list, OSPFID rid, OSPFID lid)
Definition: OSPF_LSA.c:258
UINT64 ospf_event_add_dbg(double time, NETSIM_ID d, NETSIM_ID in, int subevent, NetSim_PACKET *packet, void *eventData, int line, char *file)
int ospf_lsa_compare(ptrOSPF_PDS ospf, ptrOSPFLSAHDR oldLS, ptrOSPFLSAHDR newLS)
Definition: OSPF_LSA.c:403
bool ospf_lsa_flood(ptrOSPF_PDS pds, OSPFID area, ptrOSPFLSAHDR lsa, NETSIM_IPAddress srcAddr, NETSIM_ID in)
Definition: OSPF_LSA.c:474
void ospf_neighbor_handle_KillNbrEvent()
void ospf_lsdb_removeLSA(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSDB.c:420
void ospf_neighbor_handle_1way_event()
bool ospf_is_dr_router_fulladjacentwithAnother(ptrOSPF_IF ospf)
void ospf_neighbor_handle_exchangeDone_event()
ptrOSPFLSAHDR ospf_lsdb_lookup_lsaListByID(ptrOSPFLIST list, OSPFID linkStateId)
Definition: OSPF_LSDB.c:42
void ospf_process_hello()
Definition: OSPF_Hello.c:258
struct stru_event_details_lsdb * ptrEVENTLSDB
ptrOSPF_IF OSPF_IF_GET(ptrOSPF_PDS ospf, NETSIM_ID ifId)
bool ospf_lsdb_update(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPFLSAHDR lsa, ptrOSPFAREA_DS thisArea, NETSIM_IPAddress srcAddr)
Definition: OSPF_LSDB.c:209
void ospf_event_set_and_call(int subevent, void *otherDetails)
bool ospf_lsa_hasLink(ptrOSPF_PDS ospf, ptrOSPFLSAHDR wlsa, ptrOSPFLSAHDR vlsa)
Definition: OSPF_LSA.c:811
void ospf_lsa_scheduleSummaryLSA(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPFAREA_DS area, NETSIM_IPAddress destAddr, NETSIM_IPAddress destMask, OSPFDESTTYPE destType, bool isFlush)
Definition: OSPF_LSA.c:167
ptrOSPFLSAHDR ospf_lsReq_searchFromList(ptrOSPF_NEIGHBOR neigh, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSREQ.c:110
bool isOSPFSPFLog()
Definition: OSPF.c:172
ptrOSPF_NEIGHBOR OSPF_NEIGHBOR_FIND_BY_IP(ptrOSPF_IF thisInterface, NETSIM_IPAddress ip)
struct stru_OSPF_COST_LIST OSPF_COST_LIST
void ospf_spf_scheduleCalculation(ptrOSPF_PDS ospf)
Definition: OSPF_SPF.c:80
NETSIM_ID ospf_getInterfaceIdForNextHop(NETSIM_ID d, NETSIM_IPAddress addr)
void ospf_neighbor_handle_inactivityTimer_event()
struct stru_OSPF_PATH OSPF_PATH
void ospf_lsaAck_sendDelayedAck(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSAACK.c:105
void ospf_neighbor_handle_helloReceived_event()
OSPFIFSTATE ospf_DR_election(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface)
Definition: OSPF_DR.c:190
void ospf_lsa_printRLSA(char *logid, ptrOSPFRLSA rlsa)
Definition: OSPF_RLSA.c:24
void ospf_neighbor_handle_start_event()
OSPFID backboneAreaId
Definition: OSPF.h:52
void ospf_lsu_sendLSUpdateToNeighbor(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface)
bool ospf_lsa_isSelfOriginated(ptrOSPF_PDS ospf, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSA.c:734
void ospf_neighbor_add(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
enum_address_range_status
Definition: OSPF.h:69
@ ADDRRNSTATUS_DONOTADVERTISE
Definition: OSPF.h:71
@ ADDRRNSTATUS_ADVERTISE
Definition: OSPF.h:70
void ospf_handle_interfaceDown_event()
bool ospf_lsa_is_content_changed(ptrOSPF_PDS ospf, ptrOSPFLSAHDR newLSA, ptrOSPFLSAHDR oldLSA)
Definition: OSPF_LSA.c:617
bool ospf_dlog_isEnable(char *id)
void ospf_lsdb_scheduleMaxAgeRemovalTimer(ptrOSPF_PDS ospf)
Definition: OSPF_LSDB.c:322
ptrOSPF_NEIGHBOR ospf_neighbor_new(NETSIM_IPAddress ip, OSPFID rid)
void ospf_handle_LSAck()
Definition: OSPF_LSAACK.c:217
static bool isOSPFSPFDebug
Definition: OSPF.h:28
void ospf_area_handleABRTask(ptrOSPF_PDS ospf)
Definition: OSPF_Area.c:126
struct stru_address_range * ptrADDR_RN
bool Ospf_rlsa_getASBRouter(UINT8 VEB)
Definition: OSPF_RLSA.c:403
void ospf_lsdb_handleMaxAgeRemovalTimer()
Definition: OSPF_LSDB.c:454
void start_sending_dd_msg()
Definition: OSPF_DD.c:207
void print_ospf_log(OSPFLOGFLAG logFlag, char *format,...)
void ospf_lsa_printList(char *logid, ptrOSPFLIST list, char *name)
Definition: OSPF_LSA.c:61
void ospf_lsreq_send(ptrOSPF_PDS ospf, NETSIM_ID interfaceId, NETSIM_IPAddress nbrAddr, bool retx)
Definition: OSPF_LSREQ.c:189
void ospf_lsreq_insertToList(ptrOSPF_NEIGHBOR neigh, ptrOSPFLSAHDR lsHdr, double time)
Definition: OSPF_LSREQ.c:74
void ospf_neighbor_handle_negotiationDone_event()
bool ospf_lsa_compareToListMem(ptrOSPF_PDS ospf, ptrOSPFLSAHDR oldLS, ptrOSPFLSAHDR newLS)
Definition: OSPF_LSA.c:437
bool ospf_isMyAddr(NETSIM_ID d, NETSIM_IPAddress addr)
ptrOSPF_COST_LIST fn_NetSim_App_Routing_Init(NETSIM_ID d, ptrOSPF_COST_LIST list)
bool ospf_neighbor_isAnyNeighborInExchangeOrLoadingState(ptrOSPF_PDS ospf)
UINT16 ospf_lsa_maskDoNotAge(ptrOSPF_PDS ospf, UINT16 routerLSAAge)
Definition: OSPF_LSA.c:370
ptrOSPFLSAHDR ospf_neighbor_searchSendList(ptrOSPFLIST list, ptrOSPFLSAHDR lsa)
bool ospf_lsa_update_lsahdr(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area, ptrOSPFLSAHDR lsa, ptrOSPFLSAHDR old, LSTYPE lstype)
Definition: OSPF_LSA.c:277
OSPFLOGFLAG
Definition: OSPF.h:30
@ OSPF_HELLO_LOG
Definition: OSPF.h:32
@ OSPF_LOG
Definition: OSPF.h:31
NETSIM_IPAddress AllSPFRouters
Definition: OSPF.h:48
enum_ospf_router_type
Definition: OSPF.h:61
@ OSPFRTYPE_ASBOUNDARY
Definition: OSPF.h:65
@ OSPFRTYPE_INTERNAL
Definition: OSPF.h:62
@ OSPFRTYPE_ABR
Definition: OSPF.h:63
@ OSPFRTYPE_BACKBONE
Definition: OSPF.h:64
void ospf_handle_LSRequest()
Definition: OSPF_LSREQ.c:269
void ospf_lsa_assignNewLSAIntoLSOrigin(ptrOSPF_PDS pds, ptrOSPFLSAHDR LSA, ptrOSPFLSAHDR newLSA)
Definition: OSPF_LSA.c:639
enum enum_ospf_router_type OSPFRTYPE
struct stru_OSPF_COST_LIST * ptrOSPF_COST_LIST
ptrOSPFLSAHDR ospf_lsdb_lookup(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area, LSTYPE lsType, OSPFID adveRouter, OSPFID linkStateID)
Definition: OSPF_LSDB.c:59
ptrOSPFLIST ospf_lsreq_initList()
Definition: OSPF_LSREQ.c:69
void ospf_lsa_flush(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSA.c:745
OSPFID NullID
Definition: OSPF.h:50
void ospf_lsa_schedule(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPFAREA_DS area, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSA.c:759
void init_ospf_dlog(char *id, char *fileName)
struct stru_address_range ADDR_RN
void ospf_lsa_print(char *logid, ptrOSPFLSAHDR LSHeader, char *msg)
Definition: OSPF_LSA.c:38
struct stru_area_ds * ptrOSPFAREA_DS
void ospf_lsa_schedule_routerLSA(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area, bool isFlush)
Definition: OSPF_LSA.c:81
void ospf_lsa_ScheduleLSDB()
Definition: OSPF_LSA.c:699
void ospf_handle_DD()
Definition: OSPF_DD.c:510
bool ospf_lsdb_install(ptrOSPF_PDS ospf, OSPFID areaId, ptrOSPFLSAHDR lsa, ptrOSPFLIST list)
Definition: OSPF_LSDB.c:96
bool ospf_lsa_checkForDoNotAge(ptrOSPF_PDS ospf, UINT16 routerLSAAge)
Definition: OSPF_LSA.c:354
void ospf_handle_helloTimer_event()
Definition: OSPF_Hello.c:157
void ospf_lsa_handle_floodTimer_event()
Definition: OSPF_LSA.c:716
void ospf_lsack_handleDelayedAckTimer()
Definition: OSPF_LSAACK.c:158
void ospf_lsa_queueToFlood(ptrOSPF_PDS pds, ptrOSPF_IF ospf, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSA.c:449
int ospf_lsa_isMoreRecent(ptrOSPF_PDS ospf, ptrOSPFLSAHDR newLSA, ptrOSPFLSAHDR oldLSA)
Definition: OSPF_LSA.c:725
struct stru_area_ds OSPFAREA_DS
bool ospf_is_router_fullAdjacentWithDR(ptrOSPF_IF ospf)
char * form_dlogId(char *name, NETSIM_ID d)
Definition: OSPF.c:178
NETSIM_ID ospf_neighbor_getInterfaceIdforThisNeighbor(ptrOSPF_PDS ospf, NETSIM_IPAddress neighIPaddr)
void ospf_lsaAck_sendDirectAck(ptrOSPF_PDS ospf, NETSIM_ID interfaceId, ptrARRAYLIST ackList, NETSIM_IPAddress nbrAddr)
Definition: OSPF_LSAACK.c:125
OSPFID invalidAreaId
Definition: OSPF.h:51
OSPFID singleAreaId
Definition: OSPF.h:53
void ospf_lsreq_removeFromReqList(ptrOSPFLIST list, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSREQ.c:90
void ospf_event_set(int subevent)
void ospf_handle_LSUPDATE()
bool Ospf_rlsa_getABRouter(UINT8 VEB)
Definition: OSPF_RLSA.c:416
void ospf_LSDB_handle_IncrementAge_event()
Definition: OSPF_LSDB.c:688
void ospf_lsupdate_handleRxmtTimer()
void ospf_rlsa_originateRouterLSA(ptrOSPFAREA_DS area, bool isFlush)
Definition: OSPF_RLSA.c:429
bool isOSPFConfigured(NETSIM_ID d)
void ospf_spf_handleCalculateSPFEvent()
Definition: OSPF_SPF.c:851
void ospf_neighbor_insertToSendList(ptrOSPFLIST list, ptrOSPFLSAHDR lsa, double time)
void ospf_lsahdr_add_lsa(ptrOSPFLSAHDR lhdr, void *lsa, UINT16 len)
Definition: OSPF_LSA.c:308
bool get_ospf_log_status()
Definition: OSPF.c:206
bool ospf_lsa_hasMaxAge(ptrOSPF_PDS ospf, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSA.c:654
struct stru_OSPF_PATH * ptrOSPF_PATH
void ospf_area_init(NETSIM_ID d, NETSIM_ID in)
Definition: OSPF_Area.c:101
void ospf_lsa_scheduleNWLSA(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPFAREA_DS area, bool isFlush)
Definition: OSPF_LSA.c:114
void ospf_neighbor_handle_2wayReceived_event()
void print_ospf_Dlog(char *id, char *format,...)
bool isOSPFHelloLog()
Definition: OSPF.c:167
static bool isOSPFHelloDebug
Definition: OSPF.h:27
void ospf_lsa_addToMaxAgeLSAList(ptrOSPF_PDS ospf, OSPFID areaId, ptrOSPFLSAHDR lsa)
Definition: OSPF_LSA.c:681
void ospf_lsa_assignNewLSAge(ptrOSPF_PDS ospf, UINT16 *routerLSAAge, UINT16 newLSAAge)
Definition: OSPF_LSA.c:379
void OSPF_AREA_SET(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area)
Definition: OSPF_Area.c:43
void ospf_handle_interfaceUp_event()
void ospf_neighbor_handle_LoadingDoneEvent()
ptrOSPFAREA_DS OSPF_AREA_GET(ptrOSPF_PDS ospf, NETSIM_ID in, OSPFID areaId, NETSIM_IPAddress interfaceIP)
Definition: OSPF_Area.c:21
ptrOSPFLSAHDR ospf_lsdb_lookup_lsaList(ptrOSPFLIST list, OSPFID adverRouter, OSPFID linkStateId)
Definition: OSPF_LSDB.c:23
enum enum_address_range_status ADDR_RN_STATUS
bool ospf_rlsa_isBodyChanged(ptrOSPFLSAHDR newLSA, ptrOSPFLSAHDR oldLSA)
Definition: OSPF_RLSA.c:323
ptrOSPF_NEIGHBOR OSPF_NEIGHBOR_FIND(ptrOSPF_IF ospf, OSPFID id)
Definition: OSPF_Neighbor.c:93
void ospf_interface_handleMultipleInterfaceEvent()
enum enum_ls_type LSTYPE
Definition: OSPF_Typedef.h:36
void * ptrOSPFLIST
Definition: OSPF_Typedef.h:50
enum enum_if_state OSPFIFSTATE
Definition: OSPF_Typedef.h:37
enum enum_ospf_dest_type OSPFDESTTYPE
Definition: OSPF_Typedef.h:35
struct stru_OSPF_COST_LIST * next
Definition: OSPF.h:425
ptrOSPF_PATH path
Definition: OSPF.h:424
NETSIM_ID src_id
Definition: OSPF.h:421
NETSIM_ID dest_id
Definition: OSPF.h:422
struct stru_OSPF_PATH * next
Definition: OSPF.h:417
NETSIM_ID in
Definition: OSPF.h:416
NETSIM_ID d
Definition: OSPF.h:415
NETSIM_IPAddress address
Definition: OSPF.h:76
NETSIM_IPAddress mask
Definition: OSPF.h:77
ADDR_RN_STATUS status
Definition: OSPF.h:78
NETSIM_ID * assocRouterInterfaceId
Definition: OSPF.h:87
ptrOSPFLIST shortestPathList
Definition: OSPF.h:99
UINT assocInterfaceCount
Definition: OSPF.h:85
double lastLSAOriginateTime
Definition: OSPF.h:97
bool extRoutingCapability
Definition: OSPF.h:94
bool isRouterLSTimer
Definition: OSPF.h:96
ptrOSPFLIST addressRangeList
Definition: OSPF.h:84
ptrOSPFLIST routerLSAList
Definition: OSPF.h:89
ptrOSPFLIST routerSummaryLSAList
Definition: OSPF.h:91
ptrOSPFLIST nwLSAList
Definition: OSPF.h:90
OSPFID areaId
Definition: OSPF.h:83
ptrOSPFLIST maxAgeList
Definition: OSPF.h:93
ptrOSPFLIST nwSummaryLSAList
Definition: OSPF.h:92
NETSIM_IPAddress * assocRouterInterface
Definition: OSPF.h:86
OSPFDESTTYPE destType
Definition: OSPF.h:164
NETSIM_IPAddress destMask
Definition: OSPF.h:163
ptrOSPF_NEIGHBOR neigh
Definition: OSPF.h:159
ptrOSPFAREA_DS area
Definition: OSPF.h:156
NETSIM_IPAddress destAddr
Definition: OSPF.h:162
UINT16 LSAMaxAge
Definition: OSPF.h:125
double incrementTime
Definition: OSPF.h:147
OSPFRTYPE routerType
Definition: OSPF.h:115
double minLSInterval
Definition: OSPF.h:120
ptrOSPF_IF * ospfIf
Definition: OSPF.h:118
bool isAdvertSelfIntf
Definition: OSPF.h:123
void ** ipTable
Definition: OSPF.h:135
bool supportDC
Definition: OSPF.h:121
ptrOSPFAREA_DS * areaDS
Definition: OSPF.h:119
double LSRefreshTime
Definition: OSPF.h:129
double SPFTimer
Definition: OSPF.h:131
bool isSendDelayedUpdate
Definition: OSPF.h:145
double maxAgeRemovalTime
Definition: OSPF.h:127
UINT areaCount
Definition: OSPF.h:116
OSPFID routerId
Definition: OSPF.h:114
UINT ifCount
Definition: OSPF.h:117
bool isPartitionedIntoArea
Definition: OSPF.h:137
ptrOSPFROUTINGTABLE routingTable
Definition: OSPF.h:133
bool isMaxAgeRemovalTimerSet
Definition: OSPF.h:126
NETSIM_ID myId
Definition: OSPF.h:113
double spfCalcDelay
Definition: OSPF.h:132
double dFloodTimer
Definition: OSPF.h:122
UINT ipTableCount
Definition: OSPF.h:134