Index: sys/dev/fxp/if_fxp.c =================================================================== RCS file: /home/ncvs/src/sys/dev/fxp/if_fxp.c,v retrieving revision 1.266.2.14 retrieving revision 1.266.2.15 diff -p -I __FBSDID -I $FreeBSD -u -u -r1.266.2.14 -r1.266.2.15 --- sys/dev/fxp/if_fxp.c 9 Feb 2009 04:02:53 -0000 1.266.2.14 +++ sys/dev/fxp/if_fxp.c 7 May 2009 01:14:59 -0000 1.266.2.15 @@ -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));