summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_interface.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_interface.c
parentb92938a7364d220f2ca6d77a5722433159520e02 (diff)
downloadquagga-f2c806522030d4964b4ca649637a7901751d8496.tar.bz2
quagga-f2c806522030d4964b4ca649637a7901751d8496.tar.xz
Kevin C Miller <kevinm@andrew.cmu.edu>patch_z16681_ospfd_nssa
[zebra 16681] OSPF NSSA Patches
Diffstat (limited to 'ospfd/ospf_interface.c')
-rw-r--r--ospfd/ospf_interface.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index ddae9800..f0300273 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -257,7 +257,22 @@ ospf_if_cleanup (struct ospf_interface *oi)
oi->nbr_self = ospf_nbr_new (oi);
oi->nbr_self->state = NSM_TwoWay;
oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
- oi->nbr_self->options = OSPF_OPTION_E;
+
+ switch (oi->area->external_routing)
+ {
+ case OSPF_AREA_DEFAULT:
+ SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+ break;
+ case OSPF_AREA_STUB:
+ UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+ break;
+#ifdef HAVE_NSSA
+ case OSPF_AREA_NSSA:
+ UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+ SET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
+ break;
+#endif /* HAVE_NSSA */
+ }
ospf_lsa_unlock (oi->network_lsa_self);
oi->network_lsa_self = NULL;