86 bool isTimerReqd =
false;
89 print_igmp_log(
"\nHost %d, Time %0.0lf: Query received for group address %s.",
127 print_igmp_log(
"\nHost %d, Time %0.0lf: Sending report for group address %s.",
147 print_igmp_log(
"\nHost %d, Time %0.0lf: report received for group address %s.",
162 fnNetSimError(
"%s is called for Non-Host device %d.\n", __FUNCTION__, d);
164 print_igmp_log(
"\nHost %d, Time %0.0lf: Joining multicast group %s.",
192 print_igmp_log(
"\nHost %d, Time %0.0lf: Unsolicited report timer triggered. Sending membership report.");
void igmp_start_timer(NETSIM_ID d, IP_SUBEVENT sev, NETSIM_IPAddress addr, double time)
void print_igmp_log(char *format,...)
@ HostState_DelayingMember
#define IGMP_HOST_DB_ALLOC()
#define SET_IGMP_HOST(d, var)
void send_membership_report(NETSIM_ID d, NETSIM_IPAddress group)
#define IGMP_HOST_DB_ADD(d, db)
struct stru_host_database * ptrIGMP_HOST_DB
void igmp_host_join_group(NETSIM_ID d, NETSIM_IPAddress group)
bool host_process_report(NetSim_PACKET *packet, ptrIGMP_MSG msg, NETSIM_ID d)
static void host_join_multicast_group(NETSIM_ID d, NETSIM_IPAddress group)
bool host_process_query(NetSim_PACKET *packet, ptrIGMP_MSG msg, NETSIM_ID d)
void igmp_host_init(NETSIM_ID d)
void host_free(NETSIM_ID d)
IP_PROTOCOL_ACTION host_is_ip_present_in_db(NETSIM_ID d, NETSIM_IPAddress ip, NetSim_PACKET *packet)
ptrIGMP_HOST_DB host_get_multicast_db(NETSIM_ID d, NETSIM_IPAddress addr)
void host_handle_unsolicited_report_timer()
static ptrIGMP_HOST_DB find_or_alloc_multicast_db_host(NETSIM_ID d, NETSIM_IPAddress group)
@ EVENT_IGMP_Unsolicited_report
NETSIM_IPAddress IP_COPY(NETSIM_IPAddress ip)
#define IP_COMPARE(ip1, ip2)
#define STR_TO_IP4(ipstr)
#define fnNetSimError(x,...)
#define LIST_FREE(ls, mem)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
Structure to store the device ip details.
NETSIM_IPAddress GroupAddress
char str_ip[_NETSIM_IP_LEN]