summaryrefslogtreecommitdiff
path: root/proto/ospf/ospf.c
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2019-02-13 15:40:22 +0100
committerOndrej Zajicek (work) <santiago@crfreenet.org>2019-02-13 15:53:36 +0100
commit4a3f5b36173299d44e26dc18db4e5d103875f8c4 (patch)
tree32dc2a83fb27d8d52a2dacba28edf295575aa520 /proto/ospf/ospf.c
parent1e958e52d3ef0c38e5fb5e673bcce95d1c28ac0e (diff)
OSPF: Basic support for DN-bit handling (RFC 4576)
External LSAs originated by OSPF routers with VPN-PE behavior enabled are marked by DN flag and they are ignored by other OSPF routers with VPN-PE enabled.
Diffstat (limited to 'proto/ospf/ospf.c')
-rw-r--r--proto/ospf/ospf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
index 73500604..4fdcac58 100644
--- a/proto/ospf/ospf.c
+++ b/proto/ospf/ospf.c
@@ -92,6 +92,7 @@
* - RFC 2328 - main OSPFv2 standard
* - RFC 5340 - main OSPFv3 standard
* - RFC 3101 - OSPFv2 NSSA areas
+ * - RFC 4576 - OSPFv2 VPN loop prevention
* - RFC 5250 - OSPFv2 Opaque LSAs
* - RFC 5709 - OSPFv2 HMAC-SHA Cryptographic Authentication
* - RFC 5838 - OSPFv3 Support of Address Families
@@ -243,6 +244,7 @@ ospf_start(struct proto *P)
p->merge_external = c->merge_external;
p->instance_id = c->instance_id;
p->asbr = c->asbr;
+ p->vpn_pe = c->vpn_pe;
p->ecmp = c->ecmp;
p->tick = c->tick;
p->disp_timer = tm_new_init(P->pool, ospf_disp, p, p->tick S, 0);
@@ -657,6 +659,9 @@ ospf_reconfigure(struct proto *P, struct proto_config *CF)
if (old->abr != new->abr)
return 0;
+ if (old->vpn_pe != new->vpn_pe)
+ return 0;
+
if ((p->af_ext != new->af_ext) || (p->af_mc != new->af_mc))
return 0;