FreeBSD 6 has is as part of the standard getaddrinfo() implementation.
% grep -r in6_addrpolicy /usr/src/lib/libc
/usr/src/lib/libc/net/getaddrinfo.c: struct in6_addrpolicy pc_policy;
/usr/src/lib/libc/net/getaddrinfo.c: struct in6_addrpolicy *pol, *ep;
/usr/src/lib/libc/net/getaddrinfo.c: ep = (struct in6_addrpolicy *)(buf + l);
/usr/src/lib/libc/net/getaddrinfo.c: for (pol = (struct in6_addrpolicy *)buf; pol + 1 <= ep; pol++) {
/usr/src/lib/libc/net/getaddrinfo.c: struct in6_addrpolicy *pol;
/usr/src/lib/libc/net/name6.c: struct in6_addrpolicy pc_policy;
/usr/src/lib/libc/net/name6.c: struct in6_addrpolicy *pol, *ep;
/usr/src/lib/libc/net/name6.c: ep = (struct in6_addrpolicy *)(buf + l);
/usr/src/lib/libc/net/name6.c: for (pol = (struct in6_addrpolicy *)buf; pol + 1 <= ep; pol++) {
/usr/src/lib/libc/net/name6.c: struct in6_addrpolicy *pol;
%