diff options
Diffstat (limited to 'ospfd')
| -rw-r--r-- | ospfd/ospf_asbr.c | 3 | ||||
| -rw-r--r-- | ospfd/ospf_main.c | 2 | ||||
| -rw-r--r-- | ospfd/ospf_packet.c | 15 | ||||
| -rw-r--r-- | ospfd/ospf_ri.c | 15 | ||||
| -rw-r--r-- | ospfd/ospf_te.c | 4 | 
5 files changed, 23 insertions, 16 deletions
diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c index 5baad1754d..9b62f36d7a 100644 --- a/ospfd/ospf_asbr.c +++ b/ospfd/ospf_asbr.c @@ -110,7 +110,8 @@ ospf_external_info_add(struct ospf *ospf, uint8_t type, unsigned short instance,  		new = rn->info;  		if ((new->ifindex == ifindex)  		    && (new->nexthop.s_addr == nexthop.s_addr) -		    && (new->tag == tag)) { +		    && (new->tag == tag) +		    && (new->metric == metric)) {  			route_unlock_node(rn);  			return NULL; /* NULL => no LSA to refresh */  		} diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c index 6a4a9a1481..abad6c5b90 100644 --- a/ospfd/ospf_main.c +++ b/ospfd/ospf_main.c @@ -134,6 +134,8 @@ static const struct frr_yang_module_info *const ospfd_yang_modules[] = {  	&frr_route_map_info,  	&frr_vrf_info,  	&frr_ospf_route_map_info, +	&ietf_key_chain_info, +	&ietf_key_chain_deviation_info,  };  /* actual paths filled in main() */ diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index 4bf4ae9597..861b4e022a 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -1486,12 +1486,8 @@ static void ospf_ls_req(struct ip *iph, struct ospf_header *ospfh,  		/* Packet overflows MTU size, send immediately. */  		if (length + ntohs(find->data->length) > ospf_packet_max(oi)) { -			if (oi->type == OSPF_IFTYPE_NBMA) -				ospf_ls_upd_send(nbr, ls_upd, -						 OSPF_SEND_PACKET_DIRECT, 0); -			else -				ospf_ls_upd_send(nbr, ls_upd, -						 OSPF_SEND_PACKET_INDIRECT, 0); +			ospf_ls_upd_send(nbr, ls_upd, +					 OSPF_SEND_PACKET_DIRECT, 0);  			/* Only remove list contents.  Keep ls_upd. */  			list_delete_all_node(ls_upd); @@ -1508,12 +1504,7 @@ static void ospf_ls_req(struct ip *iph, struct ospf_header *ospfh,  	/* Send rest of Link State Update. */  	if (listcount(ls_upd) > 0) { -		if (oi->type == OSPF_IFTYPE_NBMA) -			ospf_ls_upd_send(nbr, ls_upd, OSPF_SEND_PACKET_DIRECT, -					 0); -		else -			ospf_ls_upd_send(nbr, ls_upd, OSPF_SEND_PACKET_INDIRECT, -					 0); +		ospf_ls_upd_send(nbr, ls_upd, OSPF_SEND_PACKET_DIRECT, 0);  		list_delete(&ls_upd);  	} else diff --git a/ospfd/ospf_ri.c b/ospfd/ospf_ri.c index 99326b41b3..dbe44f7be4 100644 --- a/ospfd/ospf_ri.c +++ b/ospfd/ospf_ri.c @@ -1784,11 +1784,10 @@ static void ospf_router_info_schedule(enum lsa_opcode opcode)  DEFUN (router_info,         router_info_area_cmd, -       "router-info <as|area [A.B.C.D]>", +       "router-info <as|area>",         OSPF_RI_STR         "Enable the Router Information functionality with AS flooding scope\n" -       "Enable the Router Information functionality with Area flooding scope\n" -       "OSPF area ID in IP format (deprecated)\n") +       "Enable the Router Information functionality with Area flooding scope\n")  {  	int idx_mode = 1;  	uint8_t scope; @@ -1844,6 +1843,15 @@ DEFUN (router_info,  	return CMD_SUCCESS;  } +#if CONFDATE > 20240809 +CPP_NOTICE("Drop deprecated router_info_area_id_cmd") +#endif +ALIAS_HIDDEN (router_info, +              router_info_area_id_cmd, +              "router-info area A.B.C.D", +              OSPF_RI_STR +              "Enable the Router Information functionality with Area flooding scope\n" +              "OSPF area ID in IP format (deprecated)\n")  DEFUN (no_router_info,         no_router_info_cmd, @@ -2239,6 +2247,7 @@ static void ospf_router_info_register_vty(void)  	install_element(VIEW_NODE, &show_ip_ospf_router_info_pce_cmd);  	install_element(OSPF_NODE, &router_info_area_cmd); +	install_element(OSPF_NODE, &router_info_area_id_cmd);  	install_element(OSPF_NODE, &no_router_info_cmd);  	install_element(OSPF_NODE, &pce_address_cmd);  	install_element(OSPF_NODE, &no_pce_address_cmd); diff --git a/ospfd/ospf_te.c b/ospfd/ospf_te.c index a55a37a907..359dc1f5d4 100644 --- a/ospfd/ospf_te.c +++ b/ospfd/ospf_te.c @@ -2246,6 +2246,10 @@ static int ospf_te_parse_te(struct ls_ted *ted, struct ospf_lsa *lsa)  	}  	/* Get corresponding Edge from Link State Data Base */ +	if (IPV4_NET0(attr.standard.local.s_addr) && !attr.standard.local_id) { +		ote_debug("  |- Found no TE Link local address/ID. Abort!"); +		return -1; +	}  	edge = get_edge(ted, attr.adv, attr.standard.local);  	old = edge->attributes;  | 
