diff options
Diffstat (limited to 'sys/netinet/ip_output.c')
| -rw-r--r-- | sys/netinet/ip_output.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 88760e6e361..2894f72bedf 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_output.c,v 1.224 2011/12/02 03:15:31 haesbaert Exp $ */ +/* $OpenBSD: ip_output.c,v 1.225 2011/12/29 12:10:52 haesbaert Exp $ */ /* $NetBSD: ip_output.c,v 1.28 1996/02/13 23:43:07 christos Exp $ */ /* @@ -746,7 +746,8 @@ sendit: */ if (ntohs(ip->ip_len) <= mtu) { ip->ip_sum = 0; - if ((ifp->if_capabilities & IFCAP_CSUM_IPv4)) { + if ((ifp->if_capabilities & IFCAP_CSUM_IPv4) && + (ifp->if_bridge == NULL)) { m->m_pkthdr.csum_flags |= M_IPV4_CSUM_OUT; ipstat.ips_outhwcsum++; } else @@ -892,7 +893,8 @@ ip_fragment(struct mbuf *m, struct ifnet *ifp, u_long mtu) mhip->ip_off = htons((u_int16_t)mhip->ip_off); mhip->ip_sum = 0; if ((ifp != NULL) && - (ifp->if_capabilities & IFCAP_CSUM_IPv4)) { + (ifp->if_capabilities & IFCAP_CSUM_IPv4) && + (ifp->if_bridge == NULL)) { m->m_pkthdr.csum_flags |= M_IPV4_CSUM_OUT; ipstat.ips_outhwcsum++; } else @@ -911,7 +913,8 @@ ip_fragment(struct mbuf *m, struct ifnet *ifp, u_long mtu) ip->ip_off |= htons(IP_MF); ip->ip_sum = 0; if ((ifp != NULL) && - (ifp->if_capabilities & IFCAP_CSUM_IPv4)) { + (ifp->if_capabilities & IFCAP_CSUM_IPv4) && + (ifp->if_bridge == NULL)) { m->m_pkthdr.csum_flags |= M_IPV4_CSUM_OUT; ipstat.ips_outhwcsum++; } else |
