summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_flood.c
diff options
context:
space:
mode:
authorpaul <paul>2002-12-13 21:44:27 +0000
committerpaul <paul>2002-12-13 21:44:27 +0000
commitfdc64b8740747007d9fc8587f1ecbd4c4e2b50c0 (patch)
tree1dd622d1305d29f9d934406298dbb35bdc4eebf4 /ospfd/ospf_flood.c
parentda773e4239ae3046bfe66b53a3f32b4948ff5724 (diff)
downloadquagga-patch.z16681.ospfd.nssa.tar.bz2
quagga-patch.z16681.ospfd.nssa.tar.xz
Kevin C Miller <kevinm@andrew.cmu.edu>patch.z16681.ospfd.nssa
[zebra 16681] OSPF NSSA Patches
Diffstat (limited to 'ospfd/ospf_flood.c')
-rw-r--r--ospfd/ospf_flood.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index bd33c345..00a4c644 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -622,6 +622,7 @@ ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
{
listnode node;
int lsa_ack_flag;
+ struct as_external_lsa *extlsa;
lsa_ack_flag = 0;
@@ -646,6 +647,7 @@ ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
{
int continue_flag = 0;
struct ospf_area *area = getdata (node);
+ struct in_addr fwd;
listnode if_node;
switch (area->external_routing)
@@ -657,11 +659,13 @@ ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
case OSPF_AREA_NSSA: /* Sending Type 5 or 7 into NSSA area */
#ifdef HAVE_NSSA
/* Type-7, flood NSSA area */
- if (lsa->data->type == OSPF_AS_NSSA_LSA)
+ if (lsa->data->type == OSPF_AS_NSSA_LSA &&
+ area == lsa->area) {
/* We will send it. */
continue_flag = 0;
- else
+ } else {
continue_flag = 1; /* Skip this NSSA area for Type-5's et al */
+ }
break;
#endif /* HAVE_NSSA */