]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Add test for bpf_redirect to ipip/ip6tnl
authorMartin KaFai Lau <kafai@fb.com>
Wed, 9 Nov 2016 23:36:34 +0000 (15:36 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 13 Nov 2016 04:38:07 +0000 (23:38 -0500)
commit0587210b78ba31a9a0779de48d4b049f55f2e622
tree5732e718ec730c9da67ad4521dca5bfd2068c2d0
parentf24348bd1556b13629f8f0917ab04517d18a4d57
bpf: Add test for bpf_redirect to ipip/ip6tnl

The test creates two netns, ns1 and ns2.  The host (the default netns)
has an ipip or ip6tnl dev configured for tunneling traffic to the ns2.

    ping VIPS from ns1 <----> host <--tunnel--> ns2 (VIPs at loopback)

The test is to have ns1 pinging VIPs configured at the loopback
interface in ns2.

The VIPs are 10.10.1.102 and 2401:face::66 (which are configured
at lo@ns2). [Note: 0x66 => 102].

At ns1, the VIPs are routed _via_ the host.

At the host, bpf programs are installed at the veth to redirect packets
from a veth to the ipip/ip6tnl.  The test is configured in a way so
that both ingress and egress can be tested.

At ns2, the ipip/ip6tnl dev is configured with the local and remote address
specified.  The return path is routed to the dev ipip/ip6tnl.

During egress test, the host also locally tests pinging the VIPs to ensure
that bpf_redirect at egress also works for the direct egress (i.e. not
forwarding from dev ve1 to ve2).

Acked-by: Alexei Starovoitov <ast@fb.com>
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
samples/bpf/Makefile
samples/bpf/tc_l2_redirect.sh [new file with mode: 0755]
samples/bpf/tc_l2_redirect_kern.c [new file with mode: 0644]
samples/bpf/tc_l2_redirect_user.c [new file with mode: 0644]