summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/ip_output.c')
-rw-r--r--sys/netinet/ip_output.c11
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