Lines Matching refs:fin

437 /* Parameters:  fin(I) - pointer to packet information                      */
448 ipf_nat6_newmap(fr_info_t *fin, nat_t *nat, natinfo_t *ni)
450 ipf_main_softc_t *softc = fin->fin_main_soft;
472 sport = fin->fin_data[1];
475 sport = htons(fin->fin_data[0]);
476 dport = htons(fin->fin_data[1]);
492 hm = ipf_nat6_hostmap(softn, np, &fin->fin_src6,
493 &fin->fin_dst6, &in, 0);
515 temp.i6[0] = fin->fin_src6.i6[0] &
517 temp.i6[1] = fin->fin_src6.i6[1] &
519 temp.i6[2] = fin->fin_src6.i6[2] &
521 temp.i6[3] = fin->fin_src6.i6[3] &
536 IP6_MASK(&in, &fin->fin_src6, &np->in_osrcmsk6);
562 ipf_ifpaddr(softc, 6, FRI_NORMAL, fin->fin_ifp,
578 in = fin->fin_src6;
605 (ntohl(fin->fin_src6) %
664 sp = fin->fin_data[0];
665 dp = fin->fin_data[1];
666 fin->fin_data[0] = fin->fin_data[1];
667 fin->fin_data[1] = ntohs(port);
668 natl = ipf_nat6_inlookup(fin, flags & ~(SI_WILDP|NAT_SEARCH),
669 (u_int)fin->fin_p, &fin->fin_dst6.in6,
671 fin->fin_data[0] = sp;
672 fin->fin_data[1] = dp;
689 nat->nat_osrc6 = fin->fin_src6;
691 nat->nat_odst6 = fin->fin_dst6;
692 nat->nat_ndst6 = fin->fin_dst6;
694 nat->nat_hm = ipf_nat6_hostmap(softn, np, &fin->fin_src6,
695 &fin->fin_dst6,
703 ((tcphdr_t *)fin->fin_dp)->th_sport = port;
705 nat->nat_oicmpid = fin->fin_data[1];
706 ((struct icmp6_hdr *)fin->fin_dp)->icmp6_id = port;
717 /* Parameters: fin(I) - pointer to packet information */
726 ipf_nat6_newrdr(fr_info_t *fin, nat_t *nat, natinfo_t *ni)
728 ipf_main_softc_t *softc = fin->fin_main_soft;
749 dport = fin->fin_data[1];
752 sport = htons(fin->fin_data[0]);
753 dport = htons(fin->fin_data[1]);
768 hm = ipf_nat6_hostmap(softn, NULL, &fin->fin_src6,
769 &fin->fin_dst6, &in, (u_32_t)dport);
788 hm = ipf_nat6_hostmap(softn, NULL, &fin->fin_src6,
789 &fin->fin_dst6, &in,
811 if (ipf_ifpaddr(softc, 6, FRI_NORMAL, fin->fin_ifp,
822 in = fin->fin_dst6;
830 temp.i6[0] = fin->fin_dst6.i6[0] & ~np->in_osrcmsk6.i6[0];
831 temp.i6[1] = fin->fin_dst6.i6[1] & ~np->in_osrcmsk6.i6[1];
832 temp.i6[2] = fin->fin_dst6.i6[2] & ~np->in_osrcmsk6.i6[0];
833 temp.i6[3] = fin->fin_dst6.i6[3] & ~np->in_osrcmsk6.i6[3];
869 in = fin->fin_dst6;
877 sp = fin->fin_data[0];
878 dp = fin->fin_data[1];
879 fin->fin_data[1] = fin->fin_data[0];
880 fin->fin_data[0] = ntohs(nport);
881 natl = ipf_nat6_outlookup(fin, flags & ~(SI_WILDP|NAT_SEARCH),
882 (u_int)fin->fin_p, &in.in6,
883 &fin->fin_src6.in6);
884 fin->fin_data[0] = sp;
885 fin->fin_data[1] = dp;
892 nat->nat_odst6 = fin->fin_dst6;
893 nat->nat_nsrc6 = fin->fin_src6;
894 nat->nat_osrc6 = fin->fin_src6;
896 nat->nat_hm = ipf_nat6_hostmap(softn, np, &fin->fin_src6,
897 &fin->fin_dst6, &in,
905 ((tcphdr_t *)fin->fin_dp)->th_dport = nport;
907 nat->nat_oicmpid = fin->fin_data[1];
908 ((struct icmp6_hdr *)fin->fin_dp)->icmp6_id = nport;
919 /* Parameters: fin(I) - pointer to packet information */
938 ipf_nat6_add(fr_info_t *fin, ipnat_t *np, nat_t **natsave, u_int flags,
941 ipf_main_softc_t *softc = fin->fin_main_soft;
950 qpktinfo_t *qpi = fin->fin_qpi;
961 NBUMPSIDE6(fin->fin_out, ns_table_max);
976 NBUMPSIDE6(fin->fin_out, ns_memfail);
1006 ni.nai_sport = fin->fin_data[1];
1014 nat->nat_pr[0] = fin->fin_p;
1015 nat->nat_pr[1] = fin->fin_p;
1022 move = ipf_nat6_newdivert(fin, nat, &ni);
1025 move = ipf_nat6_newrewrite(fin, nat, &ni);
1033 natl = ipf_nat6_outlookup(fin, nflags, (u_int)fin->fin_p,
1034 &fin->fin_src6.in6,
1035 &fin->fin_dst6.in6);
1042 move = ipf_nat6_newmap(fin, nat, &ni);
1047 natl = ipf_nat6_inlookup(fin, nflags, (u_int)fin->fin_p,
1048 &fin->fin_src6.in6,
1049 &fin->fin_dst6.in6);
1056 move = ipf_nat6_newrdr(fin, nat, &ni);
1065 nat->nat_fr = fin->fin_fr;
1066 nat->nat_rev = fin->fin_rev;
1071 if (ipf_proxy_new(fin, nat) == -1) {
1072 NBUMPSIDE6D(fin->fin_out, ns_appr_fail);
1087 if (ipf_nat6_finalise(fin, nat) == -1) {
1109 NBUMPSIDE6(fin->fin_out, ns_badnatnew);
1126 /* Parameters: fin(I) - pointer to packet information */
1135 ipf_nat6_finalise(fr_info_t *fin, nat_t *nat)
1137 ipf_main_softc_t *softc = fin->fin_main_soft;
1142 switch (fin->fin_p)
1204 nat->nat_sync = ipf_sync_new(softc, SMC_NAT, fin, nat);
1229 NBUMPSIDE6D(fin->fin_out, ns_unfinalised);
1356 /* Parameters: fin(I) - pointer to packet information */
1364 ipf_nat6_icmperrorlookup(fr_info_t *fin, int dir)
1366 ipf_main_softc_t *softc = fin->fin_main_soft;
1378 nside = &softn->ipf_nat_stats.ns_side6[fin->fin_out];
1384 if (!(fin->fin_flx & FI_ICMPERR)) {
1392 if (fin->fin_plen < ICMP6ERR_IPICMPHLEN) {
1396 oip6 = (ip6_t *)((char *)fin->fin_dp + 8);
1411 m = fin->fin_m;
1413 if ((char *)oip6 + fin->fin_dlen - ICMPERR_ICMPHLEN >
1419 if ((char *)oip6 + fin->fin_dlen - ICMPERR_ICMPHLEN >
1420 (char *)fin->fin_ip + M_LEN(m)) {
1428 if (IP6_NEQ(&fin->fin_dst6, &oip6->ip6_src)) {
1443 data[0] = fin->fin_data[0];
1444 data[1] = fin->fin_data[1];
1445 fin->fin_data[0] = 0;
1446 fin->fin_data[1] = orgicmp->icmp6_id;
1455 nat = ipf_nat6_inlookup(fin, flags, p,
1459 nat = ipf_nat6_outlookup(fin, flags, p,
1462 fin->fin_data[0] = data[0];
1463 fin->fin_data[1] = data[1];
1470 /* TRACE (fin,minlen) */
1471 if (fin->fin_plen < ICMPERR_IPICMPHLEN + minlen) {
1476 data[0] = fin->fin_data[0];
1477 data[1] = fin->fin_data[1];
1479 fin->fin_data[0] = ntohs(tcp->th_dport);
1480 fin->fin_data[1] = ntohs(tcp->th_sport);
1483 nat = ipf_nat6_inlookup(fin, flags, p, &oip6->ip6_dst,
1486 nat = ipf_nat6_outlookup(fin, flags, p, &oip6->ip6_dst,
1489 fin->fin_data[0] = data[0];
1490 fin->fin_data[1] = data[1];
1494 nat = ipf_nat6_inlookup(fin, 0, p, &oip6->ip6_dst,
1497 nat = ipf_nat6_outlookup(fin, 0, p, &oip6->ip6_dst,
1544 /* Parameters: fin(I) - pointer to packet information */
1555 ipf_nat6_icmperror(fr_info_t *fin, u_int *nflags, int dir)
1557 ipf_main_softc_t *softc = fin->fin_main_soft;
1569 if ((fin->fin_flx & (FI_SHORT|FI_FRAGBODY))) {
1570 NBUMPSIDE6D(fin->fin_out, ns_icmp_short);
1577 if ((fin->fin_v != 6) || !(nat = ipf_nat6_icmperrorlookup(fin, dir))) {
1578 NBUMPSIDE6D(fin->fin_out, ns_icmp_notfound);
1587 icmp6 = fin->fin_dp;
1603 dlen = fin->fin_plen - ((char *)dp - (char *)fin->fin_ip);
1675 if (((fin->fin_out == 0) && ((nat->nat_redir & NAT_MAP) != 0)) ||
1676 ((fin->fin_out == 1) && ((nat->nat_redir & NAT_REDIRECT) != 0))) {
1853 /* Parameters: fin(I) - pointer to packet information */
1872 ipf_nat6_inlookup(fr_info_t *fin, u_int flags, u_int p, struct in6_addr *src,
1875 ipf_main_softc_t *softc = fin->fin_main_soft;
1884 ifp = fin->fin_ifp;
1893 sport = htons(fin->fin_data[0]);
1894 dport = htons(fin->fin_data[1]);
1898 sport = fin->fin_data[1];
1900 dport = fin->fin_data[1];
1968 if (appr_match(fin, nat) != 0)
1991 if (softn->ipf_nat_stats.ns_wilds == 0 || (fin->fin_flx & FI_NOWILD)) {
2010 if (nat->nat_pr[0] != fin->fin_p)
2037 if ((fin->fin_flx & FI_IGNORE) != 0)
2040 nat = ipf_nat_clone(fin, nat);
2165 /* Parameters: fin(I) - pointer to packet information */
2185 ipf_nat6_outlookup(fr_info_t *fin, u_int flags, u_int p, struct in6_addr *src,
2188 ipf_main_softc_t *softc = fin->fin_main_soft;
2195 ifp = fin->fin_ifp;
2203 sport = htons(fin->fin_data[0]);
2204 dport = htons(fin->fin_data[1]);
2208 sport = fin->fin_data[1];
2210 dport = fin->fin_data[1];
2278 if (appr_match(fin, nat) != 0)
2301 if (softn->ipf_nat_stats.ns_wilds == 0 || (fin->fin_flx & FI_NOWILD)) {
2320 if (nat->nat_pr[1] != fin->fin_p)
2346 if ((fin->fin_flx & FI_IGNORE) != 0)
2349 nat = ipf_nat_clone(fin, nat);
2459 fr_info_t fin;
2460 bzero((char *)&fin, sizeof(fin));
2461 fin.fin_p = nat->nat_pr[0];
2462 fin.fin_data[0] = ntohs(nat->nat_ndport);
2463 fin.fin_data[1] = ntohs(nat->nat_nsport);
2464 if (ipf_nat6_inlookup(&fin, np->nl_flags,
2465 fin.fin_p,
2485 /* Parameters: fin(I) - pointer to packet information */
2493 ipf_nat6_match(fr_info_t *fin, ipnat_t *np)
2502 match = IP6_MASKNEQ(&fin->fin_src6, &np->in_osrcmsk6,
2506 match = (*np->in_osrcfunc)(fin->fin_main_soft, np->in_osrcptr,
2507 6, &fin->fin_src6, fin->fin_plen);
2518 match = IP6_MASKNEQ(&fin->fin_dst6, &np->in_odstmsk6,
2522 match = (*np->in_odstfunc)(fin->fin_main_soft, np->in_odstptr,
2523 6, &fin->fin_dst6, fin->fin_plen);
2532 if (!(fin->fin_flx & FI_TCPUDP) ||
2533 (fin->fin_flx & (FI_SHORT|FI_FRAGBODY))) {
2539 return ipf_tcpudpchk(&fin->fin_fi, ft);
2548 /* Parameters: fin(I) - pointer to packet information */
2559 ipf_nat6_checkout(fr_info_t *fin, u_32_t *passp)
2561 ipf_main_softc_t *softc = fin->fin_main_soft;
2581 fr = fin->fin_fr;
2582 sifp = fin->fin_ifp;
2584 ifp = fr->fr_tifs[fin->fin_rev].fd_ptr;
2586 fin->fin_ifp = ifp;
2588 ifp = fin->fin_ifp;
2590 if (!(fin->fin_flx & FI_SHORT) && (fin->fin_off == 0)) {
2591 switch (fin->fin_p)
2600 icmp6 = fin->fin_dp;
2614 if ((fin->fin_flx & FI_ICMPQUERY) != 0)
2623 tcp = fin->fin_dp;
2627 ipa = fin->fin_src6;
2631 if ((fin->fin_p == IPPROTO_ICMPV6) && !(nflags & IPN_ICMPQUERY) &&
2632 (nat = ipf_nat6_icmperror(fin, &nflags, NAT_OUTBOUND)))
2634 else if ((fin->fin_flx & FI_FRAG) && (nat = ipf_frag_natknown(fin)))
2636 else if ((nat = ipf_nat6_outlookup(fin, nflags|NAT_SEARCH,
2637 (u_int)fin->fin_p,
2638 &fin->fin_src6.in6,
2639 &fin->fin_dst6.in6))) {
2641 } else if (fin->fin_off == 0) {
2658 if (np->in_pr[1] && (np->in_pr[1] != fin->fin_p))
2664 switch (ipf_nat6_match(fin, np))
2686 (np->in_odport != fin->fin_data[1]))
2688 if (appr_ok(fin, tcp, np) == 0)
2699 nat = ipf_nat6_add(fin, np, NULL, nflags, NAT_OUTBOUND);
2714 rval = ipf_nat6_out(fin, nat, natadd, nflags);
2717 ipf_nat_update(fin, nat);
2718 nat->nat_bytes[1] += fin->fin_plen;
2733 fin->fin_reason = FRB_NATV6;
2735 fin->fin_flx |= FI_BADNAT;
2745 fin->fin_ifp = sifp;
2753 /* Parameters: fin(I) - pointer to packet information */
2761 ipf_nat6_out(fr_info_t *fin, nat_t *nat, int natadd, u_32_t nflags)
2763 ipf_main_softc_t *softc = fin->fin_main_soft;
2775 if ((natadd != 0) && (fin->fin_flx & FI_FRAG) && (np != NULL))
2776 (void) ipf_frag_natnew(softc, fin, 0, nat);
2787 fin->fin_ip6->ip6_src = nat->nat_nsrc6.in6;
2788 fin->fin_src6 = nat->nat_nsrc6;
2789 fin->fin_ip6->ip6_dst = nat->nat_ndst6.in6;
2790 fin->fin_dst6 = nat->nat_ndst6;
2794 fin->fin_ip6->ip6_src = nat->nat_odst6.in6;
2795 fin->fin_src6 = nat->nat_ndst6;
2796 fin->fin_ip6->ip6_dst = nat->nat_osrc6.in6;
2797 fin->fin_dst6 = nat->nat_nsrc6;
2804 skip = ipf_nat6_decap(fin, nat);
2810 m = fin->fin_m;
2825 ipf_nat_update(fin, nat);
2827 fin->fin_flx |= FI_NATED;
2829 fin->fin_nattag = &np->in_tag;
2848 ip6->ip6_plen = htons(fin->fin_plen + 8);
2851 uh->uh_ulen = htons(fin->fin_plen);
2853 PREP_MB_T(fin, m);
2855 fin->fin_ip6 = ip6;
2856 fin->fin_plen += sizeof(ip6_t) + 8; /* UDP + new IPv4 hdr */
2857 fin->fin_dlen += sizeof(ip6_t) + 8; /* UDP + old IPv4 hdr */
2868 if (!(fin->fin_flx & FI_SHORT) && (fin->fin_off == 0)) {
2872 tcp = fin->fin_dp;
2878 fin->fin_data[0] = ntohs(nat->nat_nsport);
2880 fin->fin_data[1] = ntohs(nat->nat_ndport);
2885 fin->fin_data[0] = ntohs(nat->nat_odport);
2887 fin->fin_data[1] = ntohs(nat->nat_osport);
2893 icmp6 = fin->fin_dp;
2897 csump = ipf_nat_proto(fin, nat, nflags);
2905 ipf_fix_outcksum(fin->fin_cksum, csump,
2908 fin->fin_dlen);
2910 ipf_fix_incksum(fin->fin_cksum, csump,
2913 fin->fin_dlen);
2917 ipf_sync_update(softc, SMC_NAT, fin, nat->nat_sync);
2929 i = ipf_proxy_check(fin, nat);
2938 fin->fin_flx |= FI_NATED;
2948 /* Parameters: fin(I) - pointer to packet information */
2959 ipf_nat6_checkin(fr_info_t *fin, u_32_t *passp)
2961 ipf_main_softc_t *softc = fin->fin_main_soft;
2986 ifp = fin->fin_ifp;
2988 if (!(fin->fin_flx & FI_SHORT) && (fin->fin_off == 0)) {
2989 switch (fin->fin_p)
2998 icmp6 = fin->fin_dp;
3012 if ((fin->fin_flx & FI_ICMPQUERY) != 0) {
3022 tcp = fin->fin_dp;
3024 dport = fin->fin_data[1];
3028 ipa = fin->fin_dst6;
3032 if ((fin->fin_p == IPPROTO_ICMPV6) && !(nflags & IPN_ICMPQUERY) &&
3033 (nat = ipf_nat6_icmperror(fin, &nflags, NAT_INBOUND)))
3035 else if ((fin->fin_flx & FI_FRAG) && (nat = ipf_frag_natknown(fin)))
3037 else if ((nat = ipf_nat6_inlookup(fin, nflags|NAT_SEARCH,
3038 (u_int)fin->fin_p,
3039 &fin->fin_src6.in6, &ipa.in6))) {
3041 } else if (fin->fin_off == 0) {
3058 if (np->in_pr[0] && (np->in_pr[0] != fin->fin_p))
3063 switch (ipf_nat6_match(fin, np))
3087 if (!appr_ok(fin, tcp, np)) {
3099 nat = ipf_nat6_add(fin, np, NULL, nflags, NAT_INBOUND);
3114 rval = ipf_nat6_in(fin, nat, natadd, nflags);
3117 ipf_nat_update(fin, nat);
3118 nat->nat_bytes[0] += fin->fin_plen;
3133 fin->fin_reason = FRB_NATV6;
3135 fin->fin_flx |= FI_BADNAT;
3153 /* Parameters: fin(I) - pointer to packet information */
3162 ipf_nat6_in(fr_info_t *fin, nat_t *nat, int natadd, u_32_t nflags)
3164 ipf_main_softc_t *softc = fin->fin_main_soft;
3176 fin->fin_fr = nat->nat_fr;
3179 if ((natadd != 0) && (fin->fin_flx & FI_FRAG))
3180 (void) ipf_frag_natnew(softc, fin, 0, nat);
3193 i = ipf_proxy_check(fin, nat);
3201 ipf_sync_update(softc, SMC_NAT, fin, nat->nat_sync);
3217 if ((fin->fin_flx & FI_ICMPERR) == 0) {
3218 fin->fin_ip6->ip6_src = nat->nat_nsrc6.in6;
3219 fin->fin_src6 = nat->nat_nsrc6;
3221 fin->fin_ip6->ip6_dst = nat->nat_ndst6.in6;
3222 fin->fin_dst6 = nat->nat_ndst6;
3226 if ((fin->fin_flx & FI_ICMPERR) == 0) {
3227 fin->fin_ip6->ip6_src = nat->nat_odst6.in6;
3228 fin->fin_src6 = nat->nat_odst6;
3230 fin->fin_ip6->ip6_dst = nat->nat_osrc6.in6;
3231 fin->fin_dst6 = nat->nat_osrc6;
3247 ip6->ip6_plen = htons(fin->fin_plen + sizeof(udphdr_t));
3250 uh->uh_ulen = ntohs(fin->fin_plen);
3252 PREP_MB_T(fin, m);
3254 fin->fin_ip6 = ip6;
3255 fin->fin_plen += sizeof(ip6_t) + 8; /* UDP + new IPv6 hdr */
3256 fin->fin_dlen += sizeof(ip6_t) + 8; /* UDP + old IPv6 hdr */
3267 skip = ipf_nat6_decap(fin, nat);
3273 m = fin->fin_m;
3287 ipf_nat_update(fin, nat);
3288 fin->fin_flx |= FI_NATED;
3290 fin->fin_nattag = &np->in_tag;
3296 tcp = fin->fin_dp;
3298 if (!(fin->fin_flx & FI_SHORT) && (fin->fin_off == 0)) {
3304 fin->fin_data[0] = ntohs(nat->nat_nsport);
3306 fin->fin_data[1] = ntohs(nat->nat_ndport);
3311 fin->fin_data[0] = ntohs(nat->nat_odport);
3313 fin->fin_data[1] = ntohs(nat->nat_osport);
3320 icmp6 = fin->fin_dp;
3325 csump = ipf_nat_proto(fin, nat, nflags);
3337 fin->fin_flx |= FI_NATED;
3339 fin->fin_nattag = &np->in_tag;
3348 /* Parameters: fin(I) - pointer to packet information */
3363 ipf_nat6_newrewrite(fr_info_t *fin, nat_t *nat, natinfo_t *nai)
3379 bcopy((char *)fin, (char *)&frnat, sizeof(*fin));
3396 if (ipf_nat6_nextaddr(fin, &np->in_nsrc, &frnat.fin_src6,
3451 /* TRACE (fin, np, l, frnat) */
3453 if (ipf_nat6_nextaddr(fin, &np->in_ndst, &frnat.fin_dst6,
3525 if (fin->fin_out == 1) {
3555 nat->nat_osrc6 = fin->fin_src6;
3556 nat->nat_odst6 = fin->fin_dst6;
3561 nat->nat_osport = htons(fin->fin_data[0]);
3562 nat->nat_odport = htons(fin->fin_data[1]);
3566 nat->nat_oicmpid = fin->fin_data[1];
3577 /* Parameters: fin(I) - pointer to packet information */
3589 ipf_nat6_newdivert(fr_info_t *fin, nat_t *nat, natinfo_t *nai)
3591 ipf_main_softc_t *softc = fin->fin_main_soft;
3599 bcopy((char *)fin, (char *)&frnat, sizeof(*fin));
3602 nat->nat_osrc6 = fin->fin_src6;
3603 nat->nat_odst6 = fin->fin_dst6;
3604 nat->nat_osport = htons(fin->fin_data[0]);
3605 nat->nat_odport = htons(fin->fin_data[1]);
3619 if (fin->fin_out == 1) {
3629 NBUMPSIDE6D(fin->fin_out, ns_divert_exist);
3639 nat->nat_pr[fin->fin_out] = fin->fin_p;
3640 nat->nat_pr[1 - fin->fin_out] = p;
3711 /* Parameters: fin(I) - pointer to packet information */
3716 /* it is necessary to call ipf_makefrip() again so that the contents of 'fin'*/
3721 /* need to back a backup copy of "fin" - expensive. */
3724 ipf_nat6_decap(fr_info_t *fin, nat_t *nat)
3726 ipf_main_softc_t *softc = fin->fin_main_soft;
3732 if ((fin->fin_flx & FI_ICMPERR) != 0) {
3736 m = fin->fin_m;
3737 skip = fin->fin_hlen;
3743 if (fin->fin_plen < MINDECAP)
3750 if (fin->fin_plen < (skip + sizeof(ip6_t)))
3759 * The aim here is to keep the original packet details in "fin" for
3764 if (ipf_pr_pullup(fin, skip + sizeof(ip6_t)) == -1)
3768 hdr = MTOD(fin->fin_m, char *);
3769 fin->fin_ip6 = (ip6_t *)(hdr + skip);
3771 if (ipf_pr_pullup(fin, skip + sizeof(ip6_t)) == -1) {
3772 NBUMPSIDE6D(fin->fin_out, ns_decap_pullup);
3776 fin->fin_hlen = sizeof(ip6_t);
3777 fin->fin_dlen -= skip;
3778 fin->fin_plen -= skip;
3779 fin->fin_ipoff += skip;
3781 if (ipf_makefrip(sizeof(ip6_t), (ip_t *)hdr, fin) == -1) {
3782 NBUMPSIDE6D(fin->fin_out, ns_decap_bad);
3794 /* Parameters: fin(I) - pointer to packet information */
3805 ipf_nat6_nextaddr(fr_info_t *fin, nat_addr_t *na, i6addr_t *old, i6addr_t *dst)
3807 ipf_main_softc_t *softc = fin->fin_main_soft;
3850 error = ipf_dstlist_select_node(fin, na->na_ptr, dst->i6,
3868 fin->fin_ifp, &newip, NULL) == -1) {
3869 NBUMPSIDE6(fin->fin_out, ns_ifpaddrfail);
3881 NBUMPSIDE6(fin->fin_out, ns_badnextaddr);