summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhasso <hasso>2003-05-29 22:18:15 +0000
committerhasso <hasso>2003-05-29 22:18:15 +0000
commit16bd8540a9cff520b702edc78353351e612a4e52 (patch)
tree803563a229bbe31ab3c1220889db5946dd4869a0
parent320413318b85fca8e6fd5893aa8dc6519b735865 (diff)
downloadquagga-merge.zprivs.head.3.tar.bz2
quagga-merge.zprivs.head.3.tar.xz
Commit my hack to fix options mismatch in NSSA area DD packets. It shouln'tmerge.zprivs.head.3
harm, but of course ... it is hack.
-rw-r--r--ospfd/ospf_packet.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 15caee44..2b1033ba 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -1018,7 +1018,17 @@ ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
oi->db_desc_in++;
dd = (struct ospf_db_desc *) STREAM_PNT (s);
-
+#ifdef HAVE_NSSA
+ /*
+ * XXX HACK by Hasso Tepper. Setting P bit in NSSA area DD packets is not
+ * required. In fact at least JunOS sends DD packets with P bit clear.
+ * Until proper solution is developped, this hack should help.
+ */
+ if (oi->area->external_routing == OSPF_AREA_NSSA)
+ {
+ dd->options = (dd->options | ((short)(8)));
+ }
+#endif /* HAVE_NSSA */
nbr = ospf_nbr_lookup_by_addr (oi->nbrs, &iph->ip_src);
if (nbr == NULL)
{