On top of what David already noted, this needs a rebase after commit 5ff5d55291d2 ("tcp: Avoid overlapping memcpy() in DUP_ACK handling"). Similar to v1, I'm still getting a iperf3 hang in the "TCP throughput over IPv6: host to guest" case of the perf/passt_tcp test. I had a quick look: the server doesn't seem to be getting any frames, while both handshakes (control and data) succeed and the client is actually sending some frames at the beginning. I guess it's because of this condition: ((v4 && tcp_payload_used + fill_bufs > TCP_FRAMES_MEM)) in tcp_buf_data_from_sock(), also reported by David. If you have IPv6 frames only, you'll never flush the queue, I suppose. One nit about the commit message: On Fri, 13 Sep 2024 20:37:18 -0400 Jon Maloy <jmaloy(a)redhat.com> wrote:Following the preparations in the previous commit, we can now remove the payload and flag queues dedicated for TCPv6 and TCPv4 and move all traffic into common queues handling both protocol types. Apart from reducing code and memory footprint, this change reduces...I insist that in a general case this patch doesn't reduce the memory footprint. If both IPv4 and IPv6 are enabled, then yes, but that's because it also cuts in half the number of available buffers. The series looks otherwise good to me. -- Stefano