From: Sridhar Samudrala <sridhar.samudrala@intel.com> To: magnus.karlsson@intel.com, bjorn.topel@intel.com, netdev@vger.kernel.org, bpf@vger.kernel.org, sridhar.samudrala@intel.com, intel-wired-lan@lists.osuosl.org, maciej.fijalkowski@intel.com, tom.herbert@intel.com Subject: [PATCH bpf-next 4/4] xdpsock: add an option to create AF_XDP sockets in XDP_DIRECT mode Date: Mon, 7 Oct 2019 23:16:55 -0700 [thread overview] Message-ID: <1570515415-45593-5-git-send-email-sridhar.samudrala@intel.com> (raw) In-Reply-To: <1570515415-45593-1-git-send-email-sridhar.samudrala@intel.com> This option enables an AF_XDP socket to bind with a XDP_DIRECT flag that allows packets received on the associated queue to be received directly when an XDP program is not attached. Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com> --- samples/bpf/xdpsock_user.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c index 405c4e091f8b..6f4633769968 100644 --- a/samples/bpf/xdpsock_user.c +++ b/samples/bpf/xdpsock_user.c @@ -129,6 +129,9 @@ static void print_benchmark(bool running) if (opt_poll) printf("poll() "); + if (opt_xdp_bind_flags & XDP_DIRECT) + printf("direct-xsk "); + if (running) { printf("running..."); fflush(stdout); @@ -202,7 +205,8 @@ static void int_exit(int sig) dump_stats(); xsk_socket__delete(xsks[0]->xsk); (void)xsk_umem__delete(umem); - remove_xdp_program(); + if (!(opt_xdp_bind_flags & XDP_DIRECT)) + remove_xdp_program(); exit(EXIT_SUCCESS); } @@ -213,7 +217,8 @@ static void __exit_with_error(int error, const char *file, const char *func, fprintf(stderr, "%s:%s:%i: errno: %d/\"%s\"\n", file, func, line, error, strerror(error)); dump_stats(); - remove_xdp_program(); + if (!(opt_xdp_bind_flags & XDP_DIRECT)) + remove_xdp_program(); exit(EXIT_FAILURE); } @@ -363,6 +368,7 @@ static struct option long_options[] = { {"frame-size", required_argument, 0, 'f'}, {"no-need-wakeup", no_argument, 0, 'm'}, {"unaligned", no_argument, 0, 'u'}, + {"direct-xsk", no_argument, 0, 'd'}, {0, 0, 0, 0} }; @@ -386,6 +392,7 @@ static void usage(const char *prog) " -m, --no-need-wakeup Turn off use of driver need wakeup flag.\n" " -f, --frame-size=n Set the frame size (must be a power of two in aligned mode, default is %d).\n" " -u, --unaligned Enable unaligned chunk placement\n" + " -d, --direct-xsk Direct packets to XDP socket.\n" "\n"; fprintf(stderr, str, prog, XSK_UMEM__DEFAULT_FRAME_SIZE); exit(EXIT_FAILURE); @@ -398,7 +405,7 @@ static void parse_command_line(int argc, char **argv) opterr = 0; for (;;) { - c = getopt_long(argc, argv, "Frtli:q:psSNn:czf:mu", + c = getopt_long(argc, argv, "Frtli:q:psSNn:czf:mud", long_options, &option_index); if (c == -1) break; @@ -452,7 +459,9 @@ static void parse_command_line(int argc, char **argv) opt_need_wakeup = false; opt_xdp_bind_flags &= ~XDP_USE_NEED_WAKEUP; break; - + case 'd': + opt_xdp_bind_flags |= XDP_DIRECT; + break; default: usage(basename(argv[0])); } -- 2.14.5
WARNING: multiple messages have this Message-ID (diff)
From: Sridhar Samudrala <sridhar.samudrala@intel.com> To: intel-wired-lan@osuosl.org Subject: [Intel-wired-lan] [PATCH bpf-next 4/4] xdpsock: add an option to create AF_XDP sockets in XDP_DIRECT mode Date: Mon, 7 Oct 2019 23:16:55 -0700 [thread overview] Message-ID: <1570515415-45593-5-git-send-email-sridhar.samudrala@intel.com> (raw) In-Reply-To: <1570515415-45593-1-git-send-email-sridhar.samudrala@intel.com> This option enables an AF_XDP socket to bind with a XDP_DIRECT flag that allows packets received on the associated queue to be received directly when an XDP program is not attached. Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com> --- samples/bpf/xdpsock_user.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c index 405c4e091f8b..6f4633769968 100644 --- a/samples/bpf/xdpsock_user.c +++ b/samples/bpf/xdpsock_user.c @@ -129,6 +129,9 @@ static void print_benchmark(bool running) if (opt_poll) printf("poll() "); + if (opt_xdp_bind_flags & XDP_DIRECT) + printf("direct-xsk "); + if (running) { printf("running..."); fflush(stdout); @@ -202,7 +205,8 @@ static void int_exit(int sig) dump_stats(); xsk_socket__delete(xsks[0]->xsk); (void)xsk_umem__delete(umem); - remove_xdp_program(); + if (!(opt_xdp_bind_flags & XDP_DIRECT)) + remove_xdp_program(); exit(EXIT_SUCCESS); } @@ -213,7 +217,8 @@ static void __exit_with_error(int error, const char *file, const char *func, fprintf(stderr, "%s:%s:%i: errno: %d/\"%s\"\n", file, func, line, error, strerror(error)); dump_stats(); - remove_xdp_program(); + if (!(opt_xdp_bind_flags & XDP_DIRECT)) + remove_xdp_program(); exit(EXIT_FAILURE); } @@ -363,6 +368,7 @@ static struct option long_options[] = { {"frame-size", required_argument, 0, 'f'}, {"no-need-wakeup", no_argument, 0, 'm'}, {"unaligned", no_argument, 0, 'u'}, + {"direct-xsk", no_argument, 0, 'd'}, {0, 0, 0, 0} }; @@ -386,6 +392,7 @@ static void usage(const char *prog) " -m, --no-need-wakeup Turn off use of driver need wakeup flag.\n" " -f, --frame-size=n Set the frame size (must be a power of two in aligned mode, default is %d).\n" " -u, --unaligned Enable unaligned chunk placement\n" + " -d, --direct-xsk Direct packets to XDP socket.\n" "\n"; fprintf(stderr, str, prog, XSK_UMEM__DEFAULT_FRAME_SIZE); exit(EXIT_FAILURE); @@ -398,7 +405,7 @@ static void parse_command_line(int argc, char **argv) opterr = 0; for (;;) { - c = getopt_long(argc, argv, "Frtli:q:psSNn:czf:mu", + c = getopt_long(argc, argv, "Frtli:q:psSNn:czf:mud", long_options, &option_index); if (c == -1) break; @@ -452,7 +459,9 @@ static void parse_command_line(int argc, char **argv) opt_need_wakeup = false; opt_xdp_bind_flags &= ~XDP_USE_NEED_WAKEUP; break; - + case 'd': + opt_xdp_bind_flags |= XDP_DIRECT; + break; default: usage(basename(argv[0])); } -- 2.14.5
next prev parent reply other threads:[~2019-10-08 6:16 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-08 6:16 [PATCH bpf-next 0/4] Enable direct receive on AF_XDP sockets Sridhar Samudrala 2019-10-08 6:16 ` [Intel-wired-lan] " Sridhar Samudrala 2019-10-08 6:16 ` [PATCH bpf-next 1/4] bpf: introduce bpf_get_prog_id and bpf_set_prog_id helper functions Sridhar Samudrala 2019-10-08 6:16 ` [Intel-wired-lan] " Sridhar Samudrala 2019-10-08 6:16 ` [PATCH bpf-next 2/4] xsk: allow AF_XDP sockets to receive packets directly from a queue Sridhar Samudrala 2019-10-08 6:16 ` [Intel-wired-lan] " Sridhar Samudrala 2019-10-08 6:58 ` Toke Høiland-Jørgensen 2019-10-08 6:58 ` [Intel-wired-lan] " Toke =?unknown-8bit?q?H=C3=B8iland-J=C3=B8rgensen?= 2019-10-08 8:47 ` Björn Töpel 2019-10-08 8:47 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-08 8:48 ` Björn Töpel 2019-10-08 8:48 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-08 9:04 ` Toke Høiland-Jørgensen 2019-10-08 9:04 ` [Intel-wired-lan] " Toke =?unknown-8bit?q?H=C3=B8iland-J=C3=B8rgensen?= 2019-10-08 8:05 ` Björn Töpel 2019-10-08 8:05 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-09 16:32 ` Samudrala, Sridhar 2019-10-09 16:32 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-09 1:20 ` Alexei Starovoitov 2019-10-09 1:20 ` [Intel-wired-lan] " Alexei Starovoitov [not found] ` <3ED8E928C4210A4289A677D2FEB48235140134CE@fmsmsx111.amr.corp.intel.com> 2019-10-09 16:53 ` FW: " Samudrala, Sridhar 2019-10-09 16:53 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-09 17:17 ` Alexei Starovoitov 2019-10-09 17:17 ` [Intel-wired-lan] " Alexei Starovoitov 2019-10-09 19:12 ` Samudrala, Sridhar 2019-10-09 19:12 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-10 1:06 ` Alexei Starovoitov 2019-10-10 1:06 ` [Intel-wired-lan] " Alexei Starovoitov 2019-10-18 18:40 ` Samudrala, Sridhar 2019-10-18 18:40 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-18 19:22 ` Toke Høiland-Jørgensen 2019-10-18 19:22 ` [Intel-wired-lan] " Toke =?unknown-8bit?q?H=C3=B8iland-J=C3=B8rgensen?= 2019-10-19 0:14 ` Alexei Starovoitov 2019-10-19 0:14 ` [Intel-wired-lan] " Alexei Starovoitov 2019-10-19 0:45 ` Samudrala, Sridhar 2019-10-19 0:45 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-19 2:25 ` Alexei Starovoitov 2019-10-19 2:25 ` [Intel-wired-lan] " Alexei Starovoitov 2019-10-20 10:14 ` Toke Høiland-Jørgensen 2019-10-20 10:14 ` [Intel-wired-lan] " Toke =?unknown-8bit?q?H=C3=B8iland-J=C3=B8rgensen?= 2019-10-20 17:12 ` Björn Töpel 2019-10-20 17:12 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-21 20:10 ` Samudrala, Sridhar 2019-10-21 20:10 ` Samudrala, Sridhar 2019-10-21 22:34 ` Alexei Starovoitov 2019-10-21 22:34 ` Alexei Starovoitov 2019-10-22 19:06 ` Samudrala, Sridhar 2019-10-22 19:06 ` Samudrala, Sridhar 2019-10-23 17:42 ` Alexei Starovoitov 2019-10-23 17:42 ` Alexei Starovoitov 2019-10-24 18:12 ` Samudrala, Sridhar 2019-10-24 18:12 ` Samudrala, Sridhar 2019-10-25 7:42 ` Björn Töpel 2019-10-25 7:42 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-31 22:38 ` Samudrala, Sridhar 2019-10-31 22:38 ` Samudrala, Sridhar 2019-10-31 23:15 ` Alexei Starovoitov 2019-10-31 23:15 ` Alexei Starovoitov 2019-11-01 0:21 ` Jakub Kicinski 2019-11-01 0:21 ` Jakub Kicinski 2019-11-01 18:31 ` Samudrala, Sridhar 2019-11-01 18:31 ` Samudrala, Sridhar 2019-11-04 2:08 ` dan 2019-11-04 2:08 ` dan 2019-10-25 9:07 ` Björn Töpel 2019-10-25 9:07 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-08 6:16 ` [PATCH bpf-next 3/4] libbpf: handle AF_XDP sockets created with XDP_DIRECT bind flag Sridhar Samudrala 2019-10-08 6:16 ` [Intel-wired-lan] " Sridhar Samudrala 2019-10-08 8:05 ` Björn Töpel 2019-10-08 8:05 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-08 6:16 ` Sridhar Samudrala [this message] 2019-10-08 6:16 ` [Intel-wired-lan] [PATCH bpf-next 4/4] xdpsock: add an option to create AF_XDP sockets in XDP_DIRECT mode Sridhar Samudrala 2019-10-08 8:05 ` Björn Töpel 2019-10-08 8:05 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-08 8:05 ` [PATCH bpf-next 0/4] Enable direct receive on AF_XDP sockets Björn Töpel 2019-10-08 8:05 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-10-09 16:19 ` Samudrala, Sridhar 2019-10-09 16:19 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-09 0:49 ` Jakub Kicinski 2019-10-09 0:49 ` [Intel-wired-lan] " Jakub Kicinski 2019-10-09 6:29 ` Samudrala, Sridhar 2019-10-09 6:29 ` [Intel-wired-lan] " Samudrala, Sridhar 2019-10-09 16:53 ` Jakub Kicinski 2019-10-09 16:53 ` [Intel-wired-lan] " Jakub Kicinski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1570515415-45593-5-git-send-email-sridhar.samudrala@intel.com \ --to=sridhar.samudrala@intel.com \ --cc=bjorn.topel@intel.com \ --cc=bpf@vger.kernel.org \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=maciej.fijalkowski@intel.com \ --cc=magnus.karlsson@intel.com \ --cc=netdev@vger.kernel.org \ --cc=tom.herbert@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.