35 memcpy(d, dd,
sizeof* d);
39 for (i = 0; i < dd->
numLSA; i++)
47 for (i = 0; i < dd->
numLSA; i++)
79 ret =
realloc(ret, (
c + 1) *
sizeof* ret);
81 ret =
calloc(1,
sizeof* ret);
166 for (i = 0; i < old->
numLSA; i++)
202 OSPF_DD_RXMT_IN_EXSTART,
236 for (i = 0; i < numLSA; i++)
422 "master / slave state of the connection");
449 "of optional OSPF capabilities than were previously "
450 "received from the neighbor(recorded in the Neighbor "
451 "Options field of the neighbor structure)");
532 goto TERMINATE_PROCESSING_DD;
542 switch (neigh->
state)
573TERMINATE_PROCESSING_DD:
#define fnNetSimError(x,...)
int isBitSet(unsigned int num, int index)
int ospf_lsa_compare(ptrOSPF_PDS ospf, ptrOSPFLSAHDR oldLS, ptrOSPFLSAHDR newLS)
void ospf_event_set_and_call(int subevent, void *otherDetails)
#define OSPF_PDS_CURRENT()
#define OSPF_IF_CURRENT()
void print_ospf_log(OSPFLOGFLAG logFlag, char *format,...)
#define OSPF_AREA_GET_ID(ospf, id)
void ospf_lsreq_insertToList(ptrOSPF_NEIGHBOR neigh, ptrOSPFLSAHDR lsHdr, double time)
ptrOSPFLSAHDR ospf_lsdb_lookup(ptrOSPF_PDS ospf, ptrOSPFAREA_DS area, LSTYPE lsType, OSPFID adveRouter, OSPFID linkStateID)
#define ospf_event_add(time, d, in, subevent, packet, eventdata)
ptrOSPF_NEIGHBOR OSPF_NEIGHBOR_FIND(ptrOSPF_IF ospf, OSPFID id)
void OSPF_DD_MSG_NEW(ptrOSPFPACKETHDR hdr)
static void set_DD_param_in_exchange(NetSim_PACKET *packet, ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
static void ospf_DD_update_dst(NetSim_PACKET *packet, ptrOSPF_NEIGHBOR neigh)
static ptrOSPFLSAHDR * ospf_DD_getTopLSAFromList(ptrOSPFLIST list, UINT16 *count, UINT maxCount)
static void send_DD_msg(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
static void ospf_process_dd_in_init_state(ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr)
void start_sending_dd_msg()
static void ospf_process_dd_in_loading_or_full_state(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr, bool isDuplicate)
static void ospf_process_DD(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr)
static void ospf_process_dd_in_exchange_state(ptrOSPF_PDS ospf, ptrOSPF_IF thisInterface, ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr, bool isDuplicate)
static bool validate_dd_msg(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh, ptrOSPFDD dd)
static void ospf_process_dd_in_exstart_state(ptrOSPF_PDS ospf, ptrOSPF_IF ospfif, ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr)
static void copy_DD_param(ptrOSPFPACKETHDR hdr, ptrOSPF_NEIGHBOR neigh)
static void set_DD_param_in_exstart(ptrOSPFPACKETHDR hdr, ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
static void add_DD_rxmt_timer_in_exstart_state(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
static bool ospf_dd_check_duplicate(ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr)
static void resend_DD_msg(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh)
static void ospf_process_dd_in_exchange_state_for_duplicate(ptrOSPF_IF ospf, ptrOSPF_NEIGHBOR neigh, ptrOSPFPACKETHDR hdr)
ptrOSPFDD OSPF_DD_MSG_COPY(ptrOSPFDD dd)
void OSPF_DD_MSG_FREE(ptrOSPFDD dd)
ptrOSPFLSAHDR OSPF_LSA_HDR_COPY(ptrOSPFLSAHDR lsa)
void OSPF_LSA_HDR_FREE(ptrOSPFLSAHDR lsa)
void * ospf_list_get_mem(ptrOSPFLIST list)
bool ospf_list_is_empty(ptrOSPFLIST list)
void OSPF_SEND_PACKET(NetSim_PACKET *packet)
void OSPF_HDR_FREE(ptrOSPFPACKETHDR hdr)
void OSPF_HDR_INCREASE_LEN(NetSim_PACKET *packet, UINT16 len)
ptrOSPFPACKETHDR OSPF_HDR_COPY(ptrOSPFPACKETHDR hdr)
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 INTERFACE_MTU_DEFAULT
#define DD_MORE_BIT_INDEX
#define DD_SET_MASTER(dd)
#define OSPF_HDR_GET_MSG(hdr)
#define OSPF_DD_MAX_LSA_COUNT()
#define OSPF_PACKET_GET_HDR(packet)
@ OSPFNEIGHSTATE_Exchange
static char strNeighborState[][50]
#define OSPFID_ISGREATER(id1, id2)
#define OSPFID_ISSMALLER(id1, id2)
enum enum_ospf_msg OSPFMSG
void add_dest_to_packet(NetSim_PACKET *packet, NETSIM_ID dest)
#define DEVICE_NWADDRESS(DeviceId, InterfaceId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Packet_FreePacket(pstruPacket)
struct stru_NetSim_Packet * pPacket
NETSIM_IPAddress szDestIP
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
char str_ip[_NETSIM_IP_LEN]
ptrOSPFLSAHDR * LSAHeader
OSPFTIME routerDeadInterval
ptrOSPFPACKETHDR lastrecvDDPacket
ptrOSPFPACKETHDR lastSentDDPacket
ptrOSPFLIST neighDBSummaryList
NETSIM_IPAddress neighborIPAddr