mbox series

[bpf,v3,0/8] bpf_redirect_peer fixes

Message ID 20231114004220.6495-1-daniel@iogearbox.net (mailing list archive)
Headers show
Series bpf_redirect_peer fixes | expand

Message

Daniel Borkmann Nov. 14, 2023, 12:42 a.m. UTC
This fixes bpf_redirect_peer stats accounting for veth and netkit,
and adds tstats in the first place for the latter. Utilise indirect
call wrapper for bpf_redirect_peer, and improve test coverage of the
latter also for netkit devices. Details in the patches, thanks!

The series was targeted at bpf originally, and is done here as well,
so it can trigger BPF CI. Jakub, if you think directly going via net
is better since the majority of the diff touches net anyway, that is
fine, too.

Thanks!

v2 -> v3:
  - Add kdoc for pcpu_stat_type (Simon)
  - Reject invalid type value in netdev_do_alloc_pcpu_stats (Simon)
  - Add Reviewed-by tags from list
v1 -> v2:
  - Move stats allocation/freeing into net core (Jakub)
  - As prepwork for the above, move vrf's dstats over into the core
  - Add a check into stats alloc to enforce tstats upon
    implementing ndo_get_peer_dev
  - Add Acked-by tags from list

Daniel Borkmann (6):
  net, vrf: Move dstats structure to core
  net: Move {l,t,d}stats allocation to core and convert veth & vrf
  netkit: Add tstats per-CPU traffic counters
  bpf, netkit: Add indirect call wrapper for fetching peer dev
  selftests/bpf: De-veth-ize the tc_redirect test case
  selftests/bpf: Add netkit to tc_redirect selftest

Peilin Ye (2):
  veth: Use tstats per-CPU traffic counters
  bpf: Fix dev's rx stats for bpf_redirect_peer traffic

 drivers/net/netkit.c                          |  22 +-
 drivers/net/veth.c                            |  44 +--
 drivers/net/vrf.c                             |  38 +--
 include/linux/netdevice.h                     |  30 +-
 include/net/netkit.h                          |   6 +
 net/core/dev.c                                |  57 +++-
 net/core/filter.c                             |  19 +-
 .../selftests/bpf/prog_tests/tc_redirect.c    | 317 +++++++++++-------
 8 files changed, 334 insertions(+), 199 deletions(-)

Comments

Simon Horman Nov. 15, 2023, 9:25 a.m. UTC | #1
On Tue, Nov 14, 2023 at 01:42:12AM +0100, Daniel Borkmann wrote:
> This fixes bpf_redirect_peer stats accounting for veth and netkit,
> and adds tstats in the first place for the latter. Utilise indirect
> call wrapper for bpf_redirect_peer, and improve test coverage of the
> latter also for netkit devices. Details in the patches, thanks!
> 
> The series was targeted at bpf originally, and is done here as well,
> so it can trigger BPF CI. Jakub, if you think directly going via net
> is better since the majority of the diff touches net anyway, that is
> fine, too.
> 
> Thanks!
> 
> v2 -> v3:
>   - Add kdoc for pcpu_stat_type (Simon)
>   - Reject invalid type value in netdev_do_alloc_pcpu_stats (Simon)

Thanks Daniel,

this is not a full review, but do confirm the changes above.

>   - Add Reviewed-by tags from list

...
Martin KaFai Lau Nov. 18, 2023, midnight UTC | #2
On 11/13/23 4:42 PM, Daniel Borkmann wrote:
> This fixes bpf_redirect_peer stats accounting for veth and netkit,
> and adds tstats in the first place for the latter. Utilise indirect
> call wrapper for bpf_redirect_peer, and improve test coverage of the
> latter also for netkit devices. Details in the patches, thanks!
> 
> The series was targeted at bpf originally, and is done here as well,
> so it can trigger BPF CI. Jakub, if you think directly going via net
> is better since the majority of the diff touches net anyway, that is
> fine, too.
> 
> Thanks!
> 
> v2 -> v3:
>    - Add kdoc for pcpu_stat_type (Simon)
>    - Reject invalid type value in netdev_do_alloc_pcpu_stats (Simon)
>    - Add Reviewed-by tags from list
> v1 -> v2:
>    - Move stats allocation/freeing into net core (Jakub)
>    - As prepwork for the above, move vrf's dstats over into the core
>    - Add a check into stats alloc to enforce tstats upon
>      implementing ndo_get_peer_dev
>    - Add Acked-by tags from list

Acked-by: Martin KaFai Lau <martin.lau@kernel.org>

Considering folks may still be traveling after LPC, will give it an extra 
weekend before landing.
patchwork-bot+netdevbpf@kernel.org Nov. 20, 2023, 6:40 p.m. UTC | #3
Hello:

This series was applied to bpf/bpf.git (master)
by Martin KaFai Lau <martin.lau@kernel.org>:

On Tue, 14 Nov 2023 01:42:12 +0100 you wrote:
> This fixes bpf_redirect_peer stats accounting for veth and netkit,
> and adds tstats in the first place for the latter. Utilise indirect
> call wrapper for bpf_redirect_peer, and improve test coverage of the
> latter also for netkit devices. Details in the patches, thanks!
> 
> The series was targeted at bpf originally, and is done here as well,
> so it can trigger BPF CI. Jakub, if you think directly going via net
> is better since the majority of the diff touches net anyway, that is
> fine, too.
> 
> [...]

Here is the summary with links:
  - [bpf,v3,1/8] net, vrf: Move dstats structure to core
    https://git.kernel.org/bpf/bpf/c/79e0c5be8c73
  - [bpf,v3,2/8] net: Move {l,t,d}stats allocation to core and convert veth & vrf
    https://git.kernel.org/bpf/bpf/c/34d21de99cea
  - [bpf,v3,3/8] netkit: Add tstats per-CPU traffic counters
    https://git.kernel.org/bpf/bpf/c/ae1658272c64
  - [bpf,v3,4/8] veth: Use tstats per-CPU traffic counters
    https://git.kernel.org/bpf/bpf/c/6f2684bf2b44
  - [bpf,v3,5/8] bpf: Fix dev's rx stats for bpf_redirect_peer traffic
    https://git.kernel.org/bpf/bpf/c/024ee930cb3c
  - [bpf,v3,6/8] bpf, netkit: Add indirect call wrapper for fetching peer dev
    https://git.kernel.org/bpf/bpf/c/2c2254257040
  - [bpf,v3,7/8] selftests/bpf: De-veth-ize the tc_redirect test case
    https://git.kernel.org/bpf/bpf/c/eee82da79f03
  - [bpf,v3,8/8] selftests/bpf: Add netkit to tc_redirect selftest
    https://git.kernel.org/bpf/bpf/c/adfeae2d243d

You are awesome, thank you!