#
f803bcf9 |
| 14-Mar-2024 |
Alessandro Carminati (Red Hat) <alessandro.carminati@gmail.com> |
selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh
In some systems, the netcat server can incur in delay to start listening. When this happens, the test can randomly fail
selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh
In some systems, the netcat server can incur in delay to start listening. When this happens, the test can randomly fail in various points. This is an example error message:
# ip gre none gso # encap 192.168.1.1 to 192.168.1.2, type gre, mac none len 2000 # test basic connectivity # Ncat: Connection refused.
The issue stems from a race condition between the netcat client and server. The test author had addressed this problem by implementing a sleep, which I have removed in this patch. This patch introduces a function capable of sleeping for up to two seconds. However, it can terminate the waiting period early if the port is reported to be listening.
Signed-off-by: Alessandro Carminati (Red Hat) <alessandro.carminati@gmail.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20240314105911.213411-1-alessandro.carminati@gmail.com
show more ...
|
#
7105f76f |
| 13-Jan-2023 |
Ziyang Xuan <william.xuanziyang@huawei.com> |
selftests/bpf: add ipip6 and ip6ip decap to test_tc_tunnel
Add ipip6 and ip6ip decap testcases. Verify that bpf_skb_adjust_room() correctly decapsulate ipip6 and ip6ip tunnel packets.
Signed-off-by
selftests/bpf: add ipip6 and ip6ip decap to test_tc_tunnel
Add ipip6 and ip6ip decap testcases. Verify that bpf_skb_adjust_room() correctly decapsulate ipip6 and ip6ip tunnel packets.
Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/r/dfd2d8cfdf9111bd129170d4345296f53bee6a67.1673574419.git.william.xuanziyang@huawei.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
show more ...
|
#
98af3746 |
| 20-Oct-2022 |
Wang Yufen <wangyufen@huawei.com> |
selftests/bpf: fix missing BPF object files
After commit afef88e65554 ("selftests/bpf: Store BPF object files with .bpf.o extension"), we should use *.bpf.o instead of *.o.
In addition, use the BPF
selftests/bpf: fix missing BPF object files
After commit afef88e65554 ("selftests/bpf: Store BPF object files with .bpf.o extension"), we should use *.bpf.o instead of *.o.
In addition, use the BPF_FILE variable to save the BPF object file name, which can be better identified and modified.
Fixes: afef88e65554 ("selftests/bpf: Store BPF object files with .bpf.o extension") Signed-off-by: Wang Yufen <wangyufen@huawei.com> Acked-by: Stanislav Fomichev <sdf@google.com> Link: https://lore.kernel.org/r/1666235134-562-1-git-send-email-wangyufen@huawei.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
875fc315 |
| 19-Jul-2021 |
Vincent Li <vincent.mc.li@gmail.com> |
selftests, bpf: test_tc_tunnel.sh nc: Cannot use -p and -l
When run test_tc_tunnel.sh, it complains following error
ipip encap 192.168.1.1 to 192.168.1.2, type ipip, mac none len 100 test basic con
selftests, bpf: test_tc_tunnel.sh nc: Cannot use -p and -l
When run test_tc_tunnel.sh, it complains following error
ipip encap 192.168.1.1 to 192.168.1.2, type ipip, mac none len 100 test basic connectivity nc: cannot use -p and -l
nc man page has:
-l Listen for an incoming connection rather than initiating a connection to a remote host.Cannot be used together with any of the options -psxz. Additionally, any timeouts specified with the -w option are ignored.
Correct nc in server_listen().
Signed-off-by: Vincent Li <vincent.mc.li@gmail.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Martin KaFai Lau <kafai@fb.com> Link: https://lore.kernel.org/bpf/20210719223022.66681-1-vincent.mc.li@gmail.com
show more ...
|
#
256becd4 |
| 05-Mar-2021 |
Xuesen Huang <huangxuesen@kuaishou.com> |
selftests, bpf: Extend test_tc_tunnel test with vxlan
Add BPF_F_ADJ_ROOM_ENCAP_L2_ETH flag to the existing tests which encapsulates the ethernet as the inner l2 header.
Update a vxlan encapsulation
selftests, bpf: Extend test_tc_tunnel test with vxlan
Add BPF_F_ADJ_ROOM_ENCAP_L2_ETH flag to the existing tests which encapsulates the ethernet as the inner l2 header.
Update a vxlan encapsulation test case.
Signed-off-by: Xuesen Huang <huangxuesen@kuaishou.com> Signed-off-by: Li Wang <wangli09@kuaishou.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/bpf/20210305123347.15311-1-hxseverything@gmail.com
show more ...
|
#
3b054b71 |
| 15-Nov-2019 |
Jiri Benc <jbenc@redhat.com> |
selftests, bpf: Fix test_tc_tunnel hanging
When run_kselftests.sh is run, it hangs after test_tc_tunnel.sh. The reason is test_tc_tunnel.sh ensures the server ('nc -l') is run all the time, starting
selftests, bpf: Fix test_tc_tunnel hanging
When run_kselftests.sh is run, it hangs after test_tc_tunnel.sh. The reason is test_tc_tunnel.sh ensures the server ('nc -l') is run all the time, starting it again every time it is expected to terminate. The exception is the final client_connect: the server is not started anymore, which ensures no process is kept running after the test is finished.
For a sit test, though, the script is terminated prematurely without the final client_connect and the 'nc' process keeps running. This in turn causes the run_one function in kselftest/runner.sh to hang forever, waiting for the runaway process to finish.
Ensure a remaining server is terminated on cleanup.
Fixes: f6ad6accaa99 ("selftests/bpf: expand test_tc_tunnel with SIT encap") Signed-off-by: Jiri Benc <jbenc@redhat.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/bpf/60919291657a9ee89c708d8aababc28ebe1420be.1573821780.git.jbenc@redhat.com
show more ...
|
#
f6ad6acc |
| 23-Apr-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: expand test_tc_tunnel with SIT encap
So far, all BPF tc tunnel testcases encapsulate in the same network protocol. Add an encap testcase that requires updating skb->protocol.
The 6in
selftests/bpf: expand test_tc_tunnel with SIT encap
So far, all BPF tc tunnel testcases encapsulate in the same network protocol. Add an encap testcase that requires updating skb->protocol.
The 6in4 tunnel encapsulates an IPv6 packet inside an IPv4 tunnel. Verify that bpf_skb_net_grow correctly updates skb->protocol to select the right protocol handler in __netif_receive_skb_core.
The BPF program should also manually update the link layer header to encode the right network protocol.
Changes v1->v2 - improve documentation of non-obvious logic
Signed-off-by: Willem de Bruijn <willemb@google.com> Tested-by: Alan Maguire <alan.maguire@oracle.com> Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
show more ...
|
#
3ec61df8 |
| 09-Apr-2019 |
Alan Maguire <alan.maguire@oracle.com> |
selftests_bpf: add L2 encap to test_tc_tunnel
Update test_tc_tunnel to verify adding inner L2 header encapsulation (an MPLS label or ethernet header) works.
Signed-off-by: Alan Maguire <alan.maguir
selftests_bpf: add L2 encap to test_tc_tunnel
Update test_tc_tunnel to verify adding inner L2 header encapsulation (an MPLS label or ethernet header) works.
Signed-off-by: Alan Maguire <alan.maguire@oracle.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
show more ...
|
#
166b5a7f |
| 09-Apr-2019 |
Alan Maguire <alan.maguire@oracle.com> |
selftests_bpf: extend test_tc_tunnel for UDP encap
commit 868d523535c2 ("bpf: add bpf_skb_adjust_room encap flags") introduced support to bpf_skb_adjust_room for GSO-friendly GRE and UDP encapsulati
selftests_bpf: extend test_tc_tunnel for UDP encap
commit 868d523535c2 ("bpf: add bpf_skb_adjust_room encap flags") introduced support to bpf_skb_adjust_room for GSO-friendly GRE and UDP encapsulation and later introduced associated test_tc_tunnel tests. Here those tests are extended to cover UDP encapsulation also.
Signed-off-by: Alan Maguire <alan.maguire@oracle.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
show more ...
|
#
0c4ea7f8 |
| 25-Mar-2019 |
Alan Maguire <alan.maguire@oracle.com> |
bpf: test_tc_tunnel.sh needs reverse path filtering disabled
test_tc_tunnel.sh sets up a pair of namespaces connected by a veth pair to verify encap/decap using bpf_skb_adjust_room. In testing this
bpf: test_tc_tunnel.sh needs reverse path filtering disabled
test_tc_tunnel.sh sets up a pair of namespaces connected by a veth pair to verify encap/decap using bpf_skb_adjust_room. In testing this, it uses tunnel links as the peer of the bpf-based encap/decap. However because the same IP header is used for inner and outer IP, when packets arrive at the tunnel interface they will be dropped by reverse path filtering as those packets are expected on the veth interface (where the destination IP of the decapped packet is configured).
To avoid this, ensure reverse path filtering is disabled for the namespace using tunneling.
Fixes: 98cdabcd0798 ("selftests/bpf: bpf tunnel encap test") Signed-off-by: Alan Maguire <alan.maguire@oracle.com> Acked-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
show more ...
|
#
75a1a9fa |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: convert bpf tunnel test to encap modes
Make the tests correctly annotate skbs with tunnel metadata.
This makes the gso tests succeed. Enable them.
Signed-off-by: Willem de Bruijn <w
selftests/bpf: convert bpf tunnel test to encap modes
Make the tests correctly annotate skbs with tunnel metadata.
This makes the gso tests succeed. Enable them.
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
94f16813 |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: convert bpf tunnel test to BPF_F_ADJ_ROOM_FIXED_GSO
Lower route MTU to ensure packets fit in device MTU after encap, then skip the gso_size changes.
Signed-off-by: Willem de Bruijn <
selftests/bpf: convert bpf tunnel test to BPF_F_ADJ_ROOM_FIXED_GSO
Lower route MTU to ensure packets fit in device MTU after encap, then skip the gso_size changes.
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
81429589 |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: extend bpf tunnel test with tso
Segmentation offload takes a longer path. Verify that the feature works with large packets.
The test succeeds if not setting dodgy in bpf_skb_adjust_r
selftests/bpf: extend bpf tunnel test with tso
Segmentation offload takes a longer path. Verify that the feature works with large packets.
The test succeeds if not setting dodgy in bpf_skb_adjust_room, as veth TSO is permissive.
If not setting SKB_GSO_DODGY, this enables tunneled TSO offload on supporting NICs.
The feature sets SKB_GSO_DODGY because the caller is untrusted. As a result the packets traverse through the gso stack at least up to TCP. And fail the gso_type validation, such as the skb->encapsulation check in gre_gso_segment and the gso_type checks introduced in commit 418e897e0716 ("gso: validate gso_type on ipip style tunnel").
This will be addressed in a follow-on feature patch. In the meantime, disable the new gso tests.
Changes v1->v2: - not all netcat versions support flag '-q', use timeout instead
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
7255fade |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: extend bpf tunnel test with gre
GRE is a commonly used protocol. Add GRE cases for both IPv4 and IPv6.
It also inserts different sized headers, which can expose some unexpected edge
selftests/bpf: extend bpf tunnel test with gre
GRE is a commonly used protocol. Add GRE cases for both IPv4 and IPv6.
It also inserts different sized headers, which can expose some unexpected edge cases.
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
ef81bd05 |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: expand bpf tunnel test to ipv6
The test only uses ipv4 so far, expand to ipv6. This is mostly a boilerplate near copy of the ipv4 path.
Signed-off-by: Willem de Bruijn <willemb@googl
selftests/bpf: expand bpf tunnel test to ipv6
The test only uses ipv4 so far, expand to ipv6. This is mostly a boilerplate near copy of the ipv4 path.
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
ccd34cd3 |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: expand bpf tunnel test with decap
The bpf tunnel test encapsulates using bpf, then decapsulates using a standard tunnel device to verify correctness.
Once encap is verified, also tes
selftests/bpf: expand bpf tunnel test with decap
The bpf tunnel test encapsulates using bpf, then decapsulates using a standard tunnel device to verify correctness.
Once encap is verified, also test decap, by replacing the tunnel device on decap with another bpf program.
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|
#
98cdabcd |
| 22-Mar-2019 |
Willem de Bruijn <willemb@google.com> |
selftests/bpf: bpf tunnel encap test
Validate basic tunnel encapsulation using ipip.
Set up two namespaces connected by veth. Connect a client and server. Do this with and without bpf encap.
Signe
selftests/bpf: bpf tunnel encap test
Validate basic tunnel encapsulation using ipip.
Set up two namespaces connected by veth. Connect a client and server. Do this with and without bpf encap.
Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
show more ...
|