From owner-freebsd-net@freebsd.org Fri Apr 29 07:23:16 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0FC7EB20B70 for ; Fri, 29 Apr 2016 07:23:16 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:607c::16:b]) by mx1.freebsd.org (Postfix) with ESMTP id A1B6F1793 for ; Fri, 29 Apr 2016 07:23:15 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id E822DC5B0; Fri, 29 Apr 2016 07:23:14 +0000 (UTC) Date: Fri, 29 Apr 2016 07:23:14 +0000 To: freebsd-net@freebsd.org From: Phabricator Reply-to: D6120+325+33302b570a7b2b08@reviews.freebsd.org Subject: [Differential] D6120: tcp/syncache: Set flowid and hash type properly for SYN|ACK Message-ID: <30d67e8c5c0bbc71659390a3ee2427fa@localhost.localdomain> X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , Thread-Topic: D6120: tcp/syncache: Set flowid and hash type properly for SYN|ACK X-Herald-Rules: <64> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: Precedence: bulk In-Reply-To: References: Thread-Index: NTJkNjUzMTU2YzllZDgwNGVmODYwN2NiNWY3IFcjC+I= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_30d67e8c5c0bbc71659390a3ee2427fa" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.21 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2016 07:23:16 -0000 --b1_30d67e8c5c0bbc71659390a3ee2427fa Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS298769: tcp/syncache: Set flowid and hash type properly for SYN|ACK (authored by sephe). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D6120?vs=15647&id=15727#toc REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D6120?vs=15647&id=15727 REVISION DETAIL https://reviews.freebsd.org/D6120 AFFECTED FILES head/sys/netinet/tcp_syncache.c CHANGE DETAILS diff --git a/head/sys/netinet/tcp_syncache.c b/head/sys/netinet/tcp_syncache.c --- a/head/sys/netinet/tcp_syncache.c +++ b/head/sys/netinet/tcp_syncache.c @@ -127,7 +127,8 @@ static void syncache_drop(struct syncache *, struct syncache_head *); static void syncache_free(struct syncache *); static void syncache_insert(struct syncache *, struct syncache_head *); -static int syncache_respond(struct syncache *, struct syncache_head *, int); +static int syncache_respond(struct syncache *, struct syncache_head *, int, + const struct mbuf *); static struct socket *syncache_socket(struct syncache *, struct socket *, struct mbuf *m); static void syncache_timeout(struct syncache *sc, struct syncache_head *sch, @@ -457,7 +458,7 @@ free(s, M_TCPLOG); } - syncache_respond(sc, sch, 1); + syncache_respond(sc, sch, 1, NULL); TCPSTAT_INC(tcps_sc_retransmitted); syncache_timeout(sc, sch, 0); } @@ -1307,7 +1308,7 @@ s, __func__); free(s, M_TCPLOG); } - if (syncache_respond(sc, sch, 1) == 0) { + if (syncache_respond(sc, sch, 1, m) == 0) { sc->sc_rxmits = 0; syncache_timeout(sc, sch, 1); TCPSTAT_INC(tcps_sndacks); @@ -1474,7 +1475,7 @@ /* * Do a standard 3-way handshake. */ - if (syncache_respond(sc, sch, 0) == 0) { + if (syncache_respond(sc, sch, 0, m) == 0) { if (V_tcp_syncookies && V_tcp_syncookiesonly && sc != &scs) syncache_free(sc); else if (sc != &scs) @@ -1505,7 +1506,8 @@ } static int -syncache_respond(struct syncache *sc, struct syncache_head *sch, int locked) +syncache_respond(struct syncache *sc, struct syncache_head *sch, int locked, + const struct mbuf *m0) { struct ip *ip = NULL; struct mbuf *m; @@ -1686,6 +1688,10 @@ M_SETFIB(m, sc->sc_inc.inc_fibnum); m->m_pkthdr.csum_data = offsetof(struct tcphdr, th_sum); + 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)); + } #ifdef INET6 if (sc->sc_inc.inc_flags & INC_ISIPV6) { m->m_pkthdr.csum_flags = CSUM_TCP_IPV6; EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, adrian, rwatson, gnn, lstewart, glebius, delphij, mike-karels.net, jtl, network, transport, hiren, sbruno Cc: hselasky, freebsd-net-list --b1_30d67e8c5c0bbc71659390a3ee2427fa Content-Type: text/x-patch; charset=utf-8; name="D6120.15727.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D6120.15727.patch" ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL25ldGluZXQvdGNwX3N5bmNhY2hlLmMgYi9oZWFkL3N5cy9u ZXRpbmV0L3RjcF9zeW5jYWNoZS5jCi0tLSBhL2hlYWQvc3lzL25ldGluZXQvdGNwX3N5bmNhY2hl LmMKKysrIGIvaGVhZC9zeXMvbmV0aW5ldC90Y3Bfc3luY2FjaGUuYwpAQCAtMTI3LDcgKzEyNyw4 IEBACiBzdGF0aWMgdm9pZAkgc3luY2FjaGVfZHJvcChzdHJ1Y3Qgc3luY2FjaGUgKiwgc3RydWN0 IHN5bmNhY2hlX2hlYWQgKik7CiBzdGF0aWMgdm9pZAkgc3luY2FjaGVfZnJlZShzdHJ1Y3Qgc3lu Y2FjaGUgKik7CiBzdGF0aWMgdm9pZAkgc3luY2FjaGVfaW5zZXJ0KHN0cnVjdCBzeW5jYWNoZSAq LCBzdHJ1Y3Qgc3luY2FjaGVfaGVhZCAqKTsKLXN0YXRpYyBpbnQJIHN5bmNhY2hlX3Jlc3BvbmQo c3RydWN0IHN5bmNhY2hlICosIHN0cnVjdCBzeW5jYWNoZV9oZWFkICosIGludCk7CitzdGF0aWMg aW50CSBzeW5jYWNoZV9yZXNwb25kKHN0cnVjdCBzeW5jYWNoZSAqLCBzdHJ1Y3Qgc3luY2FjaGVf aGVhZCAqLCBpbnQsCisJCSAgICBjb25zdCBzdHJ1Y3QgbWJ1ZiAqKTsKIHN0YXRpYyBzdHJ1Y3QJ IHNvY2tldCAqc3luY2FjaGVfc29ja2V0KHN0cnVjdCBzeW5jYWNoZSAqLCBzdHJ1Y3Qgc29ja2V0 ICosCiAJCSAgICBzdHJ1Y3QgbWJ1ZiAqbSk7CiBzdGF0aWMgdm9pZAkgc3luY2FjaGVfdGltZW91 dChzdHJ1Y3Qgc3luY2FjaGUgKnNjLCBzdHJ1Y3Qgc3luY2FjaGVfaGVhZCAqc2NoLApAQCAtNDU3 LDcgKzQ1OCw3IEBACiAJCQlmcmVlKHMsIE1fVENQTE9HKTsKIAkJfQogCi0JCXN5bmNhY2hlX3Jl c3BvbmQoc2MsIHNjaCwgMSk7CisJCXN5bmNhY2hlX3Jlc3BvbmQoc2MsIHNjaCwgMSwgTlVMTCk7 CiAJCVRDUFNUQVRfSU5DKHRjcHNfc2NfcmV0cmFuc21pdHRlZCk7CiAJCXN5bmNhY2hlX3RpbWVv dXQoc2MsIHNjaCwgMCk7CiAJfQpAQCAtMTMwNyw3ICsxMzA4LDcgQEAKIAkJCSAgICBzLCBfX2Z1 bmNfXyk7CiAJCQlmcmVlKHMsIE1fVENQTE9HKTsKIAkJfQotCQlpZiAoc3luY2FjaGVfcmVzcG9u ZChzYywgc2NoLCAxKSA9PSAwKSB7CisJCWlmIChzeW5jYWNoZV9yZXNwb25kKHNjLCBzY2gsIDEs IG0pID09IDApIHsKIAkJCXNjLT5zY19yeG1pdHMgPSAwOwogCQkJc3luY2FjaGVfdGltZW91dChz Yywgc2NoLCAxKTsKIAkJCVRDUFNUQVRfSU5DKHRjcHNfc25kYWNrcyk7CkBAIC0xNDc0LDcgKzE0 NzUsNyBAQAogCS8qCiAJICogRG8gYSBzdGFuZGFyZCAzLXdheSBoYW5kc2hha2UuCiAJICovCi0J aWYgKHN5bmNhY2hlX3Jlc3BvbmQoc2MsIHNjaCwgMCkgPT0gMCkgeworCWlmIChzeW5jYWNoZV9y ZXNwb25kKHNjLCBzY2gsIDAsIG0pID09IDApIHsKIAkJaWYgKFZfdGNwX3N5bmNvb2tpZXMgJiYg Vl90Y3Bfc3luY29va2llc29ubHkgJiYgc2MgIT0gJnNjcykKIAkJCXN5bmNhY2hlX2ZyZWUoc2Mp OwogCQllbHNlIGlmIChzYyAhPSAmc2NzKQpAQCAtMTUwNSw3ICsxNTA2LDggQEAKIH0KIAogc3Rh dGljIGludAotc3luY2FjaGVfcmVzcG9uZChzdHJ1Y3Qgc3luY2FjaGUgKnNjLCBzdHJ1Y3Qgc3lu Y2FjaGVfaGVhZCAqc2NoLCBpbnQgbG9ja2VkKQorc3luY2FjaGVfcmVzcG9uZChzdHJ1Y3Qgc3lu Y2FjaGUgKnNjLCBzdHJ1Y3Qgc3luY2FjaGVfaGVhZCAqc2NoLCBpbnQgbG9ja2VkLAorICAgIGNv bnN0IHN0cnVjdCBtYnVmICptMCkKIHsKIAlzdHJ1Y3QgaXAgKmlwID0gTlVMTDsKIAlzdHJ1Y3Qg bWJ1ZiAqbTsKQEAgLTE2ODYsNiArMTY4OCwxMCBAQAogCiAJTV9TRVRGSUIobSwgc2MtPnNjX2lu Yy5pbmNfZmlibnVtKTsKIAltLT5tX3BrdGhkci5jc3VtX2RhdGEgPSBvZmZzZXRvZihzdHJ1Y3Qg dGNwaGRyLCB0aF9zdW0pOworCWlmIChtMCAhPSBOVUxMICYmIE1fSEFTSFRZUEVfR0VUKG0wKSAh PSBNX0hBU0hUWVBFX05PTkUpIHsKKwkJbS0+bV9wa3RoZHIuZmxvd2lkID0gbTAtPm1fcGt0aGRy LmZsb3dpZDsKKwkJTV9IQVNIVFlQRV9TRVQobSwgTV9IQVNIVFlQRV9HRVQobTApKTsKKwl9CiAj aWZkZWYgSU5FVDYKIAlpZiAoc2MtPnNjX2luYy5pbmNfZmxhZ3MgJiBJTkNfSVNJUFY2KSB7CiAJ CW0tPm1fcGt0aGRyLmNzdW1fZmxhZ3MgPSBDU1VNX1RDUF9JUFY2OwoK --b1_30d67e8c5c0bbc71659390a3ee2427fa--