Skip to content

Commit 9dca599

Browse files
committed
Merge branch 'nfp-LSO-checksum-and-XDP-datapath-updates'
Jakub Kicinski says: ==================== nfp: LSO, checksum and XDP datapath updates This series introduces a number of refinements to standard features like LSO and checksum offload. Three major features are support for CHECKSUM_COMPLETE, refinement of TSO handling and another small speed up for XDP TX. This series also switches from depending on some app FW<>driver ABI versions to heavier use of capabilities. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 173e783 + 730b3ab commit 9dca599

File tree

4 files changed

+149
-79
lines changed

4 files changed

+149
-79
lines changed

drivers/net/ethernet/netronome/nfp/nfp_net.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
#define NFP_NET_RX_DESCS_DEFAULT 4096 /* Default # of Rx descs per ring */
103103

104104
#define NFP_NET_FL_BATCH 16 /* Add freelist in this Batch size */
105+
#define NFP_NET_XDP_MAX_COMPLETE 2048 /* XDP bufs to reclaim in NAPI poll */
105106

106107
/* Offload definitions */
107108
#define NFP_NET_N_VXLAN_PORTS (NFP_NET_CFG_VXLAN_SZ / sizeof(__be16))
@@ -116,6 +117,9 @@ struct nfp_eth_table_port;
116117
struct nfp_net;
117118
struct nfp_net_r_vector;
118119

120+
/* Convenience macro for wrapping descriptor index on ring size */
121+
#define D_IDX(ring, idx) ((idx) & ((ring)->cnt - 1))
122+
119123
/* Convenience macro for writing dma address into RX/TX descriptors */
120124
#define nfp_desc_set_dma_addr(desc, dma_addr) \
121125
do { \
@@ -153,10 +157,15 @@ struct nfp_net_tx_desc {
153157
__le32 dma_addr_lo; /* Low 32bit of host buf addr */
154158

155159
__le16 mss; /* MSS to be used for LSO */
156-
u8 l4_offset; /* LSO, where the L4 data starts */
160+
u8 lso_hdrlen; /* LSO, TCP payload offset */
157161
u8 flags; /* TX Flags, see @PCIE_DESC_TX_* */
158-
159-
__le16 vlan; /* VLAN tag to add if indicated */
162+
union {
163+
struct {
164+
u8 l3_offset; /* L3 header offset */
165+
u8 l4_offset; /* L4 header offset */
166+
};
167+
__le16 vlan; /* VLAN tag to add if indicated */
168+
};
160169
__le16 data_len; /* Length of frame + meta data */
161170
} __packed;
162171
__le32 vals[4];
@@ -287,9 +296,11 @@ struct nfp_net_rx_desc {
287296
#define NFP_NET_META_FIELD_MASK GENMASK(NFP_NET_META_FIELD_SIZE - 1, 0)
288297

289298
struct nfp_meta_parsed {
290-
u32 hash_type;
299+
u8 hash_type;
300+
u8 csum_type;
291301
u32 hash;
292302
u32 mark;
303+
__wsum csum;
293304
};
294305

295306
struct nfp_net_rx_hash {

0 commit comments

Comments
 (0)