Index: stable/9/sys/netpfil/ipfw/ip_fw2.c =================================================================== --- stable/9/sys/netpfil/ipfw/ip_fw2.c (revision 248493) +++ stable/9/sys/netpfil/ipfw/ip_fw2.c (working copy) @@ -2398,7 +2398,30 @@ do { \ done = 1; /* exit outer loop */ break; - case O_REASS: { + case O_REASS: +#ifdef INET6 + if (is_ipv6) { + int off; + + f->pcnt++; + f->bcnt += pktlen; + l = 0; + if ((ext_hd & EXT_FRAGMENT) == 0) + break; + off = sizeof(struct ip6_hdr); + if (frag6_input(&m, &off, 0) == + IPPROTO_DONE) + retval = IP_FW_DENY; + else { + retval = IP_FW_REASS; + set_match(args, f_pos, chain); + } + args->m = m; + done = 1; + break; + } else +#endif /* INET6 */ + { int ip_off; f->pcnt++;