20ptrPIM_GROUP pim_find_group(NETSIM_ID d, NETSIM_IPAddress addr)
22 ptrPIM_GROUP gr = GET_PIM_VAR(d)->groupList;
25 if (!IP_COMPARE(gr->groupAddress, addr))
32ptrPIM_GROUP create_group(NETSIM_ID d, NETSIM_IPAddress addr, NETSIM_IPAddress RP)
34 ptrPIM_VAR pim = GET_PIM_VAR(d);
35 ptrPIM_GROUP gr = PIM_GROUP_ALLOC();
38 gr->groupId = pim->groupCount;
39 gr->groupAddress = IP_COPY(addr);
41 gr->RPId = fn_NetSim_Stack_GetDeviceId_asIP(RP,&in);
42 PIM_GROUP_ADD(&pim->groupList, gr);
47static bool is_if_already_presen(ptrPIM_GROUP g, NETSIM_ID i)
50 for (c = 0; c < g->count; c++)
56void pim_add_interface_to_group(NETSIM_ID d, NETSIM_ID i, ptrPIM_GROUP g)
58 if (is_if_already_presen(g, i))
62 g->ifid = realloc(g->ifid, (g->count + 1) *
sizeof* g->ifid);
64 g->ifid = calloc(1,
sizeof* g->ifid);
66 g->ifid[g->count] = i;