It appears that SIOCSIFDSTADDR should not be allowed upon an AF_INET6 socket as well.
>From netbsd: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/netinet6/in6.c?annotate=1.166&only_with_tag=MAIN 1.2 itojun 374: switch (cmd) { 1.104 christos 375: /* 1.105 christos 376: * XXX: Fix me, once we fix SIOCSIFADDR, SIOCIFDSTADDR, etc. 1.104 christos 377: */ 378: case SIOCSIFADDR: 1.105 christos 379: case SIOCSIFDSTADDR: 1.129 cube 380: #ifdef SIOCSIFCONF_X25 1.106 christos 381: case SIOCSIFCONF_X25: 1.110 matt 382: #endif 1.104 christos 383: return EOPNOTSUPP; diff: Index: sys/netinet6/in6.c =================================================================== RCS file: /cvs/src/sys/netinet6/in6.c,v retrieving revision 1.117 diff -u -p -r1.117 in6.c --- sys/netinet6/in6.c 13 Aug 2013 05:52:25 -0000 1.117 +++ sys/netinet6/in6.c 21 Aug 2013 15:50:00 -0000 @@ -429,8 +429,9 @@ in6_control(struct socket *so, u_long cm sa6 = &ifr->ifr_addr; break; case SIOCSIFADDR: + case SIOCSIFDSTADDR: /* - * Do not pass this ioctl to driver handler since it is not + * Do not pass those ioctl to driver handler since they are not * properly setup. Instead just error out. */ return (EOPNOTSUPP);