summaryrefslogtreecommitdiff
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
commitf2c806522030d4964b4ca649637a7901751d8496 (patch)
tree0a33c81dbbf280beb2193144b5b39b703f3ca102 /ospfd/ospf_flood.c
parentb92938a7364d220f2ca6d77a5722433159520e02 (diff)
Kevin C Miller <kevinm@andrew.cmu.edu>
[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 */