Re: [PATCH v7 bpf-next 06/11] tcp: Migrate TCP_NEW_SYN_RECV requests at retransmitting SYN+ACKs.
From: Kuniyuki Iwashima <hidden>
Date: 2021-06-10 22:53:12
Also in:
lkml, netdev
From: Kuniyuki Iwashima <hidden>
Date: 2021-06-10 22:53:12
Also in:
lkml, netdev
From: Eric Dumazet <redacted> Date: Thu, 10 Jun 2021 22:21:00 +0200
On 5/21/21 8:20 PM, Kuniyuki Iwashima wrote:quoted
As with the preceding patch, this patch changes reqsk_timer_handler() to call reuseport_migrate_sock() and inet_reqsk_clone() to migrate in-flight requests at retransmitting SYN+ACKs. If we can select a new listener and clone the request, we resume setting the SYN+ACK timer for the new req. If we can set the timer, we call inet_ehash_insert() to unhash the old req and put the new req into ehash....quoted
static void reqsk_migrate_reset(struct request_sock *req) { + req->saved_syn = NULL; + inet_rsk(req)->ireq_opt = NULL; #if IS_ENABLED(CONFIG_IPV6) - inet_rsk(req)->ipv6_opt = NULL; + inet_rsk(req)->pktopts = NULL; #endif }This is fragile. Maybe instead : #if IS_ENABLED(CONFIG_IPV6) inet_rsk(req)->ipv6_opt = NULL; inet_rsk(req)->pktopts = NULL; #else inet_rsk(req)->ireq_opt = NULL; #endif
I will fix this, thank you. Also I will send a follow-up patch later to fix the same style in inet_reqsk_alloc().