changeset 879:9f64559fd01d

6331032 in.routed deletes aggregated passive routes through remote gateways
author bw
date Thu, 10 Nov 2005 08:07:43 -0800
parents 964ddd439490
children 0f8e93fcf632
files usr/src/cmd/cmd-inet/usr.sbin/in.routed/table.c
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/cmd-inet/usr.sbin/in.routed/table.c	Thu Nov 10 07:14:29 2005 -0800
+++ b/usr/src/cmd/cmd-inet/usr.sbin/in.routed/table.c	Thu Nov 10 08:07:43 2005 -0800
@@ -1940,8 +1940,16 @@
 		 * If it is a "remote" interface, it is also a "gateway" to
 		 * the kernel if is not a alias.
 		 */
-		if (RT->rt_ifp == NULL || (RT->rt_ifp->int_state & IS_REMOTE))
-			ags |= (AGS_GATEWAY | AGS_SUPPRESS | AGS_AGGREGATE);
+		if (RT->rt_ifp == NULL || (RT->rt_ifp->int_state & IS_REMOTE)) {
+
+			ags |= (AGS_GATEWAY | AGS_SUPPRESS);
+
+			/*
+			 * Do not aggregate IS_PASSIVE routes.
+			 */
+			if (!(RT->rt_ifp->int_state & IS_PASSIVE))
+				ags |= AGS_AGGREGATE;
+		}
 	}
 
 	metric = RT->rt_metric;