55 msg =
calloc(1,
sizeof* msg);
#define IP_COMPARE(ip1, ip2)
void pim_add_interface_to_group(NETSIM_ID d, NETSIM_ID i, ptrPIM_GROUP g)
ptrPIM_GROUP pim_find_group(NETSIM_ID d, NETSIM_IPAddress addr)
static bool amIRP(NETSIM_ID d, ptrPIM_GROUP g)
static ptrPIM_JOINMSG_GROUP pim_join_add_group_member(NETSIM_ID d, NETSIM_IPAddress groupAddr, ptrPIM_JOINPRUNE_MSG jp, UINT c)
static NetSim_PACKET * create_pim_joinprune(NETSIM_ID dev, double time, ptrPIM_GROUP group)
static void pim_join_add_group(NETSIM_ID d, NetSim_PACKET *packet, ptrPIM_GROUP group, ptrPIM_NEIGHBOR neighbor)
static bool validate_RP(NETSIM_ID d, NETSIM_IPAddress rp, NETSIM_IPAddress gaddr)
static ptrPIM_NEIGHBOR pimjoin_find_neighbor(NETSIM_ID d, NETSIM_IPAddress rp)
static ptrPIM_JOINMSG_GROUP jP_find_groups(ptrPIM_JOINPRUNE_MSG jp, NETSIM_IPAddress m, UINT *in)
static ptrPIM_JP_STATE get_Pim_jp_state(NETSIM_ID d, NETSIM_ID i, ptrPIM_GROUP gr)
void pim_send_joinprune(NETSIM_ID d, double time, ptrPIM_GROUP group)
static ptrPIM_JOINPRUNE_MSG alloc_pim_joinprune()
void set_pim_hdr(ptrPIM_HDR hdr, PIMMSG type)
NetSim_PACKET * create_pim_packet(PIMMSG type, void *opt, double time, NETSIM_ID source, NETSIM_IPAddress sourceAddrss, UINT destCount, NETSIM_ID *destList, NETSIM_IPAddress group, UINT ttl)
ptrENCODED_GROUP_ADDR encode_group_addr(NETSIM_IPAddress ip)
ptrENCODED_SOURCE_ADDR encode_source_addr(NETSIM_IPAddress ip, NETSIM_IPAddress subnet)
void * get_PIM_MSG(NetSim_PACKET *packet)
void send_pim_msg(NETSIM_ID d, double time, NetSim_PACKET *packet)
ptrENCODED_UNICAST_ADDR encode_unicast_addr(NETSIM_IPAddress ip)
struct stru_pim_join_prune_msg * ptrPIM_JOINPRUNE_MSG
ptrPIM_NEIGHBOR find_neighbor(NETSIM_ID d, NETSIM_IPAddress ip)
void print_RPT_Tree(NETSIM_ID rp, ptrPIM_GROUP group)
NETSIM_IPAddress pimroute_find_nexthop(NETSIM_ID d, NETSIM_IPAddress dest)
void pim_add_timeout_event(NETSIM_ID d, double time, IP_SUBEVENT eve, NETSIM_IPAddress group)
void print_pim_sm_log(char *format,...)
struct stru_pim_JP_state * ptrPIM_JP_STATE
#define DEVICE_NWADDRESS(DeviceId, InterfaceId)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define DEVICE_INTERFACE(DeviceId, InterfaceId)
struct stru_NetSim_Packet * pPacket
NETSIM_IPAddress szGatewayIP
NETSIM_IPAddress szDestIP
NETSIM_IPAddress szNextHopIp
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
char str_ip[_NETSIM_IP_LEN]
ptrENCODED_SOURCE_ADDR * joinedSourceAddr
ptrENCODED_GROUP_ADDR multicastAddr
NETSIM_IPAddress GroupMulticastAddr
ptrPIM_JP_STATE * jpState_G
NETSIM_IPAddress groupAddress
ptrENCODED_UNICAST_ADDR unicastAddr
ptrPIM_JOINMSG_GROUP * groups
NETSIM_IPAddress neighborAddr