svn commit: r283350 - stable/10/sys/dev/sfxge
Andrew Rybchenko
arybchik at FreeBSD.org
Sun May 24 06:53:11 UTC 2015
Author: arybchik
Date: Sun May 24 06:53:10 2015
New Revision: 283350
URL: https://svnweb.freebsd.org/changeset/base/283350
Log:
MFC: r283278
sfxge: relax assertion to allow RST flag in TSO packets
Kernel under stress load, mixed MC reboot and sfupdate really
generates TSO packet with RST flag.
It will generate many TCP packets with RST flag set.
May be RST flag should be set in the last segment only, but it could be
dropped. So, it is safer to keep the flag in all packets to be sure that
connection is reset.
Sponsored by: Solarflare Communications, Inc.
Modified:
stable/10/sys/dev/sfxge/sfxge_tx.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/sfxge/sfxge_tx.c
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge_tx.c Sun May 24 04:14:09 2015 (r283349)
+++ stable/10/sys/dev/sfxge/sfxge_tx.c Sun May 24 06:53:10 2015 (r283350)
@@ -865,8 +865,14 @@ static void tso_start(struct sfxge_tso_s
tso->seqnum = ntohl(th->th_seq);
/* These flags must not be duplicated */
- KASSERT(!(th->th_flags & (TH_URG | TH_SYN | TH_RST)),
- ("incompatible TCP flag on TSO packet"));
+ /*
+ * RST should not be duplicated as well, but FreeBSD kernel
+ * generates TSO packets with RST flag. So, do not assert
+ * its absence.
+ */
+ KASSERT(!(th->th_flags & (TH_URG | TH_SYN)),
+ ("incompatible TCP flag 0x%x on TSO packet",
+ th->th_flags & (TH_URG | TH_SYN)));
tso->out_len = mbuf->m_pkthdr.len - tso->header_len;
}
More information about the svn-src-all
mailing list