From eff4c4aa6e56e3f6727c97b8ebb16a10e66e0a15 Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 3 Feb 2003 16:31:14 +0000 Subject: Import of Zebra CVS 20030203-16:30 --- ospfd/ospf_lsa.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'ospfd/ospf_lsa.c') diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c index 5b63a76d..56c1e990 100644 --- a/ospfd/ospf_lsa.c +++ b/ospfd/ospf_lsa.c @@ -2306,6 +2306,11 @@ ospf_lsa_install (struct ospf_interface *oi, struct ospf_lsa *lsa) break; #ifdef HAVE_OPAQUE_LSA case OSPF_OPAQUE_LINK_LSA: + if (IS_LSA_SELF (lsa)) + lsa->oi = oi; /* Specify outgoing ospf-interface for this LSA. */ + else + ; /* Incoming "oi" for this LSA has set at LSUpd reception. */ + /* Fallthrough */ case OSPF_OPAQUE_AREA_LSA: case OSPF_OPAQUE_AS_LSA: new = ospf_opaque_lsa_install (lsa, rt_recalc); @@ -2537,10 +2542,21 @@ ospf_lsa_maxage_walker_remover (struct ospf_lsa *lsa, void *p_arg, int int_arg) switch (lsa->data->type) { - case OSPF_AS_EXTERNAL_LSA: #ifdef HAVE_OPAQUE_LSA + case OSPF_OPAQUE_LINK_LSA: + case OSPF_OPAQUE_AREA_LSA: case OSPF_OPAQUE_AS_LSA: + /* + * As a general rule, whenever network topology has changed + * (due to an LSA removal in this case), routing recalculation + * should be triggered. However, this is not true for opaque + * LSAs. Even if an opaque LSA instance is going to be removed + * from the routing domain, it does not mean a change in network + * topology, and thus, routing recalculation is not needed here. + */ + break; #endif /* HAVE_OPAQUE_LSA */ + case OSPF_AS_EXTERNAL_LSA: ospf_ase_incremental_update (lsa, ospf_top); break; default: -- cgit v1.2.3