|
|
|
@ -447,7 +447,7 @@ static void input_queue_try_push(struct ETCP_CONN* etcp) {// пробуем пр |
|
|
|
// когда очередь отправки пуста - пробуем взять новый пакет на обработку
|
|
|
|
// когда очередь отправки пуста - пробуем взять новый пакет на обработку
|
|
|
|
size_t wait_ack_bytes = queue_total_bytes(etcp->input_wait_ack); |
|
|
|
size_t wait_ack_bytes = queue_total_bytes(etcp->input_wait_ack); |
|
|
|
if (wait_ack_bytes <= etcp->optimal_inflight) { |
|
|
|
if (wait_ack_bytes <= etcp->optimal_inflight) { |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] resume input queue: inflight_bytes=%d, input_len=%d", etcp->log_name, wait_ack_bytes, etcp->input_queue->total_bytes); |
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "[%s] resume input queue: inflight_bytes=%d, input_len=%d", etcp->log_name, wait_ack_bytes, etcp->input_queue->total_bytes); |
|
|
|
queue_resume_callback(etcp->input_queue);// и только когда больше нечего отправлять - забираем новый пакет
|
|
|
|
queue_resume_callback(etcp->input_queue);// и только когда больше нечего отправлять - забираем новый пакет
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -463,7 +463,7 @@ static void input_queue_try_resume(struct ETCP_CONN* etcp) {// при ACK |
|
|
|
// когда очередь отправки пуста - пробуем взять новый пакет на обработку
|
|
|
|
// когда очередь отправки пуста - пробуем взять новый пакет на обработку
|
|
|
|
size_t wait_ack_bytes = queue_total_bytes(etcp->input_wait_ack); |
|
|
|
size_t wait_ack_bytes = queue_total_bytes(etcp->input_wait_ack); |
|
|
|
if (wait_ack_bytes <= etcp->optimal_inflight) { |
|
|
|
if (wait_ack_bytes <= etcp->optimal_inflight) { |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] resume input queue: inflight_bytes=%d, input_len=%d", etcp->log_name, wait_ack_bytes, etcp->input_queue->total_bytes); |
|
|
|
DEBUG_TRACE(DEBUG_CATEGORY_ETCP, "[%s] resume input queue: inflight_bytes=%d, input_len=%d", etcp->log_name, wait_ack_bytes, etcp->input_queue->total_bytes); |
|
|
|
queue_resume_callback(etcp->input_queue);// и только когда больше нечего отправлять - забираем новый пакет
|
|
|
|
queue_resume_callback(etcp->input_queue);// и только когда больше нечего отправлять - забираем новый пакет
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -547,7 +547,7 @@ static void input_queue_cb(struct ll_queue* q, void* arg) { |
|
|
|
// memory_pool_free(etcp->io_pool, in_pkt);// перемещаем из io_pool в inflight_pool
|
|
|
|
// memory_pool_free(etcp->io_pool, in_pkt);// перемещаем из io_pool в inflight_pool
|
|
|
|
queue_entry_free(&in_pkt->ll); |
|
|
|
queue_entry_free(&in_pkt->ll); |
|
|
|
|
|
|
|
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] input -> inflight (seq=%u, len=%u) Q in=%d snd=%d waid=%d", etcp->log_name, p->seq, p->ll.len, etcp->input_queue->count, etcp->input_send_q->count, etcp->input_wait_ack->count); |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] input -> inflight (seq=%u, len=%u); Qlen: in=%d snd=%d wait=%d", etcp->log_name, p->seq, p->ll.len, etcp->input_queue->count, etcp->input_send_q->count, etcp->input_wait_ack->count); |
|
|
|
int len=p->ll.len;// сохраним len
|
|
|
|
int len=p->ll.len;// сохраним len
|
|
|
|
|
|
|
|
|
|
|
|
// Add to send queue
|
|
|
|
// Add to send queue
|
|
|
|
@ -850,7 +850,7 @@ struct ETCP_DGRAM* etcp_request_pkt(struct ETCP_CONN* etcp) { |
|
|
|
|
|
|
|
|
|
|
|
if (inf_pkt) { |
|
|
|
if (inf_pkt) { |
|
|
|
// фрейм data (0) обязательно в конец
|
|
|
|
// фрейм data (0) обязательно в конец
|
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] Send DATA: seq=%u len=%u retry=%d; in=%d snd=%d waid=%d", etcp->log_name, inf_pkt->seq, inf_pkt->ll.len, inf_pkt->send_count, etcp->input_queue->count, etcp->input_send_q->count, etcp->input_wait_ack->count); |
|
|
|
DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] Send DATA: seq=%u len=%u retry=%d; Qlen: in=%d snd=%d wait=%d", etcp->log_name, inf_pkt->seq, inf_pkt->ll.len, inf_pkt->send_count, etcp->input_queue->count, etcp->input_send_q->count, etcp->input_wait_ack->count); |
|
|
|
|
|
|
|
|
|
|
|
dgram->data[ptr++]=0;// payload
|
|
|
|
dgram->data[ptr++]=0;// payload
|
|
|
|
dgram->data[ptr++]=inf_pkt->seq; |
|
|
|
dgram->data[ptr++]=inf_pkt->seq; |
|
|
|
|