diff options
author | paul <paul> | 2002-12-13 21:44:27 +0000 |
---|---|---|
committer | paul <paul> | 2002-12-13 21:44:27 +0000 |
commit | fdc64b8740747007d9fc8587f1ecbd4c4e2b50c0 (patch) | |
tree | 1dd622d1305d29f9d934406298dbb35bdc4eebf4 /ospfd/ospf_interface.c | |
parent | da773e4239ae3046bfe66b53a3f32b4948ff5724 (diff) | |
download | quagga-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_interface.c')
-rw-r--r-- | ospfd/ospf_interface.c | 17 |
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; |