cvs commit: src/sys/conf files options src/sys/net radix.c radix.h route.c route.h rtsock.c src/sys/netinet in_proto.c ip_output.c src/sys/netinet6 in6_proto.c in6_src.c nd6_nbr.c

Rui Paulo rpaulo at FreeBSD.org
Sun Apr 13 14:34:45 UTC 2008


On Sun, Apr 13, 2008 at 05:45:14AM +0000, Qing Li wrote:
> qingli      2008-04-13 05:45:14 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/conf             files options 
>     sys/net              radix.c radix.h route.c route.h rtsock.c 
>     sys/netinet          in_proto.c ip_output.c 
>     sys/netinet6         in6_proto.c in6_src.c nd6_nbr.c 
>   Log:
>   This patch provides the back end support for equal-cost multi-path
>   (ECMP) for both IPv4 and IPv6. Previously, multipath route insertion
>   is disallowed. For example,
>   
>           route add -net 192.103.54.0/24 10.9.44.1
>           route add -net 192.103.54.0/24 10.9.44.2
>   
>   The second route insertion will trigger an error message of
>   "add net 192.103.54.0/24: gateway 10.2.5.2: route already in table"
>   
>   Multiple default routes can also be inserted. Here is the netstat
>   output:
>   
>   default         10.2.5.1        UGS     0       3074    bge0 =>
>   default         10.2.5.2        UGS     0       0       bge0
>   
>   When multipath routes exist, the "route delete" command requires
>   a specific gateway to be specified or else an error message would
>   be displayed. For example,
>   
>           route delete default
>   
>   would fail and trigger the following error message:
>   
>   "route: writing to routing socket: No such process"
>   "delete net default: not in table"
>   
>   On the other hand,
>   
>           route delete default 10.2.5.2
>   
>   would be successful: "delete net default: gateway 10.2.5.2"
>   
>   One does not have to specify a gateway if there is only a single
>   route for a particular destination.
>   
>   I need to perform more testings on address aliases and multiple
>   interfaces that have the same IP prefixes. This patch as it
>   stands today is not yet ready for prime time. Therefore, the ECMP
>   code fragments are fully guarded by the RADIX_MPATH macro.
>   Include the "options  RADIX_MPATH" in the kernel configuration
>   to enable this feature.
>   
>   Reviewed by:    robert, sam, gnn, julian, kmacy
>   
>   Revision  Changes    Path
>   1.1289    +1 -0      src/sys/conf/files
>   1.625     +1 -0      src/sys/conf/options
>   1.39      +22 -0     src/sys/net/radix.c
>   1.27      +1 -0      src/sys/net/radix.h
>   1.127     +121 -1    src/sys/net/route.c
>   1.69      +3 -0      src/sys/net/route.h
>   1.145     +20 -0     src/sys/net/rtsock.c
>   1.88      +8 -0      src/sys/netinet/in_proto.c
>   1.280     +9 -0      src/sys/netinet/ip_output.c
>   1.49      +8 -0      src/sys/netinet6/in6_proto.c
>   1.50      +9 -0      src/sys/netinet6/in6_src.c
>   1.50      +14 -0     src/sys/netinet6/nd6_nbr.c


Great work, thanks!

-- 
Rui Paulo


More information about the cvs-src mailing list