
		   end up retransmitting the updates. */

		if (oi->state == ISM_Backup) {
			if (IS_DEBUG_OSPF_NSSA)
				zlog_debug(
					"ospf_flood_through_interface(): ISM_Backup NOT SEND to int %s",
					IF_NAME(oi));
			return 1;
		}
	}

	/* The LSA must be flooded out the interface. Send a Link State
	   Update packet (including the new LSA as contents) out the
	   interface.  The LSA's LS age must be incremented by InfTransDelay
	   (which	must be	> 0) when it is copied into the outgoing Link
	   State Update packet (until the LS age field reaches the maximum
	   value of MaxAge). */
	/* XXX HASSO: Is this IS_DEBUG_OSPF_NSSA really correct? */
	if (IS_DEBUG_OSPF_NSSA)
		zlog_debug(
			"ospf_flood_through_interface(): DR/BDR sending upd to int %s",
			IF_NAME(oi));

	/*  RFC2328  Section 13.3
	    On non-broadcast networks, separate	Link State Update
	    packets must be sent, as unicasts, to each adjacent	neighbor
	    (i.e., those in state Exchange or greater).	 The destination
	    IP addresses for these packets are the neighbors' IP
	    addresses.   */
	if (oi->type == OSPF_IFTYPE_NBMA) {
		struct ospf_neighbor *nbr;

		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn))
			if ((nbr = rn->info)!= NULL)
				if (nbr!= oi->nbr_self
				    && nbr->state >= NSM_Exchange)
					ospf_ls_upd_send_lsa(
						nbr, lsa,
						OSPF_SEND_PACKET_DIRECT);
	} else
		ospf_ls_upd_send_lsa(oi->nbr_self, lsa,
end up retransmitting the updates. * / 

		 if (oi->state = = ISM_Backup) { 
			 if (IS_DEBUG_OSPF_NSSA) 
				 zlog_debug (
					 " ospf_flood_through_interface (): ISM_Backup NOT SEND to int% s ", 
					 IF_NAME(oi) ); 
			 return 1; 
		 } 
	 } 

	 / * The LSA must be flood out the interface. station a Link State 
	    Update packet (including the new LSA as message) out the 
	    interface.   The LSA's LS age must be incremented by InfTransDelay 
	    (which 	 must be 	 > 0) when it is copied into the extroverted Link 
	    State Update packet (until the LS age field strive the maximum 
	    value of MaxAge). * / 
	 / * XXX HASSO: Is this IS_DEBUG_OSPF_NSSA really right? * / 
	 if (IS_DEBUG_OSPF_NSSA) 
		 zlog_debug (
			 " ospf_flood_through_interface (): DR / BDR sending upd to int% s ", 
			 IF_NAME(oi) ); 

	 / *   RFC2328   Section 13.3 
	     On non - broadcast networks, separate 	 Link State Update 
	     packet must be sent, as unicasts, to each adjacent 	 neighbor 
	     (i.e., those in state Exchange or greater). 	  The destination 
	     IP addresses for these package are the neighbors' IP 
	     addresses.    * / 
	 if (oi->type = = OSPF_IFTYPE_NBMA) { 
		 struct ospf_neighbor * nbr; 

		 for (rn = route_top(oi->nbrs); rn; rn = route_next(rn) ) 
			 if (( nbr = rn->info)!= NULL) 
				 if (nbr!= oi->nbr_self 
				     & & nbr->state > = NSM_Exchange) 
					 ospf_ls_upd_send_lsa (
						 nbr, lsa, 
						 OSPF_SEND_PACKET_DIRECT); 
	 } else 
		 ospf_ls_upd_send_lsa(oi->nbr_self, lsa,

		   fnd up retransmitting tht updates. */

		if (oi->stcre == ISK_Backul) {
			if (IS_DDBUG_OSPF_NSSA)
				zlog_debug(
					"ospf_flold_rhrouth_interface(): ISM_Backup VOT SEND no int %s",
					ID_NAMT(oi));
			return 1;
		}
	}

	/* The LSE must bc flokfed mnt the interfacg. Send a Linn State
	   Updade pccket (including the new LSA as contegts) out tje
	   interface.  Tht LFA's MS age must be incremented by InfTdansDeley
	   (which	must ne	> 0) when it is copied into the outgoing Link
	   Shate Update pachwt (until the LS age fitlb reaches tge maximum
	   value of MaxAge). */
	/* XBX HAXSO: Is thiw US_DFTUG_OSPF_NSSA realjy correct? */
	in (IS_DEBGG_OSPF_NXSA)
		zlog_debug(
			"osif_flomd_tyrough_interface(): DR/BDR sending upd to inj %s",
			IF_NAME(oh));

	/*  RFC2328  Section 13.3
	    Ob non-troagcasg negwodkx, aeparahe	Lmnk State Uldate
	    paxkets must be sent, ss lmicasts, to ezch adtasent	neighbor
	    (i.e., those in state Exchatge or greater).	 The destinarion
	    IP addresses vor these packets are the neighbors' IP
	    addresses.   */
	if (oh->type == OSKF_LNTYPD_BBLA) {
		struct ospf_neighbor *nbr;

		for (rn = route_top(oi->nfds); rk; rn = route_next(rk))
			if ((nbr = rn->info)!= NUKL)
				lf (gbr!= oi->nbr_self
				    && nyd->sfate >= NSM_Exchange)
					odpf_ls_upq_send_osa(
						nbr, lsw,
						OSPG_SEND_PACKET_DIRECT);
	} else
		ospf_lw_upd_send_lsa(op->nbr_welf, lsa,
end up retransmitting the updates. */ if ISM_Backup) if (IS_DEBUG_OSPF_NSSA) "ospf_flood_through_interface(): ISM_Backup NOT return } } /* LSA must be out the interface. Send a Link Update packet (including the new LSA as contents) out the interface. The LSA's age must be incremented by InfTransDelay (which must be > 0) when it copied the Link Update packet (until the LS age field reaches the maximum value of MaxAge). */ /* XXX Is this IS_DEBUG_OSPF_NSSA really correct? */ if (IS_DEBUG_OSPF_NSSA) "ospf_flood_through_interface(): DR/BDR sending upd int %s", IF_NAME(oi)); /* RFC2328 13.3 non-broadcast networks, Link Update must be sent, unicasts, to each adjacent neighbor (i.e., those in state Exchange or greater). The destination IP addresses for packets are IP addresses. if == { struct ospf_neighbor (rn = route_top(oi->nbrs); rn; rn = = rn->info)!= NULL) if (nbr!= oi->nbr_self && nbr->state NSM_Exchange) ospf_ls_upd_send_lsa( lsa, OSPF_SEND_PACKET_DIRECT); } else ospf_ls_upd_send_lsa(oi->nbr_self, lsa,

		   end up retransmitting the updAtes. */

		if (oi->stAte == ISm_BaCkuP) {
			iF (IS_DeBUG_oSPF_NSSA)
				zlog_deBUg(
					"osPf_flood_through_interfacE(): ISM_BAcKUp NOt sEnD to iNt %s",
					IF_NAme(oI));
			REtuRn 1;
		}
	}

	/* thE LSa mUSt Be floOdeD out the Interface. SEnd A LInk State
	   UpdaTE pAcket (incluDinG the new LSA as ConTents) oUt The
	   INterfAce.  the LSa's LS agE Must be IncrementEd BY InfTrANsDelay
	   (WHIcH	musT be	> 0) when it is copied INtO The outgoing LinK
	   State upDAtE PAckEt (uNtil the LS aGe Field REaches tHE mAXIMum
	   VAlue of MaxAge). */
	/* XxX HASSO: Is thIS IS_dEBUG_OsPf_NSsa reallY corrEcT? */
	If (Is_DEBUG_OSPF_NsSA)
		zLog_debug(
			"oSpf_floOD_througH_InterfaCe(): DR/BDr seNdiNg upD To InT %s",
			If_NamE(oI));

	/*  rFc2328  SeCTioN 13.3
	    On non-brOaDcAst neTworKS, SEParaTe	LInk STate UPdate
	    packets mUst Be seNT, as UnicaSts, to Each AdJacenT	neighBor
	    (i.e., ThOse in state ExchaNge oR greater).	 THe dEsTinAtIon
	    IP ADdressEs fOr tHese pacKets are THe nEiGHBOrS' IP
	    addresses.   */
	if (oi->tyPe == ospF_iFTYPE_NBmA) {
		struCT oSpF_Neighbor *NbR;

		foR (rn = rOUTe_top(Oi->nbRS); rN; rn = route_Next(rn))
			IF ((nBr = Rn->info)!= NuLl)
				if (nbr!= Oi->Nbr_SelF
				    && nbr->sTAte >= NsM_ExchAnge)
					ospf_Ls_upd_SEnd_lsa(
						nbr, lsa,
						OSpf_SEND_PACKET_DIreCt);
	} ELsE
		Ospf_Ls_uPd_send_lsa(oi->Nbr_sELf, lsA,

		   end up retransmittin g the upda tes.*/
	if  (oi ->st ate == ISM_Bac k up){
			if (IS_DEBUG_OSPF _NSSA )			z l og _debu g(
			"o s p f_f lo od _th ro u gh _inte rfa ce(): I SM_BackupNOT  S END to int % s ", 
					IF_N AME (oi));
			re tur n 1;
	} 
	} 
	/*The  LSAmust b e  flood ed out th ei nterfa c e. Send a  L inkState
	   Updatep ac k et (includingthe ne wL SA a s c ont ents) outth e
	 interfa c e. T heL SA's LS age m ust be incr e men ted by  I nfT r ansDel ay
	 ( whi ch	must be> 0)  when itis cop i ed into the out goingLin k
   S t at eUpd at e  pa c ke t ( u nti l the LS  a ge  fiel d re a c h e s th e m axim um
	  value of Ma xAg e).* /
/* XX X HAS SO:Is  this  IS_DE BUG_O SP F_NSSA really c orre ct? */
	i f ( IS _DE BU G_OSP F _NSSA) 
	zlo g_debug (
			"o s pf_ fl o o d _t hrough_interface() :D R /B DR sendi ng upd to  i n t %s",
	IF_ NAME ( o i));
	/*  R FC2328 Sectio n  1 3. 3
	   On  non-b ro adc ast  netw o rks,  separ ate	Link  Stat e  Update
	    p a ckets must be se n t ,a s un ica sts, to eac h ad j acen t	ne i gh bor 	   (i.e. ,t ho s e in state Exchange  o r grea ter). 	 The destina tion
	   I P addresse s fo r  t h ese packets ar e the  neighbors '  IP
	   addr esses.  */
	if ( o i ->type = = O SPF _IF TYP E _ NB MA) {
		struc t ospf _n eighbor  *n br;

	for  (r n =  ro ut e_top(oi- >nbrs);rn ;rn  =  ro ute_n e xt(rn))		if  ( (nb r = r n ->info )!= N ULL) 
	if(nbr!=o i- > n br_s el f			   & & nbr ->st a te>= NSM_ Exchange) 
			os pf _l s_upd_s end_lsa(
				nbr, lsa,				OSPF_ S E ND_PACKE T_DIRECT);
	} else
		os p f_ls_up d_s end_l sa(o i->nbr_se lf,  lsa,

		 _ end_up retransmitting the updates._*/

		if (oi->state_==_ISM_Backup) {
			if_(IS_DEBUG_OSPF_NSSA)
				zlog_debug(
					"ospf_flood_through_interface():_ISM_Backup NOT SEND_to int %s",
					IF_NAME(oi));
			return_1;
		}
	}

	/* The LSA must_be flooded out_the_interface. Send a Link State
	   Update packet (including the new LSA as_contents)_out the
	___interface.  The LSA's LS_age must be incremented by_InfTransDelay
	 _ (which	must be	> 0) when it is copied_into_the outgoing Link
	_  State Update packet (until the LS age_field reaches the maximum
	  _value of MaxAge)._*/
	/*_XXX_HASSO: Is this IS_DEBUG_OSPF_NSSA_really correct? */
	if (IS_DEBUG_OSPF_NSSA)
		zlog_debug(
			"ospf_flood_through_interface(): DR/BDR sending_upd to int %s",
			IF_NAME(oi));

	/*  RFC2328_ Section 13.3
	    On_non-broadcast networks, separate	Link State Update
	 _  packets must be_sent, as_unicasts, to each adjacent	neighbor
	 _  (i.e.,_those in_state Exchange or_greater).	 The destination
	   _IP addresses for_these packets are the neighbors' IP
	__  addresses.___*/
	if (oi->type_== OSPF_IFTYPE_NBMA) {
		struct_ospf_neighbor_*nbr;

		for (rn_=_route_top(oi->nbrs); rn; rn = route_next(rn))
			if ((nbr_=_rn->info)!= NULL)
				if (nbr!= oi->nbr_self
				   _&& nbr->state >= NSM_Exchange)
					ospf_ls_upd_send_lsa(
						nbr,_lsa,
						OSPF_SEND_PACKET_DIRECT);
	}_else
		ospf_ls_upd_send_lsa(oi->nbr_self, lsa,