summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/ip/ip6_asp.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/inet/ip/ip6_asp.c')
-rw-r--r--usr/src/uts/common/inet/ip/ip6_asp.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/usr/src/uts/common/inet/ip/ip6_asp.c b/usr/src/uts/common/inet/ip/ip6_asp.c
index d54e821359..5c499e6526 100644
--- a/usr/src/uts/common/inet/ip/ip6_asp.c
+++ b/usr/src/uts/common/inet/ip/ip6_asp.c
@@ -19,12 +19,10 @@
* CDDL HEADER END
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ksynch.h>
@@ -41,6 +39,7 @@
#include <inet/ip6.h>
#include <inet/ip6_asp.h>
#include <inet/ip_ire.h>
+#include <inet/ip_if.h>
#include <inet/ipclassifier.h>
#define IN6ADDR_MASK128_INIT \
@@ -415,18 +414,13 @@ ip6_asp_replace(mblk_t *mp, ip6_asp_t *new_table, size_t new_size,
ipst->ips_ip6_asp_table = tmp_table;
ipst->ips_ip6_asp_table_count = count;
- /*
- * The user has changed the address selection policy table. IPv6
- * source address selection for existing IRE_CACHE and
- * RTF_DYNAMIC entries used the old table, so we need to
- * clear the cache.
- */
- ire_walk_v6(ire_delete_cache_v6, NULL, ALL_ZONES, ipst);
-
unlock_end:
ipst->ips_ip6_asp_uip = B_FALSE;
mutex_exit(&ipst->ips_ip6_asp_lock);
+ /* Let conn_ixa caching know that source address selection changed */
+ ip_update_source_selection(ipst);
+
replace_end:
/* Reply to the ioctl */
q = (queue_t *)mp->b_prev;