summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/nfp_net.h
diff options
context:
space:
mode:
authorJakub Kicinski2017-03-10 19:38:39 +0100
committerDavid S. Miller2017-03-13 07:43:19 +0100
commit6fe0c3b43804c9803a4a31c9d2ed8c2014bc0dc3 (patch)
tree2c36b92d04514722d96b99ee4c909886027313e7 /drivers/net/ethernet/netronome/nfp/nfp_net.h
parentnfp: prepare metadata handling for xdp_adjust_head() (diff)
downloadkernel-qcow2-linux-6fe0c3b43804c9803a4a31c9d2ed8c2014bc0dc3.tar.gz
kernel-qcow2-linux-6fe0c3b43804c9803a4a31c9d2ed8c2014bc0dc3.tar.xz
kernel-qcow2-linux-6fe0c3b43804c9803a4a31c9d2ed8c2014bc0dc3.zip
nfp: add support for xdp_adjust_head()
Support prepending data from XDP. We are already always allocating some headroom because FW may prepend metadata to packets. xdp_adjust_head() can be supported by making sure that headroom is big enough for XDP. In case FW had prepended metadata to the packet, however, we have to move it out of the way before we call XDP. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net.h')
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_net.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net.h b/drivers/net/ethernet/netronome/nfp/nfp_net.h
index 5f0547c6efb8..4d45f4573b57 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net.h
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net.h
@@ -439,6 +439,7 @@ struct nfp_stat_pair {
* @bpf_offload_xdp: Offloaded BPF program is XDP
* @chained_metadata_format: Firemware will use new metadata format
* @rx_dma_dir: Mapping direction for RX buffers
+ * @rx_dma_off: Offset at which DMA packets (for XDP headroom)
* @rx_offset: Offset in the RX buffers where packet data starts
* @ctrl: Local copy of the control register/word.
* @fl_bufsz: Currently configured size of the freelist buffers
@@ -465,6 +466,7 @@ struct nfp_net_dp {
u8 chained_metadata_format:1;
u8 rx_dma_dir;
+ u8 rx_dma_off;
u8 rx_offset;