Commit 8ab866f1 authored by Timo Teräs's avatar Timo Teräs

main/opennhrp: add the forgotten patch

parent e801e98a
From 7747c86253114ed9702346a93587e4e6cac444aa Mon Sep 17 00:00:00 2001
From: David Ward <david.ward@ll.mit.edu>
Date: Tue, 29 Mar 2011 22:43:03 -0400
Subject: [PATCH] netlink: ignore kernel routes for GRE interfaces
The kernel route should not be added as a peer, except on shortcut-
destination interfaces. It can prevent NHRP resolution requests from
being routed correctly to a statically-configured next hop server.
Signed-off-by: David Ward <david.ward@ll.mit.edu>
---
nhrp/sysdep_netlink.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/nhrp/sysdep_netlink.c b/nhrp/sysdep_netlink.c
index a76acc2..e3e588b 100644
--- a/nhrp/sysdep_netlink.c
+++ b/nhrp/sysdep_netlink.c
@@ -691,7 +691,8 @@ static void netlink_route_new(struct nlmsghdr *msg)
} else if (iface->flags & NHRP_INTERFACE_FLAG_CONFIGURED) {
/* Routes which might get additional outbound
* shortcuts */
- if (rtm->rtm_table != iface->route_table)
+ if (rtm->rtm_table != iface->route_table ||
+ rtm->rtm_protocol == RTPROT_KERNEL)
return;
type = NHRP_PEER_TYPE_LOCAL_ROUTE;
}
@@ -728,12 +729,9 @@ static void netlink_route_del(struct nlmsghdr *msg)
if (rta[RTA_OIF] == NULL || rta[RTA_DST] == NULL)
return;
- /* Consider only routes from main table */
if (rtm->rtm_family != PF_INET)
return;
- /* Only consider routes for local interfaces that accept
- * shortcut connections */
iface = nhrp_interface_get_by_index(*(int*)RTA_DATA(rta[RTA_OIF]),
FALSE);
if (iface == NULL)
@@ -747,7 +745,8 @@ static void netlink_route_del(struct nlmsghdr *msg)
} else if (iface->flags & NHRP_INTERFACE_FLAG_CONFIGURED) {
/* Routes which might get additional outbound
* shortcuts */
- if (rtm->rtm_table != iface->route_table)
+ if (rtm->rtm_table != iface->route_table ||
+ rtm->rtm_protocol == RTPROT_KERNEL)
return;
type = NHRP_PEER_TYPE_LOCAL_ROUTE;
}
--
1.7.1
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment