On Tue, Mar 17, 2020 at 01:56:12PM -0700, Joe Stringer wrote: > On Tue, Mar 17, 2020 at 12:31 AM Martin KaFai Lau <kafai@xxxxxx> wrote: > > > > On Thu, Mar 12, 2020 at 04:36:46PM -0700, Joe Stringer wrote: > > > From: Lorenz Bauer <lmb@xxxxxxxxxxxxxx> > > > > > > Attach a tc direct-action classifier to lo in a fresh network > > > namespace, and rewrite all connection attempts to localhost:4321 > > > to localhost:1234. > > > > > > Keep in mind that both client to server and server to client traffic > > > passes the classifier. > > > > > > Signed-off-by: Lorenz Bauer <lmb@xxxxxxxxxxxxxx> > > > Signed-off-by: Joe Stringer <joe@xxxxxxxxxxx> > > > --- > > > tools/testing/selftests/bpf/.gitignore | 1 + > > > tools/testing/selftests/bpf/Makefile | 3 +- > > > .../selftests/bpf/progs/test_sk_assign.c | 127 +++++++++++++ > > > tools/testing/selftests/bpf/test_sk_assign.c | 176 ++++++++++++++++++ > > Can this test be put under the test_progs.c framework? > > I'm not sure, how does the test_progs.c framework handle the logic in > "tools/testing/selftests/bpf/test_sk_assign.sh"? > > Specifically I'm looking for: > * Unique netns to avoid messing with host networking stack configuration > * Control over routes > * Attaching loaded bpf programs to ingress qdisc of a device > > These are each trivial one-liners in the supplied shell script > (admittedly building on existing shell infrastructure in the tests dir > and iproute2 package). Seems like maybe the netns parts aren't so bad > looking at flow_dissector_reattach.c but anything involving netlink > configuration would either require pulling in a netlink library > dependency somewhere or shelling out to the existing binaries. At that > point I wonder if we're trying to achieve integration of this test > into some automated prog runner, is there a simpler way like a place I > can just add a one-liner to run the test_sk_assign.sh script? I think running a system(cmd) in test_progs is fine, as long as it cleans up everything when it is done. There is some pieces of netlink in tools/lib/bpf/netlink.c that may be reuseable also. Other than test_progs.c, I am not aware there is a script to run all *.sh. I usually only run test_progs. Cc: Andrii who has fixed many selftest issues recently.