Date: Fri, 29 Apr 2016 07:23:14 +0000 From: Phabricator <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] D6120: tcp/syncache: Set flowid and hash type properly for SYN|ACK Message-ID: <30d67e8c5c0bbc71659390a3ee2427fa@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-wo3rxa6lpqbmh4zlzhwf-req@FreeBSD.org> References: <differential-rev-PHID-DREV-wo3rxa6lpqbmh4zlzhwf-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?30d67e8c5c0bbc71659390a3ee2427fa>