diff options
author | ae <ae@FreeBSD.org> | 2014-08-13 15:48:10 +0000 |
---|---|---|
committer | ae <ae@FreeBSD.org> | 2014-08-13 15:48:10 +0000 |
commit | 809079ca2d0f37321b8134409f4286d4c505caac (patch) | |
tree | dc6cfb1302dd9e29eef559c7a94374c8388b5fd6 | |
parent | 2a5e29a8c24212bb1fb76f2d0bf1cb3cc92fcd9c (diff) | |
download | FreeBSD-src-809079ca2d0f37321b8134409f4286d4c505caac.zip FreeBSD-src-809079ca2d0f37321b8134409f4286d4c505caac.tar.gz |
MFC r269306:
Add new rule to source address selection algorithm. It prefers address
with better virtual status. Use ifa_preferred() to choose better address.
PR: 187341
-rw-r--r-- | sys/netinet6/in6_src.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/netinet6/in6_src.c b/sys/netinet6/in6_src.c index 7590fa1..1458cba 100644 --- a/sys/netinet6/in6_src.c +++ b/sys/netinet6/in6_src.c @@ -443,6 +443,12 @@ in6_selectsrc(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, REPLACE(8); /* + * Rule 9: prefer address with better virtual status. + */ + if (ifa_preferred(&ia_best->ia_ifa, &ia->ia_ifa)) + REPLACE(9); + + /* * Rule 14: Use longest matching prefix. * Note: in the address selection draft, this rule is * documented as "Rule 8". However, since it is also |