svn commit: r299315 - head/sys/netinet
Sepherosa Ziehau
sephe at FreeBSD.org
Tue May 10 04:59:06 UTC 2016
Author: sephe
Date: Tue May 10 04:59:04 2016
New Revision: 299315
URL: https://svnweb.freebsd.org/changeset/base/299315
Log:
tcp/syncache: Add comment for syncache_respond
Suggested by: hiren, hps
Reviewed by: sbruno
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D6148
Modified:
head/sys/netinet/tcp_syncache.c
Modified: head/sys/netinet/tcp_syncache.c
==============================================================================
--- head/sys/netinet/tcp_syncache.c Tue May 10 04:55:57 2016 (r299314)
+++ head/sys/netinet/tcp_syncache.c Tue May 10 04:59:04 2016 (r299315)
@@ -1505,6 +1505,10 @@ tfo_done:
return (rv);
}
+/*
+ * Send SYN|ACK to the peer. Either in response to the peer's SYN,
+ * i.e. m0 != NULL, or upon 3WHS ACK timeout, i.e. m0 == NULL.
+ */
static int
syncache_respond(struct syncache *sc, struct syncache_head *sch, int locked,
const struct mbuf *m0)
@@ -1688,6 +1692,11 @@ syncache_respond(struct syncache *sc, st
M_SETFIB(m, sc->sc_inc.inc_fibnum);
m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum);
+ /*
+ * If we have peer's SYN and it has a flowid, then let's assign it to
+ * our SYN|ACK. ip6_output() and ip_output() will not assign flowid
+ * to SYN|ACK due to lack of inp here.
+ */
if (m0 != NULL && M_HASHTYPE_GET(m0) != M_HASHTYPE_NONE) {
m->m_pkthdr.flowid = m0->m_pkthdr.flowid;
M_HASHTYPE_SET(m, M_HASHTYPE_GET(m0));
More information about the svn-src-all
mailing list