summaryrefslogtreecommitdiff
path: root/ospfd/ospf_nsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_nsm.c')
-rw-r--r--ospfd/ospf_nsm.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c
index cfb18a98..57303570 100644
--- a/ospfd/ospf_nsm.c
+++ b/ospfd/ospf_nsm.c
@@ -229,6 +229,26 @@ ospf_db_summary_add (struct ospf_lsa *lsa, void *v, int i)
if (lsa == NULL)
return 0;
+#ifdef HAVE_OPAQUE_LSA
+ switch (lsa->data->type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ /* Exclude type-9 LSAs that does not have the same "oi" with "nbr". */
+ if (lsa->oi != nbr->oi)
+ return 0;
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ /*
+ * It is assured by the caller function "nsm_negotiation_done()"
+ * that every given LSA belongs to the same area with "nbr".
+ */
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ default:
+ break;
+ }
+#endif /* HAVE_OPAQUE_LSA */
+
#ifdef HAVE_NSSA
/* Stay away from any Local Translated Type-7 LSAs */
if (CHECK_FLAG (lsa->flags, OSPF_LSA_LOCAL_XLT))