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));
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to