NetSim Source Code Help v14.4
All 13 Components
 
Loading...
Searching...
No Matches
OSPF_Enum.h
1/************************************************************************************
2* Copyright (C) 2023
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* Author: Shashi Kant Suman *
11* ---------------------------------------------------------------------------------*/
12#include "EnumString.h"
13
14BEGIN_ENUM(OSPF_Subevent)
15{
16 //Events that changes interface state
17 DECL_ENUM_ELEMENT_WITH_VAL(OSPF_InterfaceUp, APP_PROTOCOL_OSPF * 100),
18 DECL_ENUM_ELEMENT(OSPF_WAITTIMER),
19 DECL_ENUM_ELEMENT(OSPF_BACKUPSEEN),
20 DECL_ENUM_ELEMENT(OSPF_NEIGHBORCHANGE),
21 DECL_ENUM_ELEMENT(OSPF_LOOPIND),
22 DECL_ENUM_ELEMENT(OSPF_UNLOOPIND),
23 DECL_ENUM_ELEMENT(OSPF_InterfaceDown),
24
25 //Events that changes neighbor state
26 DECL_ENUM_ELEMENT(OSPF_HelloReceived),
27 DECL_ENUM_ELEMENT(OSPF_Start),
28 DECL_ENUM_ELEMENT(OSPF_1Way),
29 DECL_ENUM_ELEMENT(OSPF_2WayReceived),
30 DECL_ENUM_ELEMENT(OSPF_NegotiationDone),
31 DECL_ENUM_ELEMENT(OSPF_ExchangeDone),
32 DECL_ENUM_ELEMENT(OSPF_BadLSReq),
33 DECL_ENUM_ELEMENT(OSPF_LoadingDone),
34 DECL_ENUM_ELEMENT(OSPF_Adjok),
35 DECL_ENUM_ELEMENT(OSPF_SeqNumberMismatch),
36 DECL_ENUM_ELEMENT(OSPF_KillNbr),
37 DECL_ENUM_ELEMENT(OSPF_InactivityTimer),
38 DECL_ENUM_ELEMENT(OSPF_LLDown),
39
40 DECL_ENUM_ELEMENT(OSPF_HELLO_TIMER),
41 DECL_ENUM_ELEMENT(OSPF_DD_RXMT_IN_EXSTART),
42 DECL_ENUM_ELEMENT(OSPF_SCHEDULELSDB),
43 DECL_ENUM_ELEMENT(OSPF_FLOODTIMER),
44 DECL_ENUM_ELEMENT(OSPF_MAXAGEREMOVALTIMER),
45 DECL_ENUM_ELEMENT(OSPF_CALCULATESPF),
46 DECL_ENUM_ELEMENT(OSPF_RXMTTIMER),
47 DECL_ENUM_ELEMENT(OSPF_SENDDELAYEDACK),
48
49 DECL_ENUM_ELEMENT(OSPF_INCREMENTAGE),
50}
51#pragma warning(disable:4028)
52END_ENUM(OSPF_Subevent);
53#pragma warning(default:4028)
54
55#ifndef _OSPF_EVENT_FUN_
56#define _OSPF_EVENT_FUN_
57
58typedef void(*fnEventCallback)();
59
60static fnEventCallback fnpEventCallback[] = {ospf_handle_interfaceUp_event,
61ospf_interface_handleMultipleInterfaceEvent,
62ospf_interface_handleMultipleInterfaceEvent,
63ospf_interface_handleMultipleInterfaceEvent,
64NULL,
65NULL,
66ospf_handle_interfaceDown_event,
67ospf_neighbor_handle_helloReceived_event,
68ospf_neighbor_handle_start_event,
69ospf_neighbor_handle_1way_event,
70ospf_neighbor_handle_2wayReceived_event,
71ospf_neighbor_handle_negotiationDone_event,
72ospf_neighbor_handle_exchangeDone_event,
73NULL,
74ospf_neighbor_handle_LoadingDoneEvent,
75NULL,
76NULL,
77ospf_neighbor_handle_KillNbrEvent,
78ospf_neighbor_handle_inactivityTimer_event,
79NULL,
80ospf_handle_helloTimer_event,
81start_sending_dd_msg,
82ospf_lsa_ScheduleLSDB,
83ospf_lsa_handle_floodTimer_event,
84ospf_lsdb_handleMaxAgeRemovalTimer,
85ospf_spf_handleCalculateSPFEvent,
86ospf_lsupdate_handleRxmtTimer,
87ospf_lsack_handleDelayedAckTimer,
88ospf_LSDB_handle_IncrementAge_event};
89
90#define OSPF_CALL_SUBEVENT(subevent) fnpEventCallback[(subevent)%100]()
91#define OSPF_IS_SUBEVENT(subevent) (fnpEventCallback[(subevent)%100] != NULL)
92
93#endif //_OSPF_EVENT_FUN_