Skip site navigation (1)Skip section navigation (2)
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>