diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2022-08-10 18:14:23 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2022-08-11 13:30:32 -0400 | 
| commit | fe61ceaee75dbba770f39af7670aa85b8d6ccacb (patch) | |
| tree | 184360281a451a372a547d04615cecf9881a229d | |
| parent | 812e6c78c10970d0c5e7e5f3d1ed54dc95736244 (diff) | |
ospfd: Cleanup indentation surrounding oi->nbr
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
| -rw-r--r-- | ospfd/ospf_flood.c | 38 | ||||
| -rw-r--r-- | ospfd/ospf_interface.c | 22 | ||||
| -rw-r--r-- | ospfd/ospf_packet.c | 187 | ||||
| -rw-r--r-- | ospfd/ospf_sr.c | 15 | ||||
| -rw-r--r-- | ospfd/ospf_vty.c | 151 | 
5 files changed, 215 insertions, 198 deletions
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c index 848f340750..fb3fb21e08 100644 --- a/ospfd/ospf_flood.c +++ b/ospfd/ospf_flood.c @@ -638,13 +638,15 @@ int ospf_flood_through_interface(struct ospf_interface *oi,  	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); +		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { +			nbr = rn->info; + +			if (!nbr) +				continue; +			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,  				     OSPF_SEND_PACKET_INDIRECT); @@ -991,18 +993,20 @@ static void ospf_ls_retransmit_delete_nbr_if(struct ospf_interface *oi,  	struct ospf_lsa *lsr;  	if (ospf_if_is_enable(oi)) -		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) +		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) {  			/* If LSA find in LS-retransmit list, then remove it. */ -			if ((nbr = rn->info) != NULL) { -				lsr = ospf_ls_retransmit_lookup(nbr, lsa); +			nbr = rn->info; -				/* If LSA find in ls-retransmit list, remove it. -				 */ -				if (lsr != NULL -				    && lsr->data->ls_seqnum -					       == lsa->data->ls_seqnum) -					ospf_ls_retransmit_delete(nbr, lsr); -			} +			if (!nbr) +				continue; + +			lsr = ospf_ls_retransmit_lookup(nbr, lsa); + +			/* If LSA find in ls-retransmit list, remove it. */ +			if (lsr != NULL && +			    lsr->data->ls_seqnum == lsa->data->ls_seqnum) +				ospf_ls_retransmit_delete(nbr, lsr); +		}  }  void ospf_ls_retransmit_delete_nbr_area(struct ospf_area *area, diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c index 633ab05131..a4f4cd216a 100644 --- a/ospfd/ospf_interface.c +++ b/ospfd/ospf_interface.c @@ -66,15 +66,16 @@ int ospf_interface_neighbor_count(struct ospf_interface *oi)  	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) {  		nbr = rn->info; -		if (nbr) { -			/* Do not show myself. */ -			if (nbr == oi->nbr_self) -				continue; -			/* Down state is not shown. */ -			if (nbr->state == NSM_Down) -				continue; -			count++; -		} +		if (!nbr) +			continue; + +		/* Do not show myself. */ +		if (nbr == oi->nbr_self) +			continue; +		/* Down state is not shown. */ +		if (nbr->state == NSM_Down) +			continue; +		count++;  	}  	return count; @@ -315,10 +316,11 @@ void ospf_if_cleanup(struct ospf_interface *oi)  	}  	/* send Neighbor event KillNbr to all associated neighbors. */ -	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) +	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) {  		if ((nbr = rn->info) != NULL)  			if (nbr != oi->nbr_self)  				OSPF_NSM_EVENT_EXECUTE(nbr, NSM_KillNbr); +	}  	/* Cleanup Link State Acknowlegdment list. */  	for (ALL_LIST_ELEMENTS(oi->ls_ack, node, nnode, lsa)) diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index 907cb15ed5..c5e26fa371 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -3349,49 +3349,44 @@ static int ospf_make_hello(struct ospf_interface *oi, struct stream *s)  	stream_put_ipv4(s, BDR(oi).s_addr);  	/* Add neighbor seen. */ -	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) -		if ((nbr = rn->info)) -			if (nbr->router_id.s_addr -			    != INADDR_ANY) /* Ignore 0.0.0.0 node. */ -				if (nbr->state -				    != NSM_Attempt) /* Ignore Down neighbor. */ -					if (nbr->state -					    != NSM_Down) /* This is myself for -							    DR election. */ -						if (!IPV4_ADDR_SAME( -							    &nbr->router_id, -							    &oi->ospf->router_id)) { -							/* Check neighbor is -							 * sane? */ -							if (nbr->d_router.s_addr -								    != INADDR_ANY -							    && IPV4_ADDR_SAME( -								    &nbr->d_router, -								    &oi->address -									     ->u -									     .prefix4) -							    && IPV4_ADDR_SAME( -								    &nbr->bd_router, -								    &oi->address -									     ->u -									     .prefix4)) -								flag = 1; - -							/* Hello packet overflows interface MTU. */ -							if (length + sizeof(uint32_t) -								> ospf_packet_max(oi)) { -								flog_err( -									EC_OSPF_LARGE_HELLO, -									"Oversized Hello packet! Larger than MTU. Not sending it out"); -								return 0; -							} - -							stream_put_ipv4( -								s, -								nbr->router_id -									.s_addr); -							length += 4; -						} +	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { +		nbr = rn->info; + +		if (!nbr) +			continue; + +		/* Ignore the 0.0.0.0 node */ +		if (nbr->router_id.s_addr == INADDR_ANY) +			continue; + +		/* Ignore Down neighbor */ +		if (nbr->state == NSM_Attempt) +			continue; + +		/* This is myself for DR election */ +		if (nbr->state == NSM_Down) +			continue; + +		if (IPV4_ADDR_SAME(&nbr->router_id, &oi->ospf->router_id)) +			continue; +		/* Check neighbor is  sane? */ +		if (nbr->d_router.s_addr != INADDR_ANY && +		    IPV4_ADDR_SAME(&nbr->d_router, &oi->address->u.prefix4) && +		    IPV4_ADDR_SAME(&nbr->bd_router, &oi->address->u.prefix4)) +			flag = 1; + +		/* Hello packet overflows interface MTU. +		 */ +		if (length + sizeof(uint32_t) > ospf_packet_max(oi)) { +			flog_err( +				EC_OSPF_LARGE_HELLO, +				"Oversized Hello packet! Larger than MTU. Not sending it out"); +			return 0; +		} + +		stream_put_ipv4(s, nbr->router_id.s_addr); +		length += 4; +	}  	/* Let neighbor generate BackupSeen. */  	if (flag == 1) @@ -3772,54 +3767,44 @@ void ospf_hello_send(struct ospf_interface *oi)  		struct ospf_neighbor *nbr;  		struct route_node *rn; -		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) -			if ((nbr = rn->info)) -				if (nbr != oi->nbr_self) -					if (nbr->state != NSM_Down) { -						/*  RFC 2328  Section 9.5.1 -						    If the router is not -						   eligible to become Designated -						   Router, -						    it must periodically send -						   Hello Packets to both the -						    Designated Router and the -						   Backup Designated Router (if -						   they -						    exist).  */ -						if (PRIORITY(oi) == 0 -						    && IPV4_ADDR_CMP( -							       &DR(oi), -							       &nbr->address.u -									.prefix4) -						    && IPV4_ADDR_CMP( -							       &BDR(oi), -							       &nbr->address.u -									.prefix4)) -							continue; - -						/*  If the router is eligible to -						   become Designated Router, it -						    must periodically send Hello -						   Packets to all neighbors that -						    are also eligible. In -						   addition, if the router is -						   itself the -						    Designated Router or Backup -						   Designated Router, it must -						   also -						    send periodic Hello Packets -						   to all other neighbors. */ - -						if (nbr->priority == 0 -						    && oi->state == ISM_DROther) -							continue; -						/* if oi->state == Waiting, send -						 * hello to all neighbors */ -						ospf_hello_send_sub( -							oi, -							nbr->address.u.prefix4 -								.s_addr); -					} +		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { +			nbr = rn->info; +			if (!nbr) +				continue; + +			if (nbr == oi->nbr_self) +				continue; + +			if (nbr->state == NSM_Down) +				continue; + +			/* +			 * RFC 2328  Section 9.5.1 +			 * If the router is not eligible to become Designated +			 * Router, it must periodically send Hello Packets to +			 * both the Designated Router and the Backup +			 * Designated Router (if they exist). +			 */ +			if (PRIORITY(oi) == 0 && +			    IPV4_ADDR_CMP(&DR(oi), &nbr->address.u.prefix4) && +			    IPV4_ADDR_CMP(&BDR(oi), &nbr->address.u.prefix4)) +				continue; + +			/* +			 * If the router is eligible to become Designated +			 * Router, it must periodically send Hello Packets to +			 * all neighbors that are also eligible. In addition, +			 * if the router is itself the Designated Router or +			 * Backup Designated Router, it must also send periodic +			 * Hello Packets to all other neighbors. +			 */ +			if (nbr->priority == 0 && oi->state == ISM_DROther) +				continue; + +			/* if oi->state == Waiting, send +			 * hello to all neighbors */ +			ospf_hello_send_sub(oi, nbr->address.u.prefix4.s_addr); +		}  	} else {  		/* Decide destination address. */  		if (oi->type == OSPF_IFTYPE_VIRTUALLINK) @@ -4291,14 +4276,18 @@ void ospf_ls_ack_send_delayed(struct ospf_interface *oi)  		struct ospf_neighbor *nbr;  		struct route_node *rn; -		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) -					while (listcount(oi->ls_ack)) -						ospf_ls_ack_send_list( -							oi, oi->ls_ack, -							nbr->address.u.prefix4); +		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { +			nbr = rn->info; + +			if (!nbr) +				continue; + +			if (nbr != oi->nbr_self && nbr->state >= NSM_Exchange) +				while (listcount(oi->ls_ack)) +					ospf_ls_ack_send_list( +						oi, oi->ls_ack, +						nbr->address.u.prefix4); +		}  		return;  	}  	if (oi->type == OSPF_IFTYPE_VIRTUALLINK) diff --git a/ospfd/ospf_sr.c b/ospfd/ospf_sr.c index 2c7c80686c..3a71e55710 100644 --- a/ospfd/ospf_sr.c +++ b/ospfd/ospf_sr.c @@ -756,13 +756,14 @@ static struct ospf_neighbor *get_neighbor_by_addr(struct ospf *top,  	for (ALL_LIST_ELEMENTS_RO(top->oiflist, node, oi))  		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) {  			nbr = rn->info; -			if (nbr) -				if (IPV4_ADDR_SAME(&nbr->address.u.prefix4, -						   &addr) -				    || IPV4_ADDR_SAME(&nbr->router_id, &addr)) { -					route_unlock_node(rn); -					return nbr; -				} +			if (!nbr) +				continue; + +			if (IPV4_ADDR_SAME(&nbr->address.u.prefix4, &addr) || +			    IPV4_ADDR_SAME(&nbr->router_id, &addr)) { +				route_unlock_node(rn); +				return nbr; +			}  		}  	return NULL;  } diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 1c22fad669..74ee37b182 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -4476,19 +4476,22 @@ static void show_ip_ospf_neighbor_sub(struct vty *vty,  	struct ospf_neighbor *nbr, *prev_nbr = NULL;  	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { -		if ((nbr = rn->info)) { -			/* Do not show myself. */ -			if (nbr == oi->nbr_self) -				continue; -			/* Down state is not shown. */ -			if (nbr->state == NSM_Down) -				continue; +		nbr = rn->info; -			prev_nbr = nbr; +		if (!nbr) +			continue; -			show_ip_ospf_neighbour_brief(vty, nbr, prev_nbr, json, -						     use_json); -		} +		/* Do not show myself. */ +		if (nbr == oi->nbr_self) +			continue; +		/* Down state is not shown. */ +		if (nbr->state == NSM_Down) +			continue; + +		prev_nbr = nbr; + +		show_ip_ospf_neighbour_brief(vty, nbr, prev_nbr, json, +					     use_json);  	}  } @@ -5402,14 +5405,17 @@ static int show_ip_ospf_neighbor_id_common(struct vty *vty, struct ospf *ospf,  	ospf_show_vrf_name(ospf, vty, json, use_vrf);  	for (ALL_LIST_ELEMENTS_RO(ospf->oiflist, node, oi)) { -		if ((nbr = ospf_nbr_lookup_by_routerid(oi->nbrs, router_id))) { -			if (is_detail) -				show_ip_ospf_neighbor_detail_sub( -					vty, oi, nbr, NULL, json, use_json); -			else -				show_ip_ospf_neighbour_brief(vty, nbr, NULL, -							     json, use_json); -		} +		nbr = ospf_nbr_lookup_by_routerid(oi->nbrs, router_id); + +		if (!nbr) +			continue; + +		if (is_detail) +			show_ip_ospf_neighbor_detail_sub(vty, oi, nbr, NULL, +							 json, use_json); +		else +			show_ip_ospf_neighbour_brief(vty, nbr, NULL, json, +						     use_json);  	}  	if (use_json) @@ -5498,16 +5504,19 @@ static int show_ip_ospf_neighbor_detail_common(struct vty *vty,  		struct ospf_neighbor *nbr, *prev_nbr = NULL;  		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { -			if ((nbr = rn->info)) { -				if (nbr != oi->nbr_self) { -					if (nbr->state != NSM_Down) { -						show_ip_ospf_neighbor_detail_sub( -							vty, oi, nbr, prev_nbr, -							json_nbr_sub, use_json); -					} +			nbr = rn->info; + +			if (!nbr) +				continue; + +			if (nbr != oi->nbr_self) { +				if (nbr->state != NSM_Down) { +					show_ip_ospf_neighbor_detail_sub( +						vty, oi, nbr, prev_nbr, +						json_nbr_sub, use_json);  				} -				prev_nbr = nbr;  			} +			prev_nbr = nbr;  		}  	} @@ -5668,27 +5677,29 @@ static int show_ip_ospf_neighbor_detail_all_common(struct vty *vty,  		struct ospf_nbr_nbma *nbr_nbma;  		for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { -			if ((nbr = rn->info)) { -				if (nbr != oi->nbr_self) -					if (nbr->state != NSM_Down) -						show_ip_ospf_neighbor_detail_sub( -							vty, oi, rn->info, -							prev_nbr, -							json_vrf, use_json); -				prev_nbr = nbr; -			} +			nbr = rn->info; + +			if (!nbr) +				continue; + +			if (nbr != oi->nbr_self) +				if (nbr->state != NSM_Down) +					show_ip_ospf_neighbor_detail_sub( +						vty, oi, rn->info, prev_nbr, +						json_vrf, use_json); +			prev_nbr = nbr;  		} -		if (oi->type == OSPF_IFTYPE_NBMA) { -			struct listnode *nd; +		if (oi->type != OSPF_IFTYPE_NBMA) +			continue; -			for (ALL_LIST_ELEMENTS_RO(oi->nbr_nbma, nd, nbr_nbma)) { -				if (nbr_nbma->nbr == NULL -				    || nbr_nbma->nbr->state == NSM_Down) -					show_ip_ospf_nbr_nbma_detail_sub( -						vty, oi, nbr_nbma, use_json, -						json_vrf); -			} +		struct listnode *nd; + +		for (ALL_LIST_ELEMENTS_RO(oi->nbr_nbma, nd, nbr_nbma)) { +			if (nbr_nbma->nbr == NULL || +			    nbr_nbma->nbr->state == NSM_Down) +				show_ip_ospf_nbr_nbma_detail_sub( +					vty, oi, nbr_nbma, use_json, json_vrf);  		}  	} @@ -5853,19 +5864,25 @@ static int show_ip_ospf_neighbor_int_detail_common(struct vty *vty,  	}  	for (rn = route_top(IF_OIFS(ifp)); rn; rn = route_next(rn)) { -		if ((oi = rn->info)) { -			for (nrn = route_top(oi->nbrs); nrn; -			     nrn = route_next(nrn)) { -				if ((nbr = nrn->info)) { -					if (nbr != oi->nbr_self) { -						if (nbr->state != NSM_Down) -							show_ip_ospf_neighbor_detail_sub( -								vty, oi, nbr, -								NULL, -								json, use_json); -					} -				} -			} +		oi = rn->info; + +		if (!oi) +			continue; + +		for (nrn = route_top(oi->nbrs); nrn; nrn = route_next(nrn)) { +			nbr = nrn->info; + +			if (!nbr) +				continue; + +			if (nbr == oi->nbr_self) +				continue; + +			if (nbr->state == NSM_Down) +				continue; + +			show_ip_ospf_neighbor_detail_sub(vty, oi, nbr, NULL, +							 json, use_json);  		}  	} @@ -8019,13 +8036,17 @@ static void ospf_nbr_timer_update(struct ospf_interface *oi)  	struct route_node *rn;  	struct ospf_neighbor *nbr; -	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) -		if ((nbr = rn->info)) { -			nbr->v_inactivity = OSPF_IF_PARAM(oi, v_wait); -			nbr->v_db_desc = OSPF_IF_PARAM(oi, retransmit_interval); -			nbr->v_ls_req = OSPF_IF_PARAM(oi, retransmit_interval); -			nbr->v_ls_upd = OSPF_IF_PARAM(oi, retransmit_interval); -		} +	for (rn = route_top(oi->nbrs); rn; rn = route_next(rn)) { +		nbr = rn->info; + +		if (!nbr) +			continue; + +		nbr->v_inactivity = OSPF_IF_PARAM(oi, v_wait); +		nbr->v_db_desc = OSPF_IF_PARAM(oi, retransmit_interval); +		nbr->v_ls_req = OSPF_IF_PARAM(oi, retransmit_interval); +		nbr->v_ls_upd = OSPF_IF_PARAM(oi, retransmit_interval); +	}  }  static int ospf_vty_dead_interval_set(struct vty *vty, const char *interval_str,  | 
