aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/qed/tcp_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/qed/tcp_common.h')
-rw-r--r--include/linux/qed/tcp_common.h129
1 files changed, 71 insertions, 58 deletions
diff --git a/include/linux/qed/tcp_common.h b/include/linux/qed/tcp_common.h
index dbf7a43c3e1f..65b95fd25101 100644
--- a/include/linux/qed/tcp_common.h
+++ b/include/linux/qed/tcp_common.h
@@ -33,8 +33,13 @@
33#ifndef __TCP_COMMON__ 33#ifndef __TCP_COMMON__
34#define __TCP_COMMON__ 34#define __TCP_COMMON__
35 35
36#define TCP_INVALID_TIMEOUT_VAL -1 36/********************/
37/* TCP FW CONSTANTS */
38/********************/
37 39
40#define TCP_INVALID_TIMEOUT_VAL -1
41
42/* OOO opaque data received from LL2 */
38struct ooo_opaque { 43struct ooo_opaque {
39 __le32 cid; 44 __le32 cid;
40 u8 drop_isle; 45 u8 drop_isle;
@@ -43,25 +48,29 @@ struct ooo_opaque {
43 u8 ooo_isle; 48 u8 ooo_isle;
44}; 49};
45 50
51/* tcp connect mode enum */
46enum tcp_connect_mode { 52enum tcp_connect_mode {
47 TCP_CONNECT_ACTIVE, 53 TCP_CONNECT_ACTIVE,
48 TCP_CONNECT_PASSIVE, 54 TCP_CONNECT_PASSIVE,
49 MAX_TCP_CONNECT_MODE 55 MAX_TCP_CONNECT_MODE
50}; 56};
51 57
58/* tcp function init parameters */
52struct tcp_init_params { 59struct tcp_init_params {
53 __le32 two_msl_timer; 60 __le32 two_msl_timer;
54 __le16 tx_sws_timer; 61 __le16 tx_sws_timer;
55 u8 maxfinrt; 62 u8 max_fin_rt;
56 u8 reserved[9]; 63 u8 reserved[9];
57}; 64};
58 65
66/* tcp IPv4/IPv6 enum */
59enum tcp_ip_version { 67enum tcp_ip_version {
60 TCP_IPV4, 68 TCP_IPV4,
61 TCP_IPV6, 69 TCP_IPV6,
62 MAX_TCP_IP_VERSION 70 MAX_TCP_IP_VERSION
63}; 71};
64 72
73/* tcp offload parameters */
65struct tcp_offload_params { 74struct tcp_offload_params {
66 __le16 local_mac_addr_lo; 75 __le16 local_mac_addr_lo;
67 __le16 local_mac_addr_mid; 76 __le16 local_mac_addr_mid;
@@ -71,22 +80,22 @@ struct tcp_offload_params {
71 __le16 remote_mac_addr_hi; 80 __le16 remote_mac_addr_hi;
72 __le16 vlan_id; 81 __le16 vlan_id;
73 u8 flags; 82 u8 flags;
74#define TCP_OFFLOAD_PARAMS_TS_EN_MASK 0x1 83#define TCP_OFFLOAD_PARAMS_TS_EN_MASK 0x1
75#define TCP_OFFLOAD_PARAMS_TS_EN_SHIFT 0 84#define TCP_OFFLOAD_PARAMS_TS_EN_SHIFT 0
76#define TCP_OFFLOAD_PARAMS_DA_EN_MASK 0x1 85#define TCP_OFFLOAD_PARAMS_DA_EN_MASK 0x1
77#define TCP_OFFLOAD_PARAMS_DA_EN_SHIFT 1 86#define TCP_OFFLOAD_PARAMS_DA_EN_SHIFT 1
78#define TCP_OFFLOAD_PARAMS_KA_EN_MASK 0x1 87#define TCP_OFFLOAD_PARAMS_KA_EN_MASK 0x1
79#define TCP_OFFLOAD_PARAMS_KA_EN_SHIFT 2 88#define TCP_OFFLOAD_PARAMS_KA_EN_SHIFT 2
80#define TCP_OFFLOAD_PARAMS_NAGLE_EN_MASK 0x1 89#define TCP_OFFLOAD_PARAMS_NAGLE_EN_MASK 0x1
81#define TCP_OFFLOAD_PARAMS_NAGLE_EN_SHIFT 3 90#define TCP_OFFLOAD_PARAMS_NAGLE_EN_SHIFT 3
82#define TCP_OFFLOAD_PARAMS_DA_CNT_EN_MASK 0x1 91#define TCP_OFFLOAD_PARAMS_DA_CNT_EN_MASK 0x1
83#define TCP_OFFLOAD_PARAMS_DA_CNT_EN_SHIFT 4 92#define TCP_OFFLOAD_PARAMS_DA_CNT_EN_SHIFT 4
84#define TCP_OFFLOAD_PARAMS_FIN_SENT_MASK 0x1 93#define TCP_OFFLOAD_PARAMS_FIN_SENT_MASK 0x1
85#define TCP_OFFLOAD_PARAMS_FIN_SENT_SHIFT 5 94#define TCP_OFFLOAD_PARAMS_FIN_SENT_SHIFT 5
86#define TCP_OFFLOAD_PARAMS_FIN_RECEIVED_MASK 0x1 95#define TCP_OFFLOAD_PARAMS_FIN_RECEIVED_MASK 0x1
87#define TCP_OFFLOAD_PARAMS_FIN_RECEIVED_SHIFT 6 96#define TCP_OFFLOAD_PARAMS_FIN_RECEIVED_SHIFT 6
88#define TCP_OFFLOAD_PARAMS_RESERVED0_MASK 0x1 97#define TCP_OFFLOAD_PARAMS_RESERVED0_MASK 0x1
89#define TCP_OFFLOAD_PARAMS_RESERVED0_SHIFT 7 98#define TCP_OFFLOAD_PARAMS_RESERVED0_SHIFT 7
90 u8 ip_version; 99 u8 ip_version;
91 __le32 remote_ip[4]; 100 __le32 remote_ip[4];
92 __le32 local_ip[4]; 101 __le32 local_ip[4];
@@ -132,6 +141,7 @@ struct tcp_offload_params {
132 __le32 reserved3[2]; 141 __le32 reserved3[2];
133}; 142};
134 143
144/* tcp offload parameters */
135struct tcp_offload_params_opt2 { 145struct tcp_offload_params_opt2 {
136 __le16 local_mac_addr_lo; 146 __le16 local_mac_addr_lo;
137 __le16 local_mac_addr_mid; 147 __le16 local_mac_addr_mid;
@@ -141,14 +151,14 @@ struct tcp_offload_params_opt2 {
141 __le16 remote_mac_addr_hi; 151 __le16 remote_mac_addr_hi;
142 __le16 vlan_id; 152 __le16 vlan_id;
143 u8 flags; 153 u8 flags;
144#define TCP_OFFLOAD_PARAMS_OPT2_TS_EN_MASK 0x1 154#define TCP_OFFLOAD_PARAMS_OPT2_TS_EN_MASK 0x1
145#define TCP_OFFLOAD_PARAMS_OPT2_TS_EN_SHIFT 0 155#define TCP_OFFLOAD_PARAMS_OPT2_TS_EN_SHIFT 0
146#define TCP_OFFLOAD_PARAMS_OPT2_DA_EN_MASK 0x1 156#define TCP_OFFLOAD_PARAMS_OPT2_DA_EN_MASK 0x1
147#define TCP_OFFLOAD_PARAMS_OPT2_DA_EN_SHIFT 1 157#define TCP_OFFLOAD_PARAMS_OPT2_DA_EN_SHIFT 1
148#define TCP_OFFLOAD_PARAMS_OPT2_KA_EN_MASK 0x1 158#define TCP_OFFLOAD_PARAMS_OPT2_KA_EN_MASK 0x1
149#define TCP_OFFLOAD_PARAMS_OPT2_KA_EN_SHIFT 2 159#define TCP_OFFLOAD_PARAMS_OPT2_KA_EN_SHIFT 2
150#define TCP_OFFLOAD_PARAMS_OPT2_RESERVED0_MASK 0x1F 160#define TCP_OFFLOAD_PARAMS_OPT2_RESERVED0_MASK 0x1F
151#define TCP_OFFLOAD_PARAMS_OPT2_RESERVED0_SHIFT 3 161#define TCP_OFFLOAD_PARAMS_OPT2_RESERVED0_SHIFT 3
152 u8 ip_version; 162 u8 ip_version;
153 __le32 remote_ip[4]; 163 __le32 remote_ip[4];
154 __le32 local_ip[4]; 164 __le32 local_ip[4];
@@ -166,6 +176,7 @@ struct tcp_offload_params_opt2 {
166 __le32 reserved1[22]; 176 __le32 reserved1[22];
167}; 177};
168 178
179/* tcp IPv4/IPv6 enum */
169enum tcp_seg_placement_event { 180enum tcp_seg_placement_event {
170 TCP_EVENT_ADD_PEN, 181 TCP_EVENT_ADD_PEN,
171 TCP_EVENT_ADD_NEW_ISLE, 182 TCP_EVENT_ADD_NEW_ISLE,
@@ -177,40 +188,41 @@ enum tcp_seg_placement_event {
177 MAX_TCP_SEG_PLACEMENT_EVENT 188 MAX_TCP_SEG_PLACEMENT_EVENT
178}; 189};
179 190
191/* tcp init parameters */
180struct tcp_update_params { 192struct tcp_update_params {
181 __le16 flags; 193 __le16 flags;
182#define TCP_UPDATE_PARAMS_REMOTE_MAC_ADDR_CHANGED_MASK 0x1 194#define TCP_UPDATE_PARAMS_REMOTE_MAC_ADDR_CHANGED_MASK 0x1
183#define TCP_UPDATE_PARAMS_REMOTE_MAC_ADDR_CHANGED_SHIFT 0 195#define TCP_UPDATE_PARAMS_REMOTE_MAC_ADDR_CHANGED_SHIFT 0
184#define TCP_UPDATE_PARAMS_MSS_CHANGED_MASK 0x1 196#define TCP_UPDATE_PARAMS_MSS_CHANGED_MASK 0x1
185#define TCP_UPDATE_PARAMS_MSS_CHANGED_SHIFT 1 197#define TCP_UPDATE_PARAMS_MSS_CHANGED_SHIFT 1
186#define TCP_UPDATE_PARAMS_TTL_CHANGED_MASK 0x1 198#define TCP_UPDATE_PARAMS_TTL_CHANGED_MASK 0x1
187#define TCP_UPDATE_PARAMS_TTL_CHANGED_SHIFT 2 199#define TCP_UPDATE_PARAMS_TTL_CHANGED_SHIFT 2
188#define TCP_UPDATE_PARAMS_TOS_OR_TC_CHANGED_MASK 0x1 200#define TCP_UPDATE_PARAMS_TOS_OR_TC_CHANGED_MASK 0x1
189#define TCP_UPDATE_PARAMS_TOS_OR_TC_CHANGED_SHIFT 3 201#define TCP_UPDATE_PARAMS_TOS_OR_TC_CHANGED_SHIFT 3
190#define TCP_UPDATE_PARAMS_KA_TIMEOUT_CHANGED_MASK 0x1 202#define TCP_UPDATE_PARAMS_KA_TIMEOUT_CHANGED_MASK 0x1
191#define TCP_UPDATE_PARAMS_KA_TIMEOUT_CHANGED_SHIFT 4 203#define TCP_UPDATE_PARAMS_KA_TIMEOUT_CHANGED_SHIFT 4
192#define TCP_UPDATE_PARAMS_KA_INTERVAL_CHANGED_MASK 0x1 204#define TCP_UPDATE_PARAMS_KA_INTERVAL_CHANGED_MASK 0x1
193#define TCP_UPDATE_PARAMS_KA_INTERVAL_CHANGED_SHIFT 5 205#define TCP_UPDATE_PARAMS_KA_INTERVAL_CHANGED_SHIFT 5
194#define TCP_UPDATE_PARAMS_MAX_RT_TIME_CHANGED_MASK 0x1 206#define TCP_UPDATE_PARAMS_MAX_RT_TIME_CHANGED_MASK 0x1
195#define TCP_UPDATE_PARAMS_MAX_RT_TIME_CHANGED_SHIFT 6 207#define TCP_UPDATE_PARAMS_MAX_RT_TIME_CHANGED_SHIFT 6
196#define TCP_UPDATE_PARAMS_FLOW_LABEL_CHANGED_MASK 0x1 208#define TCP_UPDATE_PARAMS_FLOW_LABEL_CHANGED_MASK 0x1
197#define TCP_UPDATE_PARAMS_FLOW_LABEL_CHANGED_SHIFT 7 209#define TCP_UPDATE_PARAMS_FLOW_LABEL_CHANGED_SHIFT 7
198#define TCP_UPDATE_PARAMS_INITIAL_RCV_WND_CHANGED_MASK 0x1 210#define TCP_UPDATE_PARAMS_INITIAL_RCV_WND_CHANGED_MASK 0x1
199#define TCP_UPDATE_PARAMS_INITIAL_RCV_WND_CHANGED_SHIFT 8 211#define TCP_UPDATE_PARAMS_INITIAL_RCV_WND_CHANGED_SHIFT 8
200#define TCP_UPDATE_PARAMS_KA_MAX_PROBE_CNT_CHANGED_MASK 0x1 212#define TCP_UPDATE_PARAMS_KA_MAX_PROBE_CNT_CHANGED_MASK 0x1
201#define TCP_UPDATE_PARAMS_KA_MAX_PROBE_CNT_CHANGED_SHIFT 9 213#define TCP_UPDATE_PARAMS_KA_MAX_PROBE_CNT_CHANGED_SHIFT 9
202#define TCP_UPDATE_PARAMS_KA_EN_CHANGED_MASK 0x1 214#define TCP_UPDATE_PARAMS_KA_EN_CHANGED_MASK 0x1
203#define TCP_UPDATE_PARAMS_KA_EN_CHANGED_SHIFT 10 215#define TCP_UPDATE_PARAMS_KA_EN_CHANGED_SHIFT 10
204#define TCP_UPDATE_PARAMS_NAGLE_EN_CHANGED_MASK 0x1 216#define TCP_UPDATE_PARAMS_NAGLE_EN_CHANGED_MASK 0x1
205#define TCP_UPDATE_PARAMS_NAGLE_EN_CHANGED_SHIFT 11 217#define TCP_UPDATE_PARAMS_NAGLE_EN_CHANGED_SHIFT 11
206#define TCP_UPDATE_PARAMS_KA_EN_MASK 0x1 218#define TCP_UPDATE_PARAMS_KA_EN_MASK 0x1
207#define TCP_UPDATE_PARAMS_KA_EN_SHIFT 12 219#define TCP_UPDATE_PARAMS_KA_EN_SHIFT 12
208#define TCP_UPDATE_PARAMS_NAGLE_EN_MASK 0x1 220#define TCP_UPDATE_PARAMS_NAGLE_EN_MASK 0x1
209#define TCP_UPDATE_PARAMS_NAGLE_EN_SHIFT 13 221#define TCP_UPDATE_PARAMS_NAGLE_EN_SHIFT 13
210#define TCP_UPDATE_PARAMS_KA_RESTART_MASK 0x1 222#define TCP_UPDATE_PARAMS_KA_RESTART_MASK 0x1
211#define TCP_UPDATE_PARAMS_KA_RESTART_SHIFT 14 223#define TCP_UPDATE_PARAMS_KA_RESTART_SHIFT 14
212#define TCP_UPDATE_PARAMS_RETRANSMIT_RESTART_MASK 0x1 224#define TCP_UPDATE_PARAMS_RETRANSMIT_RESTART_MASK 0x1
213#define TCP_UPDATE_PARAMS_RETRANSMIT_RESTART_SHIFT 15 225#define TCP_UPDATE_PARAMS_RETRANSMIT_RESTART_SHIFT 15
214 __le16 remote_mac_addr_lo; 226 __le16 remote_mac_addr_lo;
215 __le16 remote_mac_addr_mid; 227 __le16 remote_mac_addr_mid;
216 __le16 remote_mac_addr_hi; 228 __le16 remote_mac_addr_hi;
@@ -226,6 +238,7 @@ struct tcp_update_params {
226 u8 reserved1[7]; 238 u8 reserved1[7];
227}; 239};
228 240
241/* toe upload parameters */
229struct tcp_upload_params { 242struct tcp_upload_params {
230 __le32 rcv_next; 243 __le32 rcv_next;
231 __le32 snd_una; 244 __le32 snd_una;