[Differential] D6148: tcp/syncache: Add comment for syncache_respond
sepherosa_gmail.com (Sepherosa Ziehau)
phabric-noreply at FreeBSD.org
Fri Apr 29 07:34:42 UTC 2016
sepherosa_gmail.com created this revision.
sepherosa_gmail.com added reviewers: network, adrian, rwatson, gnn, lstewart, glebius, delphij, mike-karels.net, jtl, hiren, sbruno, hselasky.
sepherosa_gmail.com added a subscriber: freebsd-net-list.
Herald added a reviewer: transport.
REVISION SUMMARY
Suggested by: hiren, hps
REVISION DETAIL
https://reviews.freebsd.org/D6148
AFFECTED FILES
sys/netinet/tcp_syncache.c
CHANGE DETAILS
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -1505,6 +1505,10 @@
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 @@
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));
EMAIL PREFERENCES
https://reviews.freebsd.org/settings/panel/emailpreferences/
To: sepherosa_gmail.com, network, transport, adrian, rwatson, gnn, lstewart, glebius, delphij, mike-karels.net, jtl, hiren, sbruno, hselasky
Cc: freebsd-net-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6148.15728.patch
Type: text/x-patch
Size: 904 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20160429/46744826/attachment.bin>
More information about the freebsd-net
mailing list