From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from gandalf.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id AFA9F5A0271 for ; Fri, 28 Jul 2023 11:48:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=201602; t=1690537714; bh=iuqg1jU1FGUj/XJ1zF0d+fu4snKdNTwCgir05uwi8eQ=; h=From:To:Cc:Subject:Date:From; b=FxSoml5aTAsEP1ivsJAQ5sVhe6PE7bKSeVUA4qn0bUmvvG5pOd0mCP5LAQAZrGR+5 OMzHrj/T61NSiPU8fWCXhCnnw79opQVV/9R+FBXV5Vt442vNoAZbD2ersbQWa0dEOs Rxknik51owgz5FxZ/rRiA0pdgEhPChql1BvNs35A= Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4RC2rf6BSLz4wyN; Fri, 28 Jul 2023 19:48:34 +1000 (AEST) From: David Gibson To: Stefano Brivio , passt-dev@passt.top Subject: [PATCH 0/8] RFC: Generalize flow tracking, part 1 Date: Fri, 28 Jul 2023 19:48:23 +1000 Message-ID: <20230728094831.4097571-1-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.41.0 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: MLV7GL2U3DYWWVKUVDEFXY4EU4A6CQO7 X-Message-ID-Hash: MLV7GL2U3DYWWVKUVDEFXY4EU4A6CQO7 X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: This is a first draft of the first part of implementing a more general flow table (connection tracking) as described at: https://pad.passt.top/p/NewForwardingModel This is by no means complete. So far it doesn't really do anything new, it just reorganizes the TCP connection table to be closer to the more general flow table. Still it's ready for preliminary review. David Gibson (8): tap: Don't clobber source address in tap6_handler() tap: Pass source address to protocol handler functions tcp: More precise terms for addresses and ports tcp, udp: Don't include destination address in partially precomputed csums tcp, udp: Don't pre-fill IPv4 destination address in headers tcp: Track guest-side correspondent address tcp, flow: Introduce struct demiflow tcp, flow: Perform TCP hash calculations based on demiflow structure flow.h | 66 +++++++++++++++ icmp.c | 12 ++- icmp.h | 3 +- passt.c | 10 +-- passt.h | 4 +- pasta.c | 2 +- siphash.c | 1 + tap.c | 29 ++++--- tcp.c | 227 ++++++++++++++++++++------------------------------- tcp.h | 5 +- tcp_conn.h | 9 +- tcp_splice.c | 2 + udp.c | 37 +++------ udp.h | 5 +- util.h | 4 +- 15 files changed, 209 insertions(+), 207 deletions(-) create mode 100644 flow.h -- 2.41.0