[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1481088714-54512-1-git-send-email-kafai@fb.com>
Date: Tue, 6 Dec 2016 21:31:50 -0800
From: Martin KaFai Lau <kafai@...com>
To: <netdev@...r.kernel.org>
CC: Alexei Starovoitov <ast@...com>,
Brenden Blanco <bblanco@...mgrid.com>,
Daniel Borkmann <daniel@...earbox.net>,
David Miller <davem@...emloft.net>,
Jakub Kicinski <kubakici@...pl>,
Jesper Dangaard Brouer <brouer@...hat.com>,
John Fastabend <john.fastabend@...il.com>,
Saeed Mahameed <saeedm@...lanox.com>,
Tariq Toukan <tariqt@...lanox.com>,
Kernel Team <kernel-team@...com>
Subject: [PATCH v3 net-next 0/4]: Allow head adjustment in XDP prog
This series adds a helper to allow head adjusting in XDP prog. mlx4
driver has been modified to support this feature. An example is written
to encapsulate a packet with an IPv4/v6 header and then XDP_TX it
out.
v3:
1. Check if the driver supports head adjustment before
setting the xdp_prog fd to the device in patch 1of4.
2. Remove the page alignment assumption on the data_hard_start.
Instead, add data_hard_start to the struct xdp_buff and the
driver has to fill it if it supports head adjustment.
3. Keep the wire MTU as before in mlx4
4. Set map0_byte_count to PAGE_SIZE in patch 3of4
v2:
1. Make a variable name change in bpf_xdp_adjust_head() in patch 1
2. Ensure no less than ETH_HLEN data in bpf_xdp_adjust_head() in patch 1
3. Some clarifications in commit log messages of patch 2 and 3
Thanks,
Martin
Martin KaFai Lau (4):
bpf: xdp: Allow head adjustment in XDP prog
mlx4: xdp: Allow raising MTU up to one page minus eth and vlan hdrs
mlx4: xdp: Reserve headroom for receiving packet when XDP prog is
active
bpf: xdp: Add XDP example for head adjustment
arch/powerpc/net/bpf_jit_comp64.c | 4 +-
arch/s390/net/bpf_jit_comp.c | 2 +-
arch/x86/net/bpf_jit_comp.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 32 ++-
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 70 +++---
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 9 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 +
.../net/ethernet/netronome/nfp/nfp_net_common.c | 3 +
drivers/net/ethernet/qlogic/qede/qede_main.c | 3 +
include/linux/filter.h | 6 +-
include/linux/netdevice.h | 12 +
include/uapi/linux/bpf.h | 11 +-
kernel/bpf/core.c | 2 +-
kernel/bpf/syscall.c | 2 +
kernel/bpf/verifier.c | 2 +-
net/core/dev.c | 9 +
net/core/filter.c | 28 ++-
samples/bpf/Makefile | 4 +
samples/bpf/bpf_helpers.h | 2 +
samples/bpf/bpf_load.c | 94 ++++++++
samples/bpf/bpf_load.h | 1 +
samples/bpf/xdp1_user.c | 93 --------
samples/bpf/xdp_tx_iptnl_common.h | 37 +++
samples/bpf/xdp_tx_iptnl_kern.c | 232 +++++++++++++++++++
samples/bpf/xdp_tx_iptnl_user.c | 253 +++++++++++++++++++++
26 files changed, 774 insertions(+), 145 deletions(-)
create mode 100644 samples/bpf/xdp_tx_iptnl_common.h
create mode 100644 samples/bpf/xdp_tx_iptnl_kern.c
create mode 100644 samples/bpf/xdp_tx_iptnl_user.c
--
2.5.1
Powered by blists - more mailing lists