From owner-cvs-src-old@FreeBSD.ORG Fri Apr 2 05:03:36 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E4B0D1065679 for ; Fri, 2 Apr 2010 05:03:36 +0000 (UTC) (envelope-from qingli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D1E058FC14 for ; Fri, 2 Apr 2010 05:03:36 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3253aCQ086436 for ; Fri, 2 Apr 2010 05:03:36 GMT (envelope-from qingli@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3253aZT086435 for cvs-src-old@freebsd.org; Fri, 2 Apr 2010 05:03:36 GMT (envelope-from qingli@repoman.freebsd.org) Message-Id: <201004020503.o3253aZT086435@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to qingli@repoman.freebsd.org using -f From: Qing Li Date: Fri, 2 Apr 2010 05:02:50 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/sys/net flowtable.c radix.c radix_mpath.c route.c route.h src/sys/netinet in.c ip_output.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2010 05:03:37 -0000 qingli 2010-04-02 05:02:50 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) sys/net flowtable.c radix.c radix_mpath.c route.c route.h sys/netinet in.c ip_output.c Log: SVN rev 206067 on 2010-04-02 05:02:50Z by qingli MFC 204902 One of the advantages of enabling ECMP (a.k.a RADIX_MPATH) is to allow for connection load balancing across interfaces. Currently the address alias handling method is colliding with the ECMP code. For example, when two interfaces are configured on the same prefix, only one prefix route is installed. So connection load balancing among the available interfaces is not possible. The other advantage of ECMP is for failover. The issue with the current code, is that the interface link-state is not reflected in the route entry. For example, if there are two interfaces on the same prefix, the cable on one interface is unplugged, new and existing connections should switch over to the other interface. This is not done today and packets go into a black hole. Also, there is a small bug in the kernel where deleting ECMP routes in the userland will always return an error even though the command is successfully executed. Revision Changes Path 1.15.2.13 +2 -1 src/sys/net/flowtable.c 1.42.2.3 +2 -0 src/sys/net/radix.c 1.10.2.2 +2 -1 src/sys/net/radix_mpath.c 1.167.2.7 +30 -8 src/sys/net/route.c 1.85.2.3 +2 -0 src/sys/net/route.h 1.143.2.14 +8 -0 src/sys/netinet/in.c 1.314.2.8 +5 -1 src/sys/netinet/ip_output.c