View | Details | Raw Unified | Return to bug 192013 | Differences between
and this patch

Collapse All | Expand All

(-)sys/netpfil/pf/pf_ioctl.c (-3 / +6 lines)
Lines 3576-3584 Link Here
3576
	int chk;
3576
	int chk;
3577
3577
3578
	/* We need a proper CSUM befor we start (s. OpenBSD ip_output) */
3578
	/* We need a proper CSUM befor we start (s. OpenBSD ip_output) */
3579
	if ((*m)->m_pkthdr.csum_flags & CSUM_DELAY_DATA) {
3579
	if ((*m)->m_pkthdr.csum_flags &
3580
	    ((CSUM_DELAY_IP|CSUM_DELAY_DATA) & ~ifp->if_hwassist)) {
3580
		in_delayed_cksum(*m);
3581
		in_delayed_cksum(*m);
3581
		(*m)->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA;
3582
		(*m)->m_pkthdr.csum_flags &= ~(CSUM_DELAY_IP|CSUM_DELAY_DATA);
3582
	}
3583
	}
3583
3584
3584
	chk = pf_test(PF_OUT, ifp, m, inp);
3585
	chk = pf_test(PF_OUT, ifp, m, inp);
Lines 3620-3631 Link Here
3620
	int chk;
3621
	int chk;
3621
3622
3622
	/* We need a proper CSUM before we start (s. OpenBSD ip_output) */
3623
	/* We need a proper CSUM before we start (s. OpenBSD ip_output) */
3623
	if ((*m)->m_pkthdr.csum_flags & CSUM_DELAY_DATA_IPV6) {
3624
	if ((*m)->m_pkthdr.csum_flags &
3625
	    (CSUM_DELAY_DATA_IPV6 & ~ifp->if_hwassist)) {
3624
		in6_delayed_cksum(*m,
3626
		in6_delayed_cksum(*m,
3625
		    (*m)->m_pkthdr.len - sizeof(struct ip6_hdr),
3627
		    (*m)->m_pkthdr.len - sizeof(struct ip6_hdr),
3626
		    sizeof(struct ip6_hdr));
3628
		    sizeof(struct ip6_hdr));
3627
		(*m)->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA_IPV6;
3629
		(*m)->m_pkthdr.csum_flags &= ~CSUM_DELAY_DATA_IPV6;
3628
	}
3630
	}
3631
3629
	CURVNET_SET(ifp->if_vnet);
3632
	CURVNET_SET(ifp->if_vnet);
3630
	chk = pf_test6(PF_OUT, ifp, m, inp);
3633
	chk = pf_test6(PF_OUT, ifp, m, inp);
3631
	CURVNET_RESTORE();
3634
	CURVNET_RESTORE();

Return to bug 192013