On Tue, 3 Dec 2024 16:53:02 -0500
Jon Maloy <jmaloy(a)redhat.com> wrote:
During testing it is sometimes useful to force
traffic which would
normally be forwared by socket splicing through the tap interface.
In this commit, we add a command switch enabling such funtionality
for inbound local traffic.
For outbound local traffic this is much trickier, if even possible,
so leave that for a later commit.
Suggested-by: David Gibson <david(a)gibson.dropbear.id.au>
Signed-off-by: Jon Maloy <jmaloy(a)redhat.com>
---
v2: Some minor changes based on feedback from PASST team
v3: More changes based on feedback from D. Gibson and S. Brivio
-Moved new option to pasta-only section
-Added description to man-page
---
conf.c | 7 ++++++-
fwd.c | 2 +-
passt.1 | 4 ++++
passt.h | 2 ++
4 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/conf.c b/conf.c
index eaa7d99..53f6770 100644
--- a/conf.c
+++ b/conf.c
@@ -977,7 +977,8 @@ pasta_opts:
" Don't copy all routes to namespace\n"
" --no-copy-addrs DEPRECATED:\n"
" Don't copy all addresses to namespace\n"
- " --ns-mac-addr ADDR Set MAC address on tap interface\n");
+ " --ns-mac-addr ADDR Set MAC address on tap interface\n"
+ " --no-splice Disable inbound socket splicing\n");
exit(status);
}
@@ -1319,6 +1320,7 @@ void conf(struct ctx *c, int argc, char **argv)
{"no-dhcpv6", no_argument, &c->no_dhcpv6, 1 },
{"no-ndp", no_argument, &c->no_ndp, 1 },
{"no-ra", no_argument, &c->no_ra, 1 },
+ {"no-splice", no_argument, &c->no_splice, 1 },
{"freebind", no_argument, &c->freebind, 1 },
{"no-map-gw", no_argument, &no_map_gw, 1 },
{"ipv4-only", no_argument, NULL, '4' },
@@ -1756,6 +1758,9 @@ void conf(struct ctx *c, int argc, char **argv)
}
} while (name != -1);
+ if (c->mode == MODE_PASST)
+ c->no_splice = 1;
Oops, sorry, I missed this during review, but tests caught it: this
needs to be if (c->mode != MODE_PASTA) to also include the MODE_VU
case, otherwise:
Good point. Sorry I missed this on review.
--
David Gibson (he or they) | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you, not the other way
| around.