Lines Matching refs:gp

116             igmp_group_t *gp,
128 src=igmp_group_src_add(gp,sources[i]);
130 k_proxy_chg_mfc(router->igmprt_socket,sources[i].s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,forward_upstream);
132 k_proxy_chg_mfc(router->igmprt_socket,sources[i].s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,1);
137 gp1 = gp;
138 for (src=gp->igmpg_sources;src;src=(igmp_src_t *)src->igmps_next){
146 gp = gp1;
148 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
149 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
161 igmp_group_t *gp,
171 old_src_set = gp->igmpg_sources;
172 if (gp->igmpg_fmode ==IGMP_FMODE_INCLUDE){
175 gp1=gp;
176 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
182 send_group_src_specific_q(router,ifp,gp,set_src,num);
183 gp=gp1;
186 gp1=gp;
187 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
193 gp=gp1;
195 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
196 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
203 sr=igmp_group_src_add(gp,sources[i]);
206 sr->igmps_timer= gp->igmpg_timer;
212 gp1=gp;
213 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
219 gp=gp1;
220 send_group_src_specific_q(router,ifp,gp,set_src,num);
223 gp1=gp;
224 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
230 gp=gp1;
232 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
233 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
246 igmp_group_t *gp,
258 for(rep=gp->igmpg_members;rep;rep=(igmp_rep_t *)rep->igmpr_next)
269 if(gp->igmpg_flags!=FIRST_JOIN_GROUP_HAD_SEND)
270 gp->igmpg_flags = FIRST_JOIN_GROUP; /* First join a group */
273 // gp->igmpg_flags = GROUP_INIT;
276 old_src_set=(igmp_src_t *)gp->igmpg_sources;
277 if (gp->igmpg_fmode == IGMP_FMODE_INCLUDE){
281 src=igmp_group_src_add(gp,sources[i]);
288 igmp_src_cleanup(gp,src);
289 k_proxy_del_mfc (router->igmprt_socket, src->igmps_source.s_addr, gp->igmpg_addr.s_addr);
295 src=igmp_group_src_add(gp,sources[i]);
299 src->igmps_timer= gp->igmpg_timer;
305 igmp_src_cleanup(gp,src);
306 k_proxy_del_mfc (router->igmprt_socket, src->igmps_source.s_addr, gp->igmpg_addr.s_addr);
311 gp->igmpg_timer=IGMP_GMI;
314 gp1=gp;
315 for (sr=gp->igmpg_sources;sr!=NULL;sr=(igmp_src_t *)sr->igmps_next){
323 gp=gp1;
324 send_group_src_specific_q(router,ifp,gp,set_src,num);
326 gp->igmpg_fmode = IGMP_FMODE_EXCLUDE;
330 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
331 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
338 k_proxy_chg_mfc(router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr,wan_index,1);
352 igmp_group_t *gp,
365 if(!igmp_interface_group_lookup(ifp,gp->igmpg_addr))
371 if (!igmp_group_rep_lookup(gp, srcrep->igmpr_addr))
377 igmp_group_rep_del(gp,srcrep->igmpr_addr);
381 for(rep=gp->igmpg_members;rep;rep=(igmp_rep_t *)rep->igmpr_next)
395 if(gp->igmpg_flags!=LAST_LEAVE_GROUP_HAD_SEND)
396 gp->igmpg_flags = LAST_LEAVE_GROUP; /* Last leave a group */
399 k_proxy_del_mfc(router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr);
403 // gp->igmpg_flags = GROUP_INIT;
408 old_src_set=(igmp_src_t *)gp->igmpg_sources;
411 src=igmp_group_src_add(gp,sources[i]);
420 k_proxy_chg_mfc(router->igmprt_socket,sources[i].s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,forward_upstream);
425 k_proxy_chg_mfc(router->igmprt_socket,sources[i].s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,1);
429 if (gp->igmpg_fmode == IGMP_FMODE_INCLUDE){
432 gp1=gp;
434 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
442 gp =gp1;
443 send_group_src_specific_q(router,ifp,gp,set_src,num);
444 gp->igmpg_fmode=IGMP_FMODE_INCLUDE;
446 gp1=gp;
449 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
454 gp = gp1;
458 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
460 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
466 gp1=gp;
468 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
477 gp=gp1;
478 send_group_src_specific_q(router,ifp,gp,set_src,num);
480 send_group_specific_query(router,ifp,gp);
481 gp->igmpg_fmode=IGMP_FMODE_EXCLUDE;
483 gp1 = gp;
485 for (sr=gp->igmpg_sources;sr; sr=(igmp_src_t *)sr->igmps_next){
490 gp = gp1;
493 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
495 //set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
513 igmp_group_t* gp,
523 //printf("%s, %d, general_query_count %d gp->igmpg_fmode %d,numsrc %d\n",__FUNCTION__,__LINE__,general_query_count,gp->igmpg_fmode,numsrc);
529 //printf("%d, 0x%x,0x%x,0x%x,\n",router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr,wan_index);
530 k_proxy_chg_mfc(router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr,wan_index,1);
537 gp->igmpg_timer = IGMP_GMI; /* ifp->igmpi_qi = GMI : GMI = (RBV * QI) + QRI */
539 old_src_set=gp->igmpg_sources;
540 if (gp->igmpg_fmode == IGMP_FMODE_EXCLUDE) {
543 src=igmp_group_src_add(gp,sources[i]);
553 igmp_src_cleanup(gp,src);
554 k_proxy_del_mfc (router->igmprt_socket, src->igmps_source.s_addr, gp->igmpg_addr.s_addr);
562 src=igmp_group_src_add(gp,sources[i]);
569 igmp_src_cleanup(gp,src);
570 k_proxy_del_mfc (router->igmprt_socket, src->igmps_source.s_addr, gp->igmpg_addr.s_addr);
575 gp->igmpg_fmode = IGMP_FMODE_EXCLUDE;
578 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,numsrc,sources);
579 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
595 igmp_group_t* gp,
609 src=igmp_group_src_add(gp,sources[i]);
614 k_proxy_chg_mfc(router->igmprt_socket,sources[i].s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,forward_upstream);
616 k_proxy_chg_mfc(router->igmprt_socket,sources[i].s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,1);
620 gp1=gp;
621 for (sr=gp->igmpg_sources;sr;sr=(igmp_src_t *)sr->igmps_next){
625 gp=gp1;
626 if (gp->igmpg_fmode == IGMP_FMODE_EXCLUDE) {
628 gp->igmpg_fmode = IGMP_FMODE_EXCLUDE;
631 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
632 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
637 gp->igmpg_fmode = IGMP_FMODE_INCLUDE;
640 member = (membership_db*)update_multi(router,gp->igmpg_addr,gp->igmpg_fmode,num,set_src);
641 set_source_filter(router,gp,upstream,member->membership.fmode,member->membership.numsources,member->membership.sources);
675 igmp_group_t *gp;
684 for(gp=ifp->igmpi_groups;gp;gp=gp->igmpg_next){
686 if (gp->igmpg_timer > 0)
687 --gp->igmpg_timer;
689 if (gp->igmpg_fmode == IGMP_FMODE_EXCLUDE){
690 if ((gp->igmpg_timer == 0) && (ifp->igmpi_addr.s_addr == lan_ipaddr)){
692 if(!emf_cfg_mfdb_group_find(gp->igmpg_addr))
693 k_proxy_del_mfc(router->igmprt_socket,mulsrc.igmps_addr.s_addr,gp->igmpg_addr.s_addr);
698 for (src=gp->igmpg_sources;src;src=(igmp_src_t *)src->igmps_next){
702 igmp_src_cleanup(gp,src);
703 k_proxy_del_mfc (router->igmprt_socket, src->igmps_source.s_addr, gp->igmpg_addr.s_addr);
711 /*igmp_group_cleanup(gp);*/ /* Del by lewis min, 12/15/2007 */
718 if ((igmp_interface_group_lookup(ifp1,gp->igmpg_addr) != NULL) && (ifp1->igmpi_addr.s_addr != upstream))
724 mreq.imr_multiaddr.s_addr=gp->igmpg_addr.s_addr;
743 gp->igmpg_fmode = IGMP_FMODE_INCLUDE;
760 igmp_group_t *gp;
769 for (gp=ifp->igmpi_groups;gp;gp=gp->igmpg_next)
770 for (src=gp->igmpg_sources;src;src=(igmp_src_t *)src->igmps_next){
775 switch(gp->igmpg_fmode){
784 k_proxy_chg_mfc(router->igmprt_socket,src->igmps_source.s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,1);
793 k_proxy_chg_mfc(router->igmprt_socket,src->igmps_source.s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,0);
795 igmp_src_cleanup(gp,src);
796 k_proxy_del_mfc (router->igmprt_socket, src->igmps_source.s_addr, gp->igmpg_addr.s_addr);
797 if (gp->igmpg_sources == NULL) {
799 igmp_group_cleanup(gp);
805 if ((igmp_interface_group_lookup(ifp1,gp->igmpg_addr) != NULL) && (ifp1->igmpi_addr.s_addr != upstream))
808 mreq.imr_multiaddr.s_addr=gp->igmpg_addr.s_addr;
825 if (gp->igmpg_sources == NULL)/*TODO: (*,G) state source addr = ADRESSE_NONE*/
834 k_proxy_chg_mfc(router->igmprt_socket,src->igmps_source.s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,1);
843 k_proxy_chg_mfc(router->igmprt_socket,src->igmps_source.s_addr,gp->igmpg_addr.s_addr,ifp->igmpi_index,0);
846 if (gp->igmpg_sources == NULL)/*TODO: (*,G) state source addr = ADRESSE_NONE*/
860 * sch_query_t * igmp_sch_create ( struct in_addr gp)
863 sch_query_t *igmp_sch_create( struct in_addr gp)
867 sh->gp_addr.s_addr = gp.s_addr;
873 * void sch_group_specq_add(router,ifp,gp,sources,numsrc)
878 struct in_addr gp,
886 sch=igmp_sch_create(gp);
997 igmp_group_t *gp)
1000 if (gp->igmpg_timer > IGMP_TIMER_SCALE)
1003 gp->igmpg_timer = IGMP_TIMER_SCALE;
1005 igmprt_membership_query(router,ifp,&gp->igmpg_addr,NULL,0,SRSP);
1007 sch_group_specq_add(ifp,gp->igmpg_addr,NULL,0);
1017 igmp_group_t *gp,
1024 if (gp != NULL){
1026 src=igmp_group_src_lookup(gp,sources[i]);
1033 sch_group_specq_add(ifp,gp->igmpg_addr,sources,numsrc);
1070 igmp_group_t *gp;
1079 if ((gp=igmp_interface_group_lookup(ifp,sch->gp_addr))== NULL){
1085 if ((src=igmp_group_src_lookup(gp,sch->sources[i]))==NULL){
1115 igmp_group_t *gp;
1124 if ((gp=igmp_interface_group_lookup(ifp,sch->gp_addr))==NULL){
1127 if (gp->igmpg_timer > IGMP_TIMER_SCALE)
1358 //records[recordnum].igmpg_addr.s_addr = gp->igmpg_addr.s_addr;
1359 //records[recordnum++].igmpg_fmode = gp->igmpg_fmode;
1766 struct in_addr gp,
1783 gr=igmp_interface_group_lookup(ifp,gp);