1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* $Date: 2005/03/07 23:59:05 $ $RCSfile: tp.h,v $ $Revision: 1.20 $ */ 3*4882a593Smuzhiyun #ifndef CHELSIO_TP_H 4*4882a593Smuzhiyun #define CHELSIO_TP_H 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #include "common.h" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #define TP_MAX_RX_COALESCING_SIZE 16224U 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun struct tp_mib_statistics { 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun /* IP */ 13*4882a593Smuzhiyun u32 ipInReceive_hi; 14*4882a593Smuzhiyun u32 ipInReceive_lo; 15*4882a593Smuzhiyun u32 ipInHdrErrors_hi; 16*4882a593Smuzhiyun u32 ipInHdrErrors_lo; 17*4882a593Smuzhiyun u32 ipInAddrErrors_hi; 18*4882a593Smuzhiyun u32 ipInAddrErrors_lo; 19*4882a593Smuzhiyun u32 ipInUnknownProtos_hi; 20*4882a593Smuzhiyun u32 ipInUnknownProtos_lo; 21*4882a593Smuzhiyun u32 ipInDiscards_hi; 22*4882a593Smuzhiyun u32 ipInDiscards_lo; 23*4882a593Smuzhiyun u32 ipInDelivers_hi; 24*4882a593Smuzhiyun u32 ipInDelivers_lo; 25*4882a593Smuzhiyun u32 ipOutRequests_hi; 26*4882a593Smuzhiyun u32 ipOutRequests_lo; 27*4882a593Smuzhiyun u32 ipOutDiscards_hi; 28*4882a593Smuzhiyun u32 ipOutDiscards_lo; 29*4882a593Smuzhiyun u32 ipOutNoRoutes_hi; 30*4882a593Smuzhiyun u32 ipOutNoRoutes_lo; 31*4882a593Smuzhiyun u32 ipReasmTimeout; 32*4882a593Smuzhiyun u32 ipReasmReqds; 33*4882a593Smuzhiyun u32 ipReasmOKs; 34*4882a593Smuzhiyun u32 ipReasmFails; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun u32 reserved[8]; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /* TCP */ 39*4882a593Smuzhiyun u32 tcpActiveOpens; 40*4882a593Smuzhiyun u32 tcpPassiveOpens; 41*4882a593Smuzhiyun u32 tcpAttemptFails; 42*4882a593Smuzhiyun u32 tcpEstabResets; 43*4882a593Smuzhiyun u32 tcpOutRsts; 44*4882a593Smuzhiyun u32 tcpCurrEstab; 45*4882a593Smuzhiyun u32 tcpInSegs_hi; 46*4882a593Smuzhiyun u32 tcpInSegs_lo; 47*4882a593Smuzhiyun u32 tcpOutSegs_hi; 48*4882a593Smuzhiyun u32 tcpOutSegs_lo; 49*4882a593Smuzhiyun u32 tcpRetransSeg_hi; 50*4882a593Smuzhiyun u32 tcpRetransSeg_lo; 51*4882a593Smuzhiyun u32 tcpInErrs_hi; 52*4882a593Smuzhiyun u32 tcpInErrs_lo; 53*4882a593Smuzhiyun u32 tcpRtoMin; 54*4882a593Smuzhiyun u32 tcpRtoMax; 55*4882a593Smuzhiyun }; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun struct petp; 58*4882a593Smuzhiyun struct tp_params; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun struct petp *t1_tp_create(adapter_t *adapter, struct tp_params *p); 61*4882a593Smuzhiyun void t1_tp_destroy(struct petp *tp); 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun void t1_tp_intr_disable(struct petp *tp); 64*4882a593Smuzhiyun void t1_tp_intr_enable(struct petp *tp); 65*4882a593Smuzhiyun void t1_tp_intr_clear(struct petp *tp); 66*4882a593Smuzhiyun int t1_tp_intr_handler(struct petp *tp); 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun void t1_tp_get_mib_statistics(adapter_t *adap, struct tp_mib_statistics *tps); 69*4882a593Smuzhiyun void t1_tp_set_tcp_checksum_offload(struct petp *tp, int enable); 70*4882a593Smuzhiyun void t1_tp_set_ip_checksum_offload(struct petp *tp, int enable); 71*4882a593Smuzhiyun int t1_tp_set_coalescing_size(struct petp *tp, unsigned int size); 72*4882a593Smuzhiyun int t1_tp_reset(struct petp *tp, struct tp_params *p, unsigned int tp_clk); 73*4882a593Smuzhiyun #endif 74