@@ -139,11 +139,15 @@ struct tx_cmp {
139
139
__le32 tx_cmp_flags_type ;
140
140
#define CMP_TYPE (0x3f << 0)
141
141
#define CMP_TYPE_TX_L2_CMP 0
142
+ #define CMP_TYPE_TX_L2_COAL_CMP 2
143
+ #define CMP_TYPE_TX_L2_PKT_TS_CMP 4
142
144
#define CMP_TYPE_RX_L2_CMP 17
143
145
#define CMP_TYPE_RX_AGG_CMP 18
144
146
#define CMP_TYPE_RX_L2_TPA_START_CMP 19
145
147
#define CMP_TYPE_RX_L2_TPA_END_CMP 21
146
148
#define CMP_TYPE_RX_TPA_AGG_CMP 22
149
+ #define CMP_TYPE_RX_L2_V3_CMP 23
150
+ #define CMP_TYPE_RX_L2_TPA_START_V3_CMP 25
147
151
#define CMP_TYPE_STATUS_CMP 32
148
152
#define CMP_TYPE_REMOTE_DRIVER_REQ 34
149
153
#define CMP_TYPE_REMOTE_DRIVER_RESP 36
@@ -170,9 +174,13 @@ struct tx_cmp {
170
174
#define TX_CMP_ERRORS_DMA_ERROR (1 << 6)
171
175
#define TX_CMP_ERRORS_HINT_TOO_SHORT (1 << 7)
172
176
173
- __le32 tx_cmp_unsed_3 ;
177
+ __le32 sq_cons_idx ;
178
+ #define TX_CMP_SQ_CONS_IDX_MASK 0x00ffffff
174
179
};
175
180
181
+ #define TX_CMP_SQ_CONS_IDX (txcmp ) \
182
+ (le32_to_cpu((txcmp)->sq_cons_idx) & TX_CMP_SQ_CONS_IDX_MASK)
183
+
176
184
struct rx_cmp {
177
185
__le32 rx_cmp_len_flags_type ;
178
186
#define RX_CMP_CMP_TYPE (0x3f << 0)
@@ -200,8 +208,20 @@ struct rx_cmp {
200
208
#define RX_CMP_AGG_BUFS_SHIFT 1
201
209
#define RX_CMP_RSS_HASH_TYPE (0x7f << 9)
202
210
#define RX_CMP_RSS_HASH_TYPE_SHIFT 9
211
+ #define RX_CMP_V3_RSS_EXT_OP_LEGACY (0xf << 12)
212
+ #define RX_CMP_V3_RSS_EXT_OP_LEGACY_SHIFT 12
213
+ #define RX_CMP_V3_RSS_EXT_OP_NEW (0xf << 8)
214
+ #define RX_CMP_V3_RSS_EXT_OP_NEW_SHIFT 8
203
215
#define RX_CMP_PAYLOAD_OFFSET (0xff << 16)
204
216
#define RX_CMP_PAYLOAD_OFFSET_SHIFT 16
217
+ #define RX_CMP_SUB_NS_TS (0xf << 16)
218
+ #define RX_CMP_SUB_NS_TS_SHIFT 16
219
+ #define RX_CMP_METADATA1 (0xf << 28)
220
+ #define RX_CMP_METADATA1_SHIFT 28
221
+ #define RX_CMP_METADATA1_TPID_SEL (0x7 << 28)
222
+ #define RX_CMP_METADATA1_TPID_8021Q (0x1 << 28)
223
+ #define RX_CMP_METADATA1_TPID_8021AD (0x0 << 28)
224
+ #define RX_CMP_METADATA1_VALID (0x8 << 28)
205
225
206
226
__le32 rx_cmp_rss_hash ;
207
227
};
@@ -215,6 +235,30 @@ struct rx_cmp {
215
235
(((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_RSS_HASH_TYPE) >>\
216
236
RX_CMP_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
217
237
238
+ #define RX_CMP_V3_HASH_TYPE_LEGACY (rxcmp ) \
239
+ ((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_V3_RSS_EXT_OP_LEGACY) >>\
240
+ RX_CMP_V3_RSS_EXT_OP_LEGACY_SHIFT)
241
+
242
+ #define RX_CMP_V3_HASH_TYPE_NEW (rxcmp ) \
243
+ ((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_V3_RSS_EXT_OP_NEW) >>\
244
+ RX_CMP_V3_RSS_EXT_OP_NEW_SHIFT)
245
+
246
+ #define RX_CMP_V3_HASH_TYPE (bp , rxcmp ) \
247
+ (((bp)->rss_cap & BNXT_RSS_CAP_RSS_TCAM) ? \
248
+ RX_CMP_V3_HASH_TYPE_NEW(rxcmp) : \
249
+ RX_CMP_V3_HASH_TYPE_LEGACY(rxcmp))
250
+
251
+ #define EXT_OP_INNER_4 0x0
252
+ #define EXT_OP_OUTER_4 0x2
253
+ #define EXT_OP_INNFL_3 0x8
254
+ #define EXT_OP_OUTFL_3 0xa
255
+
256
+ #define RX_CMP_VLAN_VALID (rxcmp ) \
257
+ ((rxcmp)->rx_cmp_misc_v1 & cpu_to_le32(RX_CMP_METADATA1_VALID))
258
+
259
+ #define RX_CMP_VLAN_TPID_SEL (rxcmp ) \
260
+ (le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_METADATA1_TPID_SEL)
261
+
218
262
struct rx_cmp_ext {
219
263
__le32 rx_cmp_flags2 ;
220
264
#define RX_CMP_FLAGS2_IP_CS_CALC 0x1
@@ -262,6 +306,9 @@ struct rx_cmp_ext {
262
306
263
307
#define RX_CMPL_CFA_CODE_MASK (0xffff << 16)
264
308
#define RX_CMPL_CFA_CODE_SFT 16
309
+ #define RX_CMPL_METADATA0_TCI_MASK (0xffff << 16)
310
+ #define RX_CMPL_METADATA0_VID_MASK (0x0fff << 16)
311
+ #define RX_CMPL_METADATA0_SFT 16
265
312
266
313
__le32 rx_cmp_timestamp ;
267
314
};
@@ -287,6 +334,10 @@ struct rx_cmp_ext {
287
334
((le32_to_cpu((rxcmpl1)->rx_cmp_cfa_code_errors_v2) & \
288
335
RX_CMPL_CFA_CODE_MASK) >> RX_CMPL_CFA_CODE_SFT)
289
336
337
+ #define RX_CMP_METADATA0_TCI (rxcmp1 ) \
338
+ ((le32_to_cpu((rxcmp1)->rx_cmp_cfa_code_errors_v2) & \
339
+ RX_CMPL_METADATA0_TCI_MASK) >> RX_CMPL_METADATA0_SFT)
340
+
290
341
struct rx_agg_cmp {
291
342
__le32 rx_agg_cmp_len_flags_type ;
292
343
#define RX_AGG_CMP_TYPE (0x3f << 0)
@@ -329,10 +380,18 @@ struct rx_tpa_start_cmp {
329
380
#define RX_TPA_START_CMP_V1 (0x1 << 0)
330
381
#define RX_TPA_START_CMP_RSS_HASH_TYPE (0x7f << 9)
331
382
#define RX_TPA_START_CMP_RSS_HASH_TYPE_SHIFT 9
383
+ #define RX_TPA_START_CMP_V3_RSS_HASH_TYPE (0x1ff << 7)
384
+ #define RX_TPA_START_CMP_V3_RSS_HASH_TYPE_SHIFT 7
332
385
#define RX_TPA_START_CMP_AGG_ID (0x7f << 25)
333
386
#define RX_TPA_START_CMP_AGG_ID_SHIFT 25
334
387
#define RX_TPA_START_CMP_AGG_ID_P5 (0xffff << 16)
335
388
#define RX_TPA_START_CMP_AGG_ID_SHIFT_P5 16
389
+ #define RX_TPA_START_CMP_METADATA1 (0xf << 28)
390
+ #define RX_TPA_START_CMP_METADATA1_SHIFT 28
391
+ #define RX_TPA_START_METADATA1_TPID_SEL (0x7 << 28)
392
+ #define RX_TPA_START_METADATA1_TPID_8021Q (0x1 << 28)
393
+ #define RX_TPA_START_METADATA1_TPID_8021AD (0x0 << 28)
394
+ #define RX_TPA_START_METADATA1_VALID (0x8 << 28)
336
395
337
396
__le32 rx_tpa_start_cmp_rss_hash ;
338
397
};
@@ -346,6 +405,11 @@ struct rx_tpa_start_cmp {
346
405
RX_TPA_START_CMP_RSS_HASH_TYPE) >> \
347
406
RX_TPA_START_CMP_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
348
407
408
+ #define TPA_START_V3_HASH_TYPE (rx_tpa_start ) \
409
+ (((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_misc_v1) & \
410
+ RX_TPA_START_CMP_V3_RSS_HASH_TYPE) >> \
411
+ RX_TPA_START_CMP_V3_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
412
+
349
413
#define TPA_START_AGG_ID (rx_tpa_start ) \
350
414
((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_misc_v1) & \
351
415
RX_TPA_START_CMP_AGG_ID) >> RX_TPA_START_CMP_AGG_ID_SHIFT)
@@ -358,6 +422,14 @@ struct rx_tpa_start_cmp {
358
422
((rx_tpa_start)->rx_tpa_start_cmp_len_flags_type & \
359
423
cpu_to_le32(RX_TPA_START_CMP_FLAGS_ERROR))
360
424
425
+ #define TPA_START_VLAN_VALID (rx_tpa_start ) \
426
+ ((rx_tpa_start)->rx_tpa_start_cmp_misc_v1 & \
427
+ cpu_to_le32(RX_TPA_START_METADATA1_VALID))
428
+
429
+ #define TPA_START_VLAN_TPID_SEL (rx_tpa_start ) \
430
+ (le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_misc_v1) & \
431
+ RX_TPA_START_METADATA1_TPID_SEL)
432
+
361
433
struct rx_tpa_start_cmp_ext {
362
434
__le32 rx_tpa_start_cmp_flags2 ;
363
435
#define RX_TPA_START_CMP_FLAGS2_IP_CS_CALC (0x1 << 0)
@@ -368,6 +440,8 @@ struct rx_tpa_start_cmp_ext {
368
440
#define RX_TPA_START_CMP_FLAGS2_CSUM_CMPL_VALID (0x1 << 9)
369
441
#define RX_TPA_START_CMP_FLAGS2_EXT_META_FORMAT (0x3 << 10)
370
442
#define RX_TPA_START_CMP_FLAGS2_EXT_META_FORMAT_SHIFT 10
443
+ #define RX_TPA_START_CMP_V3_FLAGS2_T_IP_TYPE (0x1 << 10)
444
+ #define RX_TPA_START_CMP_V3_FLAGS2_AGG_GRO (0x1 << 11)
371
445
#define RX_TPA_START_CMP_FLAGS2_CSUM_CMPL (0xffff << 16)
372
446
#define RX_TPA_START_CMP_FLAGS2_CSUM_CMPL_SHIFT 16
373
447
@@ -381,6 +455,9 @@ struct rx_tpa_start_cmp_ext {
381
455
#define RX_TPA_START_CMP_ERRORS_BUFFER_ERROR_FLUSH (0x5 << 1)
382
456
#define RX_TPA_START_CMP_CFA_CODE (0xffff << 16)
383
457
#define RX_TPA_START_CMPL_CFA_CODE_SHIFT 16
458
+ #define RX_TPA_START_CMP_METADATA0_TCI_MASK (0xffff << 16)
459
+ #define RX_TPA_START_CMP_METADATA0_VID_MASK (0x0fff << 16)
460
+ #define RX_TPA_START_CMP_METADATA0_SFT 16
384
461
__le32 rx_tpa_start_cmp_hdr_info ;
385
462
};
386
463
@@ -397,6 +474,11 @@ struct rx_tpa_start_cmp_ext {
397
474
RX_TPA_START_CMP_ERRORS_BUFFER_ERROR_MASK) >> \
398
475
RX_TPA_START_CMP_ERRORS_BUFFER_ERROR_SHIFT)
399
476
477
+ #define TPA_START_METADATA0_TCI (rx_tpa_start ) \
478
+ ((le32_to_cpu((rx_tpa_start)->rx_tpa_start_cmp_cfa_code_v2) & \
479
+ RX_TPA_START_CMP_METADATA0_TCI_MASK) >> \
480
+ RX_TPA_START_CMP_METADATA0_SFT)
481
+
400
482
struct rx_tpa_end_cmp {
401
483
__le32 rx_tpa_end_cmp_len_flags_type ;
402
484
#define RX_TPA_END_CMP_TYPE (0x3f << 0)
@@ -2023,6 +2105,7 @@ struct bnxt {
2023
2105
#define BNXT_RSS_CAP_RSS_HASH_TYPE_DELTA BIT(0)
2024
2106
#define BNXT_RSS_CAP_UDP_RSS_CAP BIT(1)
2025
2107
#define BNXT_RSS_CAP_NEW_RSS_CAP BIT(2)
2108
+ #define BNXT_RSS_CAP_RSS_TCAM BIT(3)
2026
2109
2027
2110
u16 max_mtu ;
2028
2111
u8 max_tc ;
0 commit comments