21#define OSPF_HELLO_GET_DR_FROM_IF(i) (i->designaterRouter?i->designaterRouter:NullID)
22#define OSPF_HELLO_GET_BDR_FROM_IF(i) (i->backupDesignaterRouter?i->backupDesignaterRouter:NullID)
36 memcpy(h, hello,
sizeof* hello);
55 memset(&pevent, 0,
sizeof pevent);
77 memset(&pevent, 0,
sizeof pevent);
186 fnNetSimError(
"Router %d-%d received hello packet with different net mask than configured\n",
195 fnNetSimError(
"Router %d-%d received hello packet with different hello interval than configured\n",
203 fnNetSimError(
"Router %d-%d received hello packet with different router dead interval than configured\n",
271 BOOL neighborFound =
false;
283 goto TERMINATE_PROCESSING_HELLO;
288 UINT8 nbrPrevPriority = 0;
289 bool routerIdInHelloPktBody =
false;
295 goto TERMINATE_PROCESSING_HELLO;
297 if (tempNeighborInfo)
298 neighborFound =
true;
343 routerIdInHelloPktBody =
true;
349 goto TERMINATE_PROCESSING_HELLO;
431TERMINATE_PROCESSING_HELLO:
NETSIM_IPAddress IP_COPY(NETSIM_IPAddress ip)
#define IP_COMPARE(ip1, ip2)
#define fnNetSimError(x,...)
#define OSPF_BROADCAST_JITTER
void ospf_event_set_and_call(int subevent, void *otherDetails)
#define OSPF_PDS_CURRENT()
void ospf_neighbor_add(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
#define OSPF_IF_CURRENT()
ptrOSPF_NEIGHBOR ospf_neighbor_new(NETSIM_IPAddress ip, OSPFID rid)
void print_ospf_log(OSPFLOGFLAG logFlag, char *format,...)
#define OSPF_AREA_GET_ID(ospf, id)
NETSIM_IPAddress AllSPFRouters
#define ospf_event_add(time, d, in, subevent, packet, eventdata)
static bool isOSPFHelloDebug
static void add_next_hello_timer()
void start_interval_hello_timer()
static bool ospf_hello_findNeighbor(ptrOSPF_IF thisInterface, NETSIM_IPAddress srcAddr, OSPFID rid, ptrOSPF_NEIGHBOR *neighbor)
void ospf_process_hello()
static bool is_ip_present_in_hello(ptrOSPFHELLO hello, NETSIM_IPAddress ip)
void OSPF_HELLO_MSG_NEW(ptrOSPFPACKETHDR hdr)
#define OSPF_HELLO_GET_BDR_FROM_IF(i)
static UINT16 add_neighborToHello(ptrOSPFHELLO hello, ptrOSPF_IF ospf)
void ospf_handle_helloTimer_event()
static bool validate_hello_msg()
static void set_hello_param(NetSim_PACKET *packet, ptrOSPFPACKETHDR hdr)
ptrOSPFHELLO OSPF_HELLO_MSG_COPY(ptrOSPFHELLO hello)
#define OSPF_HELLO_GET_DR_FROM_IF(i)
static void ospf_hello_update_dst(NetSim_PACKET *packet)
void OSPF_HELLO_MSG_FREE(ptrOSPFHELLO hello)
void OSPF_SEND_PACKET(NetSim_PACKET *packet)
void OSPF_HDR_INCREASE_LEN(NetSim_PACKET *packet, UINT16 len)
void OSPF_HDR_SET_MSG(ptrOSPFPACKETHDR hdr, OSPFMSG type, void *msg, UINT16 len)
NetSim_PACKET * OSPF_PACKET_NEW(double time, OSPFMSG type, NETSIM_ID d, NETSIM_ID in)
#define OSPF_HDR_GET_MSG(hdr)
#define OSPFHELLO_LEN_FIXED
#define OSPF_PACKET_GET_HDR(packet)
#define OSPFTIME_TO_UINT16(time)
enum enum_ospf_msg OSPFMSG
void add_dest_to_packet(NetSim_PACKET *packet, NETSIM_ID dest)
#define DEVICE_TYPE(DeviceId)
#define DEVICE_NWADDRESS(DeviceId, InterfaceId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Packet_FreePacket(pstruPacket)
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
NETSIM_IPAddress szDestIP
NETSIM_IPAddress szNextHopIp
NETSIM_IPAddress szSourceIP
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
char str_ip[_NETSIM_IP_LEN]
NETSIM_IPAddress NetworkMask
NETSIM_IPAddress DesignatedRouter
NETSIM_IPAddress * Neighbor
NETSIM_IPAddress BackupDesignatedRouter
OSPFTIME routerDeadInterval
ptrOSPF_NEIGHBOR * neighborRouterList
NETSIM_IPAddress IPIfMask
OSPFID neighborDesignateBackupRouter
OSPFID neighborDesignateRouter
NETSIM_IPAddress neighborIPAddr