Deleted Added
full compact
qlnx_def.h (320164) qlnx_def.h (322851)
1/*
2 * Copyright (c) 2017-2018 Cavium, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 10 unchanged lines hidden (view full) ---

19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 *
1/*
2 * Copyright (c) 2017-2018 Cavium, Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 10 unchanged lines hidden (view full) ---

19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 *
27 * $FreeBSD: stable/11/sys/dev/qlnx/qlnxe/qlnx_def.h 320164 2017-06-20 19:16:06Z davidcs $
27 * $FreeBSD: stable/11/sys/dev/qlnx/qlnxe/qlnx_def.h 322851 2017-08-24 18:51:55Z davidcs $
28 *
29 */
30
31
32
33/*
34 * File: qlnx_def.h
35 * Author : David C Somayajulu, Cavium Inc., San Jose, CA 95131.

--- 9 unchanged lines hidden (view full) ---

45 void *ha;
46 struct resource *irq;
47 void *handle;
48 int irq_rid;
49};
50
51typedef struct qlnx_ivec qlnx_ivec_t;
52
28 *
29 */
30
31
32
33/*
34 * File: qlnx_def.h
35 * Author : David C Somayajulu, Cavium Inc., San Jose, CA 95131.

--- 9 unchanged lines hidden (view full) ---

45 void *ha;
46 struct resource *irq;
47 void *handle;
48 int irq_rid;
49};
50
51typedef struct qlnx_ivec qlnx_ivec_t;
52
53//#define QLNX_MAX_RSS 30
54#define QLNX_MAX_RSS 16
55#define QLNX_MAX_TC 1
53//#define QLNX_MAX_RSS 30
54#define QLNX_MAX_RSS 36
55#define QLNX_DEFAULT_RSS 16
56#define QLNX_MAX_TC 1
56
57enum QLNX_STATE {
58 QLNX_STATE_CLOSED,
59 QLNX_STATE_OPEN,
60};
61
62#define HILO_U64(hi, lo) ((((u64)(hi)) << 32) + (lo))
63

--- 132 unchanged lines hidden (view full) ---

196 struct task fp_task;
197 struct taskqueue *fp_taskqueue;
198
199 /* transmit statistics */
200 uint64_t tx_pkts_processed;
201 uint64_t tx_pkts_freed;
202 uint64_t tx_pkts_transmitted;
203 uint64_t tx_pkts_completed;
57
58enum QLNX_STATE {
59 QLNX_STATE_CLOSED,
60 QLNX_STATE_OPEN,
61};
62
63#define HILO_U64(hi, lo) ((((u64)(hi)) << 32) + (lo))
64

--- 132 unchanged lines hidden (view full) ---

197 struct task fp_task;
198 struct taskqueue *fp_taskqueue;
199
200 /* transmit statistics */
201 uint64_t tx_pkts_processed;
202 uint64_t tx_pkts_freed;
203 uint64_t tx_pkts_transmitted;
204 uint64_t tx_pkts_completed;
205 uint64_t tx_tso_pkts;
206 uint64_t tx_non_tso_pkts;
207
208#ifdef QLNX_TRACE_PERF_DATA
209 uint64_t tx_pkts_trans_ctx;
210 uint64_t tx_pkts_compl_ctx;
211 uint64_t tx_pkts_trans_fp;
212 uint64_t tx_pkts_compl_fp;
213 uint64_t tx_pkts_compl_intr;
214#endif
215
204 uint64_t tx_lso_wnd_min_len;
205 uint64_t tx_defrag;
206 uint64_t tx_nsegs_gt_elem_left;
207 uint32_t tx_tso_max_nsegs;
208 uint32_t tx_tso_min_nsegs;
209 uint32_t tx_tso_max_pkt_len;
210 uint32_t tx_tso_min_pkt_len;
211 uint64_t tx_pkts[QLNX_FP_MAX_SEGS];
216 uint64_t tx_lso_wnd_min_len;
217 uint64_t tx_defrag;
218 uint64_t tx_nsegs_gt_elem_left;
219 uint32_t tx_tso_max_nsegs;
220 uint32_t tx_tso_min_nsegs;
221 uint32_t tx_tso_max_pkt_len;
222 uint32_t tx_tso_min_pkt_len;
223 uint64_t tx_pkts[QLNX_FP_MAX_SEGS];
224
225#ifdef QLNX_TRACE_PERF_DATA
226 uint64_t tx_pkts_hist[QLNX_FP_MAX_SEGS];
227 uint64_t tx_comInt[QLNX_FP_MAX_SEGS];
228 uint64_t tx_pkts_q[QLNX_FP_MAX_SEGS];
229#endif
230
212 uint64_t err_tx_nsegs_gt_elem_left;
213 uint64_t err_tx_dmamap_create;
214 uint64_t err_tx_defrag_dmamap_load;
215 uint64_t err_tx_non_tso_max_seg;
216 uint64_t err_tx_dmamap_load;
217 uint64_t err_tx_defrag;
218 uint64_t err_tx_free_pkt_null;
219 uint64_t err_tx_cons_idx_conflict;

--- 76 unchanged lines hidden (view full) ---

296 PARSING_AND_ERR_FLAGS_TUNNELL4CHKSMERROR_SHIFT)
297
298#define RX_COPY_THRESH 92
299#define ETH_MAX_PACKET_SIZE 1500
300
301#define QLNX_MFW_VERSION_LENGTH 32
302#define QLNX_STORMFW_VERSION_LENGTH 32
303
231 uint64_t err_tx_nsegs_gt_elem_left;
232 uint64_t err_tx_dmamap_create;
233 uint64_t err_tx_defrag_dmamap_load;
234 uint64_t err_tx_non_tso_max_seg;
235 uint64_t err_tx_dmamap_load;
236 uint64_t err_tx_defrag;
237 uint64_t err_tx_free_pkt_null;
238 uint64_t err_tx_cons_idx_conflict;

--- 76 unchanged lines hidden (view full) ---

315 PARSING_AND_ERR_FLAGS_TUNNELL4CHKSMERROR_SHIFT)
316
317#define RX_COPY_THRESH 92
318#define ETH_MAX_PACKET_SIZE 1500
319
320#define QLNX_MFW_VERSION_LENGTH 32
321#define QLNX_STORMFW_VERSION_LENGTH 32
322
304#define QLNX_TX_ELEM_RESERVE 2
323#define QLNX_TX_ELEM_RESERVE 2
324#define QLNX_TX_ELEM_THRESH 128
325#define QLNX_TX_ELEM_MAX_THRESH 512
326#define QLNX_TX_ELEM_MIN_THRESH 32
327#define QLNX_TX_COMPL_THRESH 32
305
328
329
306#define QLNX_TPA_MAX_AGG_BUFFERS (20)
307
308#define QLNX_MAX_NUM_MULTICAST_ADDRS ECORE_MAX_MC_ADDRS
309typedef struct _qlnx_mcast {
310 uint16_t rsrvd;
311 uint8_t addr[6];
312} __packed qlnx_mcast_t;
313

--- 135 unchanged lines hidden (view full) ---

449 void *idle_chk[QLNX_MAX_HW_FUNCS];
450
451 /* storm stats related */
452#define QLNX_STORM_STATS_TOTAL \
453 (QLNX_MAX_HW_FUNCS * QLNX_STORM_STATS_SAMPLES_PER_HWFN)
454 qlnx_storm_stats_t storm_stats[QLNX_STORM_STATS_TOTAL];
455 uint32_t storm_stats_index;
456 uint32_t storm_stats_enable;
330#define QLNX_TPA_MAX_AGG_BUFFERS (20)
331
332#define QLNX_MAX_NUM_MULTICAST_ADDRS ECORE_MAX_MC_ADDRS
333typedef struct _qlnx_mcast {
334 uint16_t rsrvd;
335 uint8_t addr[6];
336} __packed qlnx_mcast_t;
337

--- 135 unchanged lines hidden (view full) ---

473 void *idle_chk[QLNX_MAX_HW_FUNCS];
474
475 /* storm stats related */
476#define QLNX_STORM_STATS_TOTAL \
477 (QLNX_MAX_HW_FUNCS * QLNX_STORM_STATS_SAMPLES_PER_HWFN)
478 qlnx_storm_stats_t storm_stats[QLNX_STORM_STATS_TOTAL];
479 uint32_t storm_stats_index;
480 uint32_t storm_stats_enable;
481 uint32_t storm_stats_gather;
457
458 uint32_t personality;
459};
460
461typedef struct qlnx_host qlnx_host_t;
462
463/* note that align has to be a power of 2 */
464#define QL_ALIGN(size, align) (size + (align - 1)) & ~(align - 1);
465#define QL_MIN(x, y) ((x < y) ? x : y)
466
467#define QL_RUNNING(ifp) \
468 ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) == \
469 IFF_DRV_RUNNING)
470
471#define QLNX_MAX_MTU 9000
472#define QLNX_MAX_SEGMENTS_NON_TSO (ETH_TX_MAX_BDS_PER_NON_LSO_PACKET - 1)
482
483 uint32_t personality;
484};
485
486typedef struct qlnx_host qlnx_host_t;
487
488/* note that align has to be a power of 2 */
489#define QL_ALIGN(size, align) (size + (align - 1)) & ~(align - 1);
490#define QL_MIN(x, y) ((x < y) ? x : y)
491
492#define QL_RUNNING(ifp) \
493 ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) == \
494 IFF_DRV_RUNNING)
495
496#define QLNX_MAX_MTU 9000
497#define QLNX_MAX_SEGMENTS_NON_TSO (ETH_TX_MAX_BDS_PER_NON_LSO_PACKET - 1)
473#define QLNX_MAX_TSO_FRAME_SIZE ((64 * 1024 - 1) + 22)
498//#define QLNX_MAX_TSO_FRAME_SIZE ((64 * 1024 - 1) + 22)
499#define QLNX_MAX_TSO_FRAME_SIZE 65536
500#define QLNX_MAX_TX_MBUF_SIZE 65536 /* bytes - bd_len = 16bits */
474
501
502
475#define QL_MAC_CMP(mac1, mac2) \
476 ((((*(uint32_t *) mac1) == (*(uint32_t *) mac2) && \
477 (*(uint16_t *)(mac1 + 4)) == (*(uint16_t *)(mac2 + 4)))) ? 0 : 1)
478#define for_each_rss(i) for (i = 0; i < ha->num_rss; i++)
479
480/*
481 * Debug Related
482 */

--- 215 unchanged lines hidden (view full) ---

698#define CQE_L4_HAS_CSUM(flags) \
699 ((flags) & (PARSING_AND_ERR_FLAGS_L4CHKSMWASCALCULATED_MASK \
700 << PARSING_AND_ERR_FLAGS_L4CHKSMWASCALCULATED_SHIFT))
701
702#define CQE_HAS_VLAN(flags) \
703 ((flags) & (PARSING_AND_ERR_FLAGS_TAG8021QEXIST_MASK \
704 << PARSING_AND_ERR_FLAGS_TAG8021QEXIST_SHIFT))
705
503#define QL_MAC_CMP(mac1, mac2) \
504 ((((*(uint32_t *) mac1) == (*(uint32_t *) mac2) && \
505 (*(uint16_t *)(mac1 + 4)) == (*(uint16_t *)(mac2 + 4)))) ? 0 : 1)
506#define for_each_rss(i) for (i = 0; i < ha->num_rss; i++)
507
508/*
509 * Debug Related
510 */

--- 215 unchanged lines hidden (view full) ---

726#define CQE_L4_HAS_CSUM(flags) \
727 ((flags) & (PARSING_AND_ERR_FLAGS_L4CHKSMWASCALCULATED_MASK \
728 << PARSING_AND_ERR_FLAGS_L4CHKSMWASCALCULATED_SHIFT))
729
730#define CQE_HAS_VLAN(flags) \
731 ((flags) & (PARSING_AND_ERR_FLAGS_TAG8021QEXIST_MASK \
732 << PARSING_AND_ERR_FLAGS_TAG8021QEXIST_SHIFT))
733
734#if defined(__i386__) || defined(__amd64__)
706
735
736static __inline
737void prefetch(void *x)
738{
739 __asm volatile("prefetcht0 %0" :: "m" (*(unsigned long *)x));
740}
741
742#else
743#define prefetch(x)
744#endif
745
746
707#endif /* #ifndef _QLNX_DEF_H_ */
747#endif /* #ifndef _QLNX_DEF_H_ */