Message ID | 160239302638.8495.17125996694402793471.stgit@john-Precision-5820-Tower |
---|---|
State | New |
Headers | show |
Series | bpf, sockmap: allow verdict only sk_skb progs | expand |
On Sun, Oct 11, 2020 at 07:10 AM CEST, John Fastabend wrote: > Here we add three new tests for sockmap to test having a verdict program > without setting the parser program. > > The first test covers the most simply case, > > sender proxy_recv proxy_send recv > | | | > | verdict -----+ | > | | | | > +----------------+ +------------+ > > We load the verdict program on the proxy_recv socket without a > parser program. It then does a redirect into the send path of the > proxy_send socket using sendpage_locked(). > > Next we test the drop case to ensure if we kfree_skb as a result of > the verdict program everything behaves as expected. > > Next we test the same configuration above, but with ktls and a > redirect into socket ingress queue. Shown here > > tls tls > sender proxy_recv proxy_send recv > | | | > | verdict ------------------+ > | | redirect_ingress > +----------------+ > > Also to set up ping/pong test > > Signed-off-by: John Fastabend <john.fastabend@gmail.com> > --- Looks like setup commands got filtered out by git commmit. [...]
diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c index 419c0b010d14..0fa1e421c3d7 100644 --- a/tools/testing/selftests/bpf/test_sockmap.c +++ b/tools/testing/selftests/bpf/test_sockmap.c @@ -1472,12 +1472,29 @@ static void test_txmsg_skb(int cgrp, struct sockmap_options *opt) txmsg_ktls_skb_drop = 0; txmsg_ktls_skb_redir = 1; test_exec(cgrp, opt); + txmsg_ktls_skb_redir = 0; + + /* Tests that omit skb_parser */ + txmsg_omit_skb_parser = 1; + ktls = 0; + txmsg_ktls_skb = 0; + test_exec(cgrp, opt); + + txmsg_ktls_skb_drop = 1; + test_exec(cgrp, opt); + txmsg_ktls_skb_drop = 0; + + txmsg_ktls_skb_redir = 1; + test_exec(cgrp, opt); + + ktls = 1; + test_exec(cgrp, opt); + txmsg_omit_skb_parser = 0; opt->data_test = data; ktls = k; } - /* Test cork with hung data. This tests poor usage patterns where * cork can leave data on the ring if user program is buggy and * doesn't flush them somehow. They do take some time however
Here we add three new tests for sockmap to test having a verdict program without setting the parser program. The first test covers the most simply case, sender proxy_recv proxy_send recv | | | | verdict -----+ | | | | | +----------------+ +------------+ We load the verdict program on the proxy_recv socket without a parser program. It then does a redirect into the send path of the proxy_send socket using sendpage_locked(). Next we test the drop case to ensure if we kfree_skb as a result of the verdict program everything behaves as expected. Next we test the same configuration above, but with ktls and a redirect into socket ingress queue. Shown here tls tls sender proxy_recv proxy_send recv | | | | verdict ------------------+ | | redirect_ingress +----------------+ Also to set up ping/pong test Signed-off-by: John Fastabend <john.fastabend@gmail.com> --- tools/testing/selftests/bpf/test_sockmap.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)