Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/cxgbe/adapter.h
Show First 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | #else | ||||
SW_ZONE_SIZES = 3, /* cluster, jumbo9k, jumbo16k */ | SW_ZONE_SIZES = 3, /* cluster, jumbo9k, jumbo16k */ | ||||
#endif | #endif | ||||
CL_METADATA_SIZE = CACHE_LINE_SIZE, | CL_METADATA_SIZE = CACHE_LINE_SIZE, | ||||
SGE_MAX_WR_NDESC = SGE_MAX_WR_LEN / EQ_ESIZE, /* max WR size in desc */ | SGE_MAX_WR_NDESC = SGE_MAX_WR_LEN / EQ_ESIZE, /* max WR size in desc */ | ||||
TX_SGL_SEGS = 39, | TX_SGL_SEGS = 39, | ||||
TX_SGL_SEGS_TSO = 38, | TX_SGL_SEGS_TSO = 38, | ||||
TX_SGL_SEGS_EO_TSO = 30, /* XXX: lower for IPv6. */ | TX_SGL_SEGS_EO_TSO = 30, /* XXX: lower for IPv6. */ | ||||
TX_SGL_SEGS_VXLAN_TSO = 37, | |||||
TX_WR_FLITS = SGE_MAX_WR_LEN / 8 | TX_WR_FLITS = SGE_MAX_WR_LEN / 8 | ||||
}; | }; | ||||
enum { | enum { | ||||
/* adapter intr_type */ | /* adapter intr_type */ | ||||
INTR_INTX = (1 << 0), | INTR_INTX = (1 << 0), | ||||
INTR_MSI = (1 << 1), | INTR_MSI = (1 << 1), | ||||
INTR_MSIX = (1 << 2) | INTR_MSIX = (1 << 2) | ||||
▲ Show 20 Lines • Show All 151 Lines • ▼ Show 20 Lines | |||||
struct port_info { | struct port_info { | ||||
device_t dev; | device_t dev; | ||||
struct adapter *adapter; | struct adapter *adapter; | ||||
struct vi_info *vi; | struct vi_info *vi; | ||||
int nvi; | int nvi; | ||||
int up_vis; | int up_vis; | ||||
int uld_vis; | int uld_vis; | ||||
bool vxlan_tcam_entry; | |||||
struct tx_sched_params *sched_params; | struct tx_sched_params *sched_params; | ||||
struct mtx pi_lock; | struct mtx pi_lock; | ||||
char lockname[16]; | char lockname[16]; | ||||
unsigned long flags; | unsigned long flags; | ||||
uint8_t lport; /* associated offload logical port */ | uint8_t lport; /* associated offload logical port */ | ||||
▲ Show 20 Lines • Show All 291 Lines • ▼ Show 20 Lines | struct sge_txq { | ||||
uint64_t imm_wrs; /* # of work requests with immediate data */ | uint64_t imm_wrs; /* # of work requests with immediate data */ | ||||
uint64_t sgl_wrs; /* # of work requests with direct SGL */ | uint64_t sgl_wrs; /* # of work requests with direct SGL */ | ||||
uint64_t txpkt_wrs; /* # of txpkt work requests (not coalesced) */ | uint64_t txpkt_wrs; /* # of txpkt work requests (not coalesced) */ | ||||
uint64_t txpkts0_wrs; /* # of type0 coalesced tx work requests */ | uint64_t txpkts0_wrs; /* # of type0 coalesced tx work requests */ | ||||
uint64_t txpkts1_wrs; /* # of type1 coalesced tx work requests */ | uint64_t txpkts1_wrs; /* # of type1 coalesced tx work requests */ | ||||
uint64_t txpkts0_pkts; /* # of frames in type0 coalesced tx WRs */ | uint64_t txpkts0_pkts; /* # of frames in type0 coalesced tx WRs */ | ||||
uint64_t txpkts1_pkts; /* # of frames in type1 coalesced tx WRs */ | uint64_t txpkts1_pkts; /* # of frames in type1 coalesced tx WRs */ | ||||
uint64_t raw_wrs; /* # of raw work requests (alloc_wr_mbuf) */ | uint64_t raw_wrs; /* # of raw work requests (alloc_wr_mbuf) */ | ||||
uint64_t vxlan_tso_wrs; /* # of VXLAN TSO work requests */ | |||||
uint64_t vxlan_txcsum; | |||||
uint64_t kern_tls_records; | uint64_t kern_tls_records; | ||||
uint64_t kern_tls_short; | uint64_t kern_tls_short; | ||||
uint64_t kern_tls_partial; | uint64_t kern_tls_partial; | ||||
uint64_t kern_tls_full; | uint64_t kern_tls_full; | ||||
uint64_t kern_tls_octets; | uint64_t kern_tls_octets; | ||||
uint64_t kern_tls_waste; | uint64_t kern_tls_waste; | ||||
uint64_t kern_tls_options; | uint64_t kern_tls_options; | ||||
Show All 16 Lines | struct sge_rxq { | ||||
struct ifnet *ifp; /* the interface this rxq belongs to */ | struct ifnet *ifp; /* the interface this rxq belongs to */ | ||||
struct lro_ctrl lro; /* LRO state */ | struct lro_ctrl lro; /* LRO state */ | ||||
/* stats for common events first */ | /* stats for common events first */ | ||||
uint64_t rxcsum; /* # of times hardware assisted with checksum */ | uint64_t rxcsum; /* # of times hardware assisted with checksum */ | ||||
uint64_t vlan_extraction;/* # of times VLAN tag was extracted */ | uint64_t vlan_extraction;/* # of times VLAN tag was extracted */ | ||||
uint64_t vxlan_rxcsum; | |||||
/* stats for not-that-common events */ | /* stats for not-that-common events */ | ||||
} __aligned(CACHE_LINE_SIZE); | } __aligned(CACHE_LINE_SIZE); | ||||
static inline struct sge_rxq * | static inline struct sge_rxq * | ||||
iq_to_rxq(struct sge_iq *iq) | iq_to_rxq(struct sge_iq *iq) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 206 Lines • ▼ Show 20 Lines | struct adapter { | ||||
int sge_gts_reg; | int sge_gts_reg; | ||||
int sge_kdoorbell_reg; | int sge_kdoorbell_reg; | ||||
bus_dma_tag_t dmat; /* Parent DMA tag */ | bus_dma_tag_t dmat; /* Parent DMA tag */ | ||||
struct sge sge; | struct sge sge; | ||||
int lro_timeout; | int lro_timeout; | ||||
int sc_do_rxcopy; | int sc_do_rxcopy; | ||||
int vxlan_port; | |||||
u_int vxlan_refcount; | |||||
int rawf_base; | |||||
int nrawf; | |||||
struct taskqueue *tq[MAX_NCHAN]; /* General purpose taskqueues */ | struct taskqueue *tq[MAX_NCHAN]; /* General purpose taskqueues */ | ||||
struct task async_event_task; | struct task async_event_task; | ||||
struct port_info *port[MAX_NPORTS]; | struct port_info *port[MAX_NPORTS]; | ||||
uint8_t chan_map[MAX_NCHAN]; /* channel -> port */ | uint8_t chan_map[MAX_NCHAN]; /* channel -> port */ | ||||
struct mtx clip_table_lock; | struct mtx clip_table_lock; | ||||
TAILQ_HEAD(, clip_entry) clip_table; | TAILQ_HEAD(, clip_entry) clip_table; | ||||
▲ Show 20 Lines • Show All 520 Lines • Show Last 20 Lines |