diff options
author | paul <paul> | 2002-12-13 21:44:27 +0000 |
---|---|---|
committer | paul <paul> | 2002-12-13 21:44:27 +0000 |
commit | f2c806522030d4964b4ca649637a7901751d8496 (patch) | |
tree | 0a33c81dbbf280beb2193144b5b39b703f3ca102 /ospfd/ospf_interface.c | |
parent | b92938a7364d220f2ca6d77a5722433159520e02 (diff) | |
download | quagga-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.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; |