Lines Matching refs:tcp_buf

48         lm_tcp_buffer_t     *tcp_buf = (lm_tcp_buffer_t *)s_list_peek_head(&completed_bufs);
49 if (tcp_buf->flags & TCP_BUF_FLAG_L4_PARTIAL_FILLED) {
77 lm_tcp_buffer_t * tcp_buf = lm_tcp_next_entry_dpc_active_list(con); /* tcp_buf is the next buffer after tail... */
88 DbgBreakIf((con->type == TCP_CON_TYPE_RX) && !tcp_buf); /* RX: even if completed_bytes==0 */
89 /* Tx: tcp_buf can be NULL since this can be a fin completion
92 while(tcp_buf && tcp_buf->more_to_comp <= completed_bytes) { /* buffer fully completed */
93 DbgBreakIf((tcp_buf->more_to_comp == tcp_buf->size) &&
94 !(tcp_buf->flags & TCP_BUF_FLAG_L4_POST_START ?
98 completed_bytes -= tcp_buf->more_to_comp;
99 con->app_buf_bytes_acc_comp += tcp_buf->more_to_comp;
100 tcp_buf->more_to_comp = 0; /* essential */
103 con->dpc_info.dpc_completed_tail = &tcp_buf->link; /* last tcp_buf that needs to be completed */
104 con->dpc_info.dpc_bd_used += tcp_buf->bd_used;
106 con->dpc_info.dpc_actual_bytes_completed += tcp_buf->size;
108 if(tcp_buf->flags & TCP_BUF_FLAG_L4_POST_END) {
109 tcp_buf->app_buf_xferred = con->app_buf_bytes_acc_comp;
110 DbgBreakIf(tcp_buf->app_buf_xferred != tcp_buf->app_buf_size); /* this is NOT partial completion */
113 if (tcp_buf->flags & TCP_BUF_FLAG_L4_SPLIT) {
117 RESET_FLAGS(tcp_buf->flags, TCP_BUF_FLAG_L4_SPLIT);
120 tcp_buf->app_buf_xferred = 0;
123 tcp_buf = (lm_tcp_buffer_t *)s_list_next_entry(&tcp_buf->link);
124 DbgBreakIf((con->type == TCP_CON_TYPE_RX) && completed_bytes && !tcp_buf);
125 DbgBreakIf((con->type == TCP_CON_TYPE_TX) && completed_bytes > 1 && !tcp_buf); /* could be 1 if fin */
126 DbgBreakIf(tcp_buf && dbg_no_more_bufs);
129 if(tcp_buf) { /* possibly, partialy completed buffer */
130 DbgBreakIf((tcp_buf->more_to_comp == tcp_buf->size) &&
131 !(tcp_buf->flags & TCP_BUF_FLAG_L4_POST_START ?
134 tcp_buf->more_to_comp -= completed_bytes;
138 if(push && ((tcp_buf->flags & TCP_BUF_FLAG_L4_PARTIAL_FILLED) || (con->app_buf_bytes_acc_comp > 0)) ) {
140 DbgBreakIf((push == 1) && (tcp_buf->flags & TCP_BUF_FLAG_L4_RX_NO_PUSH));
148 tcp_buf = lm_tcp_next_entry_dpc_active_list(con);
149 DbgBreakIf(!tcp_buf); /* push only comes from FW. Therefore:
153 actual_completed_bytes += tcp_buf->more_to_comp;
154 con->bytes_push_skip_cnt += tcp_buf->more_to_comp; /* how many bytes did we skip? */
155 tcp_buf->more_to_comp = 0;
158 con->dpc_info.dpc_completed_tail = &tcp_buf->link;
159 con->dpc_info.dpc_bd_used += tcp_buf->bd_used;
161 con->dpc_info.dpc_actual_bytes_completed += tcp_buf->size;
162 } while ( !(GET_FLAGS(tcp_buf->flags, TCP_BUF_FLAG_L4_POST_END)) && !(GET_FLAGS(tcp_buf->flags, TCP_BUF_FLAG_L4_SPLIT)) );
164 if (GET_FLAGS(tcp_buf->flags, TCP_BUF_FLAG_L4_SPLIT)) {
171 RESET_FLAGS(tcp_buf->flags ,TCP_BUF_FLAG_L4_SPLIT); /* this is everest internal, don't want miniport looking at this... */
173 tcp_buf->app_buf_xferred = con->app_buf_bytes_acc_comp;
174 DbgBreakIf(tcp_buf->app_buf_xferred >= tcp_buf->app_buf_size); /* this is partial completion */
196 lm_tcp_buffer_t * tcp_buf;
221 tcp_buf = (lm_tcp_buffer_t *)lentry_p;
222 con->rq_nbytes -= tcp_buf->size;
224 tcp_buf->app_buf_xferred = 0;
227 if (tcp_buf->flags & TCP_BUF_FLAG_L4_POST_END) {
228 tcp_buf->app_buf_xferred = con->app_buf_bytes_acc_comp;
229 DbgBreakIf(tcp_buf->app_buf_size < con->app_buf_bytes_acc_comp);
231 DbgBreakIf(S32_SUB(S64_SUB(con->bytes_post_cnt, con->bytes_comp_cnt), (tcp_buf->app_buf_size - tcp_buf->app_buf_xferred)) < 0);
232 con->bytes_comp_cnt += (tcp_buf->app_buf_size - tcp_buf->app_buf_xferred);
233 con->bytes_aborted_cnt += (tcp_buf->app_buf_size - tcp_buf->app_buf_xferred);
236 s_list_push_tail(&tmp_list, &tcp_buf->link);