summaryrefslogtreecommitdiff
path: root/proto/ospf/lsalib.c
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2019-07-10 18:25:36 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2019-07-10 18:25:36 +0200
commit1aec7112f7314c3e9a4d8b9440dd85a782295310 (patch)
tree0a48e1eeb5a43c8905fbb1b779e2f487fc2b5aad /proto/ospf/lsalib.c
parent422a9334294dd9a5b13abd8563a3dc7233e64b13 (diff)
OSPF: Fix handling of NSSA option flags
Per RFC 3101, N-bit signalling NSSA support should be used only in Hello packets, not in DBDES packets. BIRD since 2.0.4 verifies N-bit in neighbor structure, which is learned from DBDES packets, therefore NSSA-LSAs are not propagated to proper implementations of RFC 3101. This patch fixes that. Both removing the check and removing N-bit from DBDES packet. This will fix compatibility issues with proper implementations, but causes compatibility issues with BIRD 2.0.4.
Diffstat (limited to 'proto/ospf/lsalib.c')
-rw-r--r--proto/ospf/lsalib.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c
index 7767700f..7aae96ba 100644
--- a/proto/ospf/lsalib.c
+++ b/proto/ospf/lsalib.c
@@ -98,8 +98,7 @@ lsa_is_acceptable(u32 type, struct ospf_neighbor *n, struct ospf_proto *p)
{
if (ospf_is_v2(p))
{
- if (type == LSA_T_NSSA)
- return !!(n->options & OPT_N);
+ /* Do not check NSSA-LSA here, as OPT_N is only in HELLO packets */
if (lsa_is_opaque(type))
return !!(n->options & OPT_O);