summaryrefslogtreecommitdiffstats
path: root/proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto')
-rw-r--r--proto/ospf/ospf.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
index 55696bd..3fc3f60 100644
--- a/proto/ospf/ospf.c
+++ b/proto/ospf/ospf.c
@@ -542,6 +542,22 @@ ospf_reconfigure(struct proto *p, struct proto_config *c)
schedule_rt_lsa(ifa->oa);
}
+ /* strict nbma */
+ if((ip1->strictnbma==0)&&(ip2->strictnbma!=0))
+ {
+ ifa->strictnbma=ip2->strictnbma;
+ OSPF_TRACE(D_EVENTS,
+ "Interface %s is now strict NBMA",
+ ifa->iface->name);
+ }
+ if((ip1->strictnbma!=0)&&(ip2->strictnbma==0))
+ {
+ ifa->strictnbma=ip2->strictnbma;
+ OSPF_TRACE(D_EVENTS,
+ "Interface %s is no longer strict NBMA",
+ ifa->iface->name);
+ }
+
/* AUTHETICATION */
if(ip1->autype!=ip2->autype)
{
@@ -605,6 +621,10 @@ ospf_reconfigure(struct proto *p, struct proto_config *c)
if(ipa_compare(nb1->ip,nb2->ip)==0)
{
found=1;
+ if(nb1->eligible!=nb2->eligible)
+ OSPF_TRACE(D_EVENTS,
+ "Changing neighbor eligibility %I on interface %s",
+ nb1->ip,ifa->iface->name);
break;
}
@@ -631,6 +651,7 @@ ospf_reconfigure(struct proto *p, struct proto_config *c)
{
nb1=mb_alloc(p->pool,sizeof(struct nbma_node));
nb1->ip=nb2->ip;
+ nb1->eligible=nb2->eligible;
add_tail(&ifa->nbma_list, NODE nb1);
OSPF_TRACE(D_EVENTS,
"Adding NBMA neighbor %I on interface %s",