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
This commit is contained in:
sephe 2016-05-10 04:59:04 +00:00
parent 2e496c685f
commit 431b35bba5

View File

@ -1505,6 +1505,10 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
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, struct syncache_head *sch, int locked,
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));