Lines Matching full:ack
75 * Fill out an ACK packet.
84 struct rxrpc_ackpacket *ack = (struct rxrpc_ackpacket *)(whdr + 1); in rxrpc_fill_out_ack() local
101 ack->bufferSpace = 0; in rxrpc_fill_out_ack()
102 ack->maxSkew = 0; in rxrpc_fill_out_ack()
103 ack->firstPacket = htonl(window); in rxrpc_fill_out_ack()
104 ack->previousPacket = htonl(call->rx_highest_seq); in rxrpc_fill_out_ack()
105 ack->serial = htonl(serial); in rxrpc_fill_out_ack()
106 ack->reason = ack_reason; in rxrpc_fill_out_ack()
107 ack->nAcks = wtop - window; in rxrpc_fill_out_ack()
116 txb->len += ack->nAcks; in rxrpc_fill_out_ack()
118 txb->kvec[1].iov_len = ack->nAcks; in rxrpc_fill_out_ack()
121 to = min_t(unsigned int, ack->nAcks, RXRPC_SACK_SIZE); in rxrpc_fill_out_ack()
123 if (sack + ack->nAcks <= RXRPC_SACK_SIZE) { in rxrpc_fill_out_ack()
124 memcpy(sackp, call->ackr_sack_table + sack, ack->nAcks); in rxrpc_fill_out_ack()
130 pr_warn("ack window backward %x %x", window, wtop); in rxrpc_fill_out_ack()
131 } else if (ack->reason == RXRPC_ACK_DELAY) { in rxrpc_fill_out_ack()
132 ack->reason = RXRPC_ACK_IDLE; in rxrpc_fill_out_ack()
176 * Transmit an ACK packet.
182 struct rxrpc_ackpacket *ack = (struct rxrpc_ackpacket *)(whdr + 1); in rxrpc_send_ack_packet() local
203 ntohl(ack->firstPacket), in rxrpc_send_ack_packet()
204 ntohl(ack->serial), ack->reason, ack->nAcks, in rxrpc_send_ack_packet()
220 if (ack->reason == RXRPC_ACK_PING) in rxrpc_send_ack_packet()
230 * Queue an ACK for immediate transmission.
273 * hard-ACK'd all of its request data. After that point, we're not in rxrpc_send_abort_packet()
342 /* If our RTT cache needs working on, request an ACK. Also request in rxrpc_prepare_data_subpacket()
345 * However, we mustn't request an ACK on the last reply packet of a in rxrpc_prepare_data_subpacket()
346 * service call, lest OpenAFS incorrectly send us an ACK with some in rxrpc_prepare_data_subpacket()
347 * soft-ACKs in it and then never follow up with a proper hard ACK. in rxrpc_prepare_data_subpacket()