From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexei Starovoitov Subject: Re: [PATCH net-next 5/5] ebpf: Add sample ebpf program for SOCKET_SG_FILTER Date: Tue, 11 Sep 2018 21:00:39 -0700 Message-ID: <20180912040038.oobnr4yfzoaajk6k@ast-mbp> References: <1536694684-3200-1-git-send-email-tushar.n.dave@oracle.com> <1536694684-3200-6-git-send-email-tushar.n.dave@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: ast@kernel.org, daniel@iogearbox.net, davem@davemloft.net, santosh.shilimkar@oracle.com, jakub.kicinski@netronome.com, quentin.monnet@netronome.com, jiong.wang@netronome.com, sandipan@linux.vnet.ibm.com, john.fastabend@gmail.com, kafai@fb.com, rdna@fb.com, yhs@fb.com, netdev@vger.kernel.org, rds-devel@oss.oracle.com, sowmini.varadhan@oracle.com To: Tushar Dave Return-path: Received: from mail-pl1-f195.google.com ([209.85.214.195]:45451 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726644AbeILJDO (ORCPT ); Wed, 12 Sep 2018 05:03:14 -0400 Received: by mail-pl1-f195.google.com with SMTP id j8-v6so289210pll.12 for ; Tue, 11 Sep 2018 21:00:42 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1536694684-3200-6-git-send-email-tushar.n.dave@oracle.com> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, Sep 11, 2018 at 09:38:04PM +0200, Tushar Dave wrote: > Add a sample program that shows how socksg program is used and attached > to socket filter. The kernel sample program deals with struct > scatterlist that is passed as bpf context. > > When run in server mode, the sample RDS program opens PF_RDS socket, > attaches eBPF program to RDS socket which then uses bpf_msg_pull_data > helper to inspect packet data contained in struct scatterlist and > returns appropriate action code back to kernel. > > To ease testing, RDS client functionality is also added so that users > can generate RDS packet. > > Server: > [root@lab71 bpf]# ./rds_filter -s 192.168.3.71 -t tcp > running server in a loop > transport tcp > server bound to address: 192.168.3.71 port 4000 > server listening on 192.168.3.71 > > Client: > [root@lab70 bpf]# ./rds_filter -s 192.168.3.71 -c 192.168.3.70 -t tcp > transport tcp > client bound to address: 192.168.3.70 port 25278 > client sending 8192 byte message from 192.168.3.70 to 192.168.3.71 on > port 25278 > payload contains:30 31 32 33 34 35 36 37 38 39 ... > > Server output: > 192.168.3.71 received a packet from 192.168.3.71 of len 8192 cmsg len 0, > on port 25278 > payload contains:30 31 32 33 34 35 36 37 38 39 ... > server listening on 192.168.3.71 > > [root@lab71 tushar]# cat /sys/kernel/debug/tracing/trace_pipe > -0 [038] ..s. 146.947362: 0: 30 31 32 > -0 [038] ..s. 146.947364: 0: 33 34 35 > > Similarly specifying '-t ib' will run this on IB link. > > Signed-off-by: Tushar Dave > Acked-by: Sowmini Varadhan > --- > samples/bpf/Makefile | 3 + > samples/bpf/rds_filter_kern.c | 42 ++++++ > samples/bpf/rds_filter_user.c | 339 ++++++++++++++++++++++++++++++++++++++++++ please no samples. Add this as proper test to tools/testing/selftests/bpf that reports PASS/FAIL and can be run automatically. samples/bpf is effectively dead code.