From 910e2704bee6bf78aee858db65f5393be618e683 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Wed, 20 Aug 2008 14:24:39 +0200 Subject: Ignore host routes to self. PtP links with /32 masks adds host routes to the remote host, see RFC 2328, 12.4.1.1, Option 1. Make sure that such routes are ignored --- ospfd/ospf_spf.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c index 23d45dd6..15d27be7 100644 --- a/ospfd/ospf_spf.c +++ b/ospfd/ospf_spf.c @@ -981,7 +981,21 @@ ospf_spf_process_stubs (struct ospf_area *area, struct vertex *v, (l->m[0].tos_count * ROUTER_LSA_TOS_SIZE)); if (l->m[0].type == LSA_LINK_TYPE_STUB) - ospf_intra_add_stub (rt, l, v, area); + { + /* PtP links with /32 masks adds host routes to the remote host, + see RFC 2328, 12.4.1.1, Option 1. + Make sure that such routes are ignored */ + /* XXX: Change to breadth-first and avoid the lookup */ + if (l->link_data.s_addr == 0xffffffff && + ospf_if_lookup_by_local_addr (area->ospf, NULL, l->link_id)) + { + if (IS_DEBUG_OSPF_EVENT) + zlog_debug ("ospf_spf_process_stubs(): ignoring host route " + "%s/32 to self.", inet_ntoa (l->link_id)); + continue; + } + ospf_intra_add_stub (rt, l, v, area); + } } } -- cgit v1.2.1