diff options
-rw-r--r-- | ospfd/ChangeLog | 8 | ||||
-rw-r--r-- | ospfd/ospf_abr.c | 3 | ||||
-rw-r--r-- | ospfd/ospf_zebra.c | 3 | ||||
-rw-r--r-- | ospfd/ospfd.c | 10 |
4 files changed, 20 insertions, 4 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 904228c1..87a55111 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,11 @@ +2004-04-20 Hasso Tepper <hasso@estpak.ee> + + * ospfd.c: Unset NP flag if area is going to be normal or stub. + Fixes UNH OSPF_NSSA.1.2a comment. + * ospf_abr.c: Originate default into stub/nssa area even if + summaries are disabled. + * ospf_zebra.c: Don't attempt to redistribute 127.0.0.0/8. + 2004-04-19 Hasso Tepper <hasso@estpak.ee> * ospf_vty.c: Don't warn that export- and import-list can't be diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c index 424d1d31..359e3bac 100644 --- a/ospfd/ospf_abr.c +++ b/ospfd/ospf_abr.c @@ -1628,9 +1628,6 @@ ospf_abr_announce_stub_defaults (struct ospf *ospf) if (OSPF_IS_AREA_BACKBONE (area)) continue; /* Sanity Check */ - if (area->no_summary) - continue; - if (IS_DEBUG_OSPF_EVENT) zlog_info ("ospf_abr_announce_stub_defaults(): " "announcing 0.0.0.0/0 to area %s", diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c index e3738bed..300105f4 100644 --- a/ospfd/ospf_zebra.c +++ b/ospfd/ospf_zebra.c @@ -794,6 +794,9 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient, p.prefixlen = stream_getc (s); stream_get (&p.prefix, s, PSIZE (p.prefixlen)); + if (IPV4_NET127(ntohl(p.prefix.s_addr))) + return 0; + /* Nexthop, ifindex, distance, metric. */ if (CHECK_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP)) { diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index 89ef21b1..abf898ca 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -982,7 +982,12 @@ ospf_area_type_set (struct ospf_area *area, int type) for (node = listhead (area->oiflist); node; nextnode (node)) if ((oi = getdata (node)) != NULL) if (oi->nbr_self != NULL) - SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E); + { +#ifdef HAVE_NSSA + UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP); +#endif /* HAVE_NSSA */ + SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E); + } break; case OSPF_AREA_STUB: for (node = listhead (area->oiflist); node; nextnode (node)) @@ -991,6 +996,9 @@ ospf_area_type_set (struct ospf_area *area, int type) { if (IS_DEBUG_OSPF_EVENT) zlog_info ("setting options on %s accordingly", IF_NAME (oi)); +#ifdef HAVE_NSSA + UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP); +#endif /* HAVE_NSSA */ UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E); if (IS_DEBUG_OSPF_EVENT) zlog_info ("options set on %s: %x", |