Module Name: src
Committed By: dyoung
Date: Mon Nov 13 05:13:42 UTC 2006
Modified Files:
src/distrib/sets/lists/comp: mi
src/sbin/ifconfig: af_inet.c ifconfig.c
src/share/man/man9: Makefile
src/sys/net: if.c if.h route.c route.h rtsock.c
src/sys/netinet: Makefile files.netinet if_arp.c in.c in.h in_pcb.c
in_proto.c ip_output.c
src/sys/netinet6: in6.c nd6.c
src/sys/sys: sockio.h
Added Files:
src/share/man/man9: in_getifa.9
src/sys/netinet: in_ifattach.h in_selsrc.c in_selsrc.h
Log Message:
Add a source-address selection policy mechanism to the kernel.
Also, add ioctls SIOCGIFADDRPREF/SIOCSIFADDRPREF to get/set preference
numbers for addresses. Make ifconfig(8) set/display preference
numbers.
To activate source-address selection policies in your kernel, add
'options IPSELSRC' to your kernel configuration.
Miscellaneous changes in support of source-address selection:
1 Factor out some common code, producing rt_replace_ifa().
2 Abbreviate a for-loop with TAILQ_FOREACH().
3 Add the predicates on IPv4 addresses IN_LINKLOCAL() and
IN_PRIVATE(), that are true for link-local unicast
(169.254/16) and RFC1918 private addresses, respectively.
Add the predicate IN_ANY_LOCAL() that is true for link-local
unicast and multicast.
4 Add IPv4-specific interface attach/detach routines,
in_domifattach and in_domifdetach, which build #ifdef
IPSELSRC.
See in_getifa(9) for a more thorough description of source-address
selection policy.