Date: Thu, 7 May 2009 01:14:59 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r191867 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/fxp Message-ID: <200905070114.n471Exp3035631@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: yongari Date: Thu May 7 01:14:59 2009 New Revision: 191867 URL: http://svn.freebsd.org/changeset/base/191867 Log: MFC r190982: Don't blindly set IP packet length from interface MTU in TSO case. Remote host can advertise smaller MSS than that of sender so upper stack might have adjusted the MSS which in turn generates IP packets that are less size than that of interface MTU. Reported by: Bjoern Koenig ( bkoenig <> alpha-tierchen dot de ) Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/fxp/if_fxp.c Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Thu May 7 00:35:32 2009 (r191866) +++ stable/7/sys/dev/fxp/if_fxp.c Thu May 7 01:14:59 2009 (r191867) @@ -1486,7 +1486,8 @@ fxp_encap(struct fxp_softc *sc, struct m * checksum in the first frame driver should compute it. */ ip->ip_sum = 0; - ip->ip_len = htons(ifp->if_mtu); + ip->ip_len = htons(m->m_pkthdr.tso_segsz + (ip->ip_hl << 2) + + (tcp->th_off << 2)); tcp->th_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, htons(IPPROTO_TCP + (tcp->th_off << 2) + m->m_pkthdr.tso_segsz));
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905070114.n471Exp3035631>