Lines Matching refs:gp

42 	igmp_group_t *gp;
51 for(gp=ifp->igmpi_groups;gp;gp=(igmp_group_t*)gp->igmpg_next){
52 printf("%32s %11s\n",inet_ntoa(gp->igmpg_addr),(gp->igmpg_fmode == IGMP_FMODE_INCLUDE)? "INCLUDE":"EXCLUDE");
53 if (gp->igmpg_sources != NULL)
54 for (src=gp->igmpg_sources;src;src=(igmp_src_t *)src->igmps_next)
56 if (gp->igmpg_members != NULL)
57 for (rep=gp->igmpg_members;rep;rep=(igmp_rep_t *)rep->igmpr_next)
58 /*if (gp->igmpg_sources != NULL)
116 igmp_group_t *gp,
122 assert (gp != NULL);
123 if (rep != gp->igmpg_members){
124 for (re=gp->igmpg_members;(igmp_rep_t *)re->igmpr_next != rep;re=(igmp_rep_t *)re->igmpr_next);
129 re=gp->igmpg_members;
130 gp->igmpg_members = (igmp_rep_t *)re->igmpr_next;
155 igmp_group_t *gp,
160 assert(gp != NULL);
161 for (rep = (igmp_rep_t *) gp->igmpg_members; rep; rep = (igmp_rep_t *)rep->igmpr_next)
174 igmp_group_t *gp,
179 assert(gp != NULL);
181 if (rep = igmp_group_rep_lookup(gp, srcaddr))
185 rep->igmpr_next = (igmp_rep_t *)gp->igmpg_members;
186 gp->igmpg_members = rep;
194 igmp_group_t *gp,
199 assert(gp != NULL);
201 if (!(rep = igmp_group_rep_lookup(gp, srcaddr)))
204 igmp_rep_cleanup(gp,rep);
239 igmp_group_t *gp,
245 assert (gp != NULL);
246 if (src != gp->igmpg_sources){
247 for (sr=gp->igmpg_sources;(igmp_src_t *)sr->igmps_next != src;sr=(igmp_src_t *)sr->igmps_next);
252 sr=gp->igmpg_sources;
253 gp->igmpg_sources = (igmp_src_t *)sr->igmps_next;
278 igmp_group_t *gp,
283 if (gp != NULL){
284 for (src = gp->igmpg_sources; src != NULL; src = (igmp_src_t *)src->igmps_next){
299 igmp_group_t *gp,
304 assert(gp != NULL);
306 if (src = igmp_group_src_lookup(gp, srcaddr))
310 src->igmps_next = (igmp_src_t *)gp->igmpg_sources;
311 gp->igmpg_sources = src;
333 igmp_group_t* gp;
335 if (gp = (igmp_group_t*) malloc(sizeof(*gp))) {
336 gp->igmpg_addr.s_addr = groupaddr.s_addr;
337 gp->igmpg_fmode = IGMP_FMODE_INCLUDE;
338 gp->igmpg_version = IGMP_VERSION_3;/*default version is V3*/
339 gp->igmpg_timer = 0;
340 gp->igmpg_sources = NULL;
341 gp->igmpg_members = NULL;
343 gp->igmpg_flags = GROUP_INIT;
344 gp->igmpg_type= MODE_IS_INCLUDE;
346 gp->igmpg_next = NULL;
347 return gp;
360 igmp_group_t* gp)
365 inet_ntoa(gp->igmpg_addr),
366 (gp->igmpg_fmode == IGMP_FMODE_EXCLUDE) ? "exclude" : "include",
367 gp->igmpg_timer);
368 if (gp->igmpg_sources != NULL)
369 for (src=gp->igmpg_sources;src;src=(igmp_src_t *)src->igmps_next)
371 if (gp->igmpg_members != NULL)
372 for (rep=gp->igmpg_members;rep;rep=(igmp_rep_t *)rep->igmpr_next)
528 igmp_group_t* gp,*gp2;
534 gp=ifp->igmpi_groups;
536 while(gp != NULL){
537 gp2=gp;
538 gp=gp->igmpg_next;
564 igmp_group_t* gp;
571 if (gp = igmp_interface_group_lookup(ifp, groupaddr))
572 return gp;
574 if (gp = igmp_group_create(groupaddr)) {
575 gp->igmpg_next = ifp->igmpi_groups;
576 ifp->igmpi_groups = gp;
592 return gp;
605 igmp_group_t* gp;
607 for (gp = ifp->igmpi_groups; gp; gp = gp->igmpg_next)
608 if (gp->igmpg_addr.s_addr == groupaddr.s_addr)
609 return gp;
627 igmp_group_t* gp;
640 if ((gp = igmp_interface_group_add(router,ifp, report->igmpr_group)) == NULL)
644 rep=igmp_group_rep_add(gp,src);
647 igmp_group_handle_isex(router,ifp, gp, 0, NULL);
654 k_proxy_chg_mfc(router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr,wan_index,1);
691 igmp_group_t* gp;
724 if ((gp = igmp_interface_group_add(router,ifp, report->igmpr_group[i].igmpg_group)) == NULL)
728 rep=igmp_group_rep_add(gp,src);
733 gp->igmpg_type = type;
734 //printf("%s, %d type %d, group %s\n",__FUNCTION__,__LINE__,type,inet_ntoa(gp->igmpg_addr.s_addr));
737 igmp_group_handle_isin(router,ifp,gp,numsrc,(struct in_addr *) (&report->igmpr_group[i].igmpg_group+4));
740 igmp_group_handle_isex(router,ifp,gp,numsrc,(struct in_addr *) (&report->igmpr_group[i].igmpg_group+4));
744 igmp_group_handle_toin(router,ifp,gp,numsrc,rep,(struct in_addr *) (&report->igmpr_group[i].igmpg_group+4));
748 igmp_group_handle_toex(router,ifp,gp,numsrc,(struct in_addr *) (&report->igmpr_group[i].igmpg_group+4));
751 igmp_group_handle_allow(router,ifp,gp,numsrc,(struct in_addr *) (&report->igmpr_group[i].igmpg_group+4));
754 igmp_group_handle_block(router,ifp,gp,numsrc,(struct in_addr *) (&report->igmpr_group[i].igmpg_group+4));
778 igmp_group_t* gp;
782 for (gp = ifp->igmpi_groups; gp; gp = gp->igmpg_next)
783 igmp_group_print(gp);
828 igmp_group_t *gp;
932 igmp_group_t *gp;
948 igmp_group_t* gp;
1371 igmp_group_t *gp;
1464 igmp_group_t *gp;
1486 gp=igmprt_group_lookup(&router,ifp->igmpi_addr,gr);
1487 if (gp != NULL){
1489 igmp_group_print(gp);
1503 for (gp=ifp->igmpi_groups;gp;gp=gp->igmpg_next)
1504 if ((src=igmp_group_src_lookup(gp,srcaddr)) != NULL){
1506 printf("\tgroup : %s\n",inet_ntoa(gp->igmpg_addr));
1534 igmp_group_t* gp)
1540 assert(gp != NULL);
1548 if (ifp->igmpi_groups != gp){
1552 if((igmp_group_t *)g->igmpg_next == gp)
1561 g->igmpg_next=gp->igmpg_next;
1570 free(gp);
1577 igmp_group_t *gp,*g;
1578 gp=ifp->igmpi_groups;
1579 while(gp){
1580 g=gp->igmpg_next;
1581 if( (gp->igmpg_fmode == IGMP_FMODE_EXCLUDE)&&(gp->igmpg_timer == 0))
1583 igmp_group_cleanup(gp);
1585 gp=g;
1605 igmp_group_t* gp,gp1;
1613 if((gp = igmp_interface_group_lookup(ifp, report->igmpr_group)) == NULL)
1616 if (!igmp_group_rep_lookup(gp, src))
1618 igmp_group_rep_del(gp,src);
1620 for(rep=gp->igmpg_members;rep;rep=(igmp_rep_t *)rep->igmpr_next)
1630 k_proxy_del_mfc(router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr);
1632 send_leave_group_v2(gp->igmpg_addr);
1635 send_membership_report_v12_to_v3(gp->igmpg_addr,CHANGE_TO_INCLUDE); /* v2 leave group is equivalent to v3 type CHANGE_TO_INCLUDE */
1637 send_group_specific_query(router,ifp,gp);
1639 igmp_group_cleanup(gp);