efx.h (293817) | efx.h (293891) |
---|---|
1/*- 2 * Copyright (c) 2006-2015 Solarflare Communications 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 are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, --- 13 unchanged lines hidden (view full) --- 22 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 24 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * The views and conclusions contained in the software and documentation are 27 * those of the authors and should not be interpreted as representing official 28 * policies, either expressed or implied, of the FreeBSD Project. 29 * | 1/*- 2 * Copyright (c) 2006-2015 Solarflare Communications 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 are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, --- 13 unchanged lines hidden (view full) --- 22 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 24 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * The views and conclusions contained in the software and documentation are 27 * those of the authors and should not be interpreted as representing official 28 * policies, either expressed or implied, of the FreeBSD Project. 29 * |
30 * $FreeBSD: head/sys/dev/sfxge/common/efx.h 293817 2016-01-13 07:46:21Z arybchik $ | 30 * $FreeBSD: head/sys/dev/sfxge/common/efx.h 293891 2016-01-14 09:05:51Z arybchik $ |
31 */ 32 33#ifndef _SYS_EFX_H 34#define _SYS_EFX_H 35 36#include "efsys.h" 37#include "efx_phy_ids.h" 38 --- 1027 unchanged lines hidden (view full) --- 1066#define EFX_FEATURE_MCDI 0x00000020 1067#define EFX_FEATURE_LOOKAHEAD_SPLIT 0x00000040 1068#define EFX_FEATURE_MAC_HEADER_FILTERS 0x00000080 1069#define EFX_FEATURE_TURBO 0x00000100 1070#define EFX_FEATURE_MCDI_DMA 0x00000200 1071#define EFX_FEATURE_TX_SRC_FILTERS 0x00000400 1072#define EFX_FEATURE_PIO_BUFFERS 0x00000800 1073#define EFX_FEATURE_FW_ASSISTED_TSO 0x00001000 | 31 */ 32 33#ifndef _SYS_EFX_H 34#define _SYS_EFX_H 35 36#include "efsys.h" 37#include "efx_phy_ids.h" 38 --- 1027 unchanged lines hidden (view full) --- 1066#define EFX_FEATURE_MCDI 0x00000020 1067#define EFX_FEATURE_LOOKAHEAD_SPLIT 0x00000040 1068#define EFX_FEATURE_MAC_HEADER_FILTERS 0x00000080 1069#define EFX_FEATURE_TURBO 0x00000100 1070#define EFX_FEATURE_MCDI_DMA 0x00000200 1071#define EFX_FEATURE_TX_SRC_FILTERS 0x00000400 1072#define EFX_FEATURE_PIO_BUFFERS 0x00000800 1073#define EFX_FEATURE_FW_ASSISTED_TSO 0x00001000 |
1074#define EFX_FEATURE_FW_ASSISTED_TSO_V2 0x00002000 |
|
1074 1075typedef struct efx_nic_cfg_s { 1076 uint32_t enc_board_type; 1077 uint32_t enc_phy_type; 1078#if EFSYS_OPT_NAMES 1079 char enc_phy_name[21]; 1080#endif 1081 char enc_phy_revision[21]; --- 65 unchanged lines hidden (view full) --- 1147 /* Number of rx descriptors the hardware requires for a push. */ 1148 uint32_t enc_rx_push_align; 1149 /* 1150 * Maximum number of bytes into the packet the TCP header can start for 1151 * the hardware to apply TSO packet edits. 1152 */ 1153 uint32_t enc_tx_tso_tcp_header_offset_limit; 1154 boolean_t enc_fw_assisted_tso_enabled; | 1075 1076typedef struct efx_nic_cfg_s { 1077 uint32_t enc_board_type; 1078 uint32_t enc_phy_type; 1079#if EFSYS_OPT_NAMES 1080 char enc_phy_name[21]; 1081#endif 1082 char enc_phy_revision[21]; --- 65 unchanged lines hidden (view full) --- 1148 /* Number of rx descriptors the hardware requires for a push. */ 1149 uint32_t enc_rx_push_align; 1150 /* 1151 * Maximum number of bytes into the packet the TCP header can start for 1152 * the hardware to apply TSO packet edits. 1153 */ 1154 uint32_t enc_tx_tso_tcp_header_offset_limit; 1155 boolean_t enc_fw_assisted_tso_enabled; |
1156 boolean_t enc_fw_assisted_tso_v2_enabled; |
|
1155 boolean_t enc_hw_tx_insert_vlan_enabled; 1156 /* Datapath firmware vadapter/vport/vswitch support */ 1157 boolean_t enc_datapath_cap_evb; 1158 boolean_t enc_rx_disable_scatter_supported; 1159 boolean_t enc_allow_set_mac_with_installed_filters; 1160 /* External port identifier */ 1161 uint8_t enc_external_port; 1162 uint32_t enc_mcdi_max_payload_length; --- 834 unchanged lines hidden (view full) --- 1997#define EFX_TXQ_NBUFS(_ndescs) (EFX_TXQ_SIZE(_ndescs) / EFX_BUF_SIZE) 1998#define EFX_TXQ_LIMIT(_ndescs) ((_ndescs) - 16) 1999#define EFX_TXQ_DC_NDESCS(_dcsize) (8 << _dcsize) 2000 2001#define EFX_TXQ_MAX_BUFS 8 /* Maximum independent of EFX_BUG35388_WORKAROUND. */ 2002 2003#define EFX_TXQ_CKSUM_IPV4 0x0001 2004#define EFX_TXQ_CKSUM_TCPUDP 0x0002 | 1157 boolean_t enc_hw_tx_insert_vlan_enabled; 1158 /* Datapath firmware vadapter/vport/vswitch support */ 1159 boolean_t enc_datapath_cap_evb; 1160 boolean_t enc_rx_disable_scatter_supported; 1161 boolean_t enc_allow_set_mac_with_installed_filters; 1162 /* External port identifier */ 1163 uint8_t enc_external_port; 1164 uint32_t enc_mcdi_max_payload_length; --- 834 unchanged lines hidden (view full) --- 1999#define EFX_TXQ_NBUFS(_ndescs) (EFX_TXQ_SIZE(_ndescs) / EFX_BUF_SIZE) 2000#define EFX_TXQ_LIMIT(_ndescs) ((_ndescs) - 16) 2001#define EFX_TXQ_DC_NDESCS(_dcsize) (8 << _dcsize) 2002 2003#define EFX_TXQ_MAX_BUFS 8 /* Maximum independent of EFX_BUG35388_WORKAROUND. */ 2004 2005#define EFX_TXQ_CKSUM_IPV4 0x0001 2006#define EFX_TXQ_CKSUM_TCPUDP 0x0002 |
2007#define EFX_TXQ_FATSOV2 0x0004 |
|
2005 2006extern __checkReturn efx_rc_t 2007efx_tx_qcreate( 2008 __in efx_nic_t *enp, 2009 __in unsigned int index, 2010 __in unsigned int label, 2011 __in efsys_mem_t *esmp, 2012 __in size_t n, --- 71 unchanged lines hidden (view full) --- 2084extern void 2085efx_tx_qdesc_tso_create( 2086 __in efx_txq_t *etp, 2087 __in uint16_t ipv4_id, 2088 __in uint32_t tcp_seq, 2089 __in uint8_t tcp_flags, 2090 __out efx_desc_t *edp); 2091 | 2008 2009extern __checkReturn efx_rc_t 2010efx_tx_qcreate( 2011 __in efx_nic_t *enp, 2012 __in unsigned int index, 2013 __in unsigned int label, 2014 __in efsys_mem_t *esmp, 2015 __in size_t n, --- 71 unchanged lines hidden (view full) --- 2087extern void 2088efx_tx_qdesc_tso_create( 2089 __in efx_txq_t *etp, 2090 __in uint16_t ipv4_id, 2091 __in uint32_t tcp_seq, 2092 __in uint8_t tcp_flags, 2093 __out efx_desc_t *edp); 2094 |
2095/* Number of FATSOv2 option descriptors */ 2096#define EFX_TX_FATSOV2_OPT_NDESCS 2 2097 2098/* Maximum number of DMA segments per TSO packet (not superframe) */ 2099#define EFX_TX_FATSOV2_DMA_SEGS_PER_PKT_MAX 24 2100 |
|
2092extern void | 2101extern void |
2102efx_tx_qdesc_tso2_create( 2103 __in efx_txq_t *etp, 2104 __in uint16_t ipv4_id, 2105 __in uint32_t tcp_seq, 2106 __in uint16_t tcp_mss, 2107 __out_ecount(count) efx_desc_t *edp, 2108 __in int count); 2109 2110extern void |
|
2093efx_tx_qdesc_vlantci_create( 2094 __in efx_txq_t *etp, 2095 __in uint16_t tci, 2096 __out efx_desc_t *edp); 2097 2098#if EFSYS_OPT_QSTATS 2099 2100#if EFSYS_OPT_NAMES --- 199 unchanged lines hidden --- | 2111efx_tx_qdesc_vlantci_create( 2112 __in efx_txq_t *etp, 2113 __in uint16_t tci, 2114 __out efx_desc_t *edp); 2115 2116#if EFSYS_OPT_QSTATS 2117 2118#if EFSYS_OPT_NAMES --- 199 unchanged lines hidden --- |