Lines Matching full:ack

72 		/* We analyse the number of packets that get ACK'd per RTT  in rxrpc_congestion_management()
165 /* Send some previously unsent DATA if we have some to advance the ACK in rxrpc_congestion_management()
204 * Apply a hard ACK by advancing the Tx window.
248 * or a final ACK packet.
419 /* Send an immediate ACK if we fill in a hole */ in rxrpc_input_data_one()
671 * Process the extra information that may be appended to an ACK packet
709 * Determine how many nacks from the previous ACK have now been satisfied.
716 struct rxrpc_ackpacket ack; in rxrpc_input_check_prev_ack() local
720 u8 *acks = skb->data + sizeof(struct rxrpc_wire_header) + sizeof(ack); in rxrpc_input_check_prev_ack()
748 * Each ACK in the array corresponds to one packet and can be either an ACK or
750 * packets that lie beyond the end of the ACK list are scheduled for resend by
752 * the time the ACK was sent.
773 /* Overlap with previous ACK */ in rxrpc_input_soft_acks()
802 * Return true if the ACK is valid - ie. it doesn't appear to have regressed
803 * with respect to the ack state conveyed by preceding ACKs.
826 * Process an ACK packet.
828 * ack.firstPacket is the sequence number of the first soft-ACK'd/NAK'd packet
829 * in the ACK array. Anything before that is hard-ACK'd and may be discarded.
831 * A hard-ACK means that a packet has been processed and may be discarded; a
832 * soft-ACK means that the packet may be discarded and retransmission
833 * requested. A phase is complete when all packets are hard-ACK'd.
838 struct rxrpc_ackpacket ack; in rxrpc_input_ack() local
848 if (skb_copy_bits(skb, offset, &ack, sizeof(ack)) < 0) in rxrpc_input_ack()
850 offset += sizeof(ack); in rxrpc_input_ack()
853 acked_serial = ntohl(ack.serial); in rxrpc_input_ack()
854 first_soft_ack = ntohl(ack.firstPacket); in rxrpc_input_ack()
855 prev_pkt = ntohl(ack.previousPacket); in rxrpc_input_ack()
857 nr_acks = ack.nAcks; in rxrpc_input_ack()
860 summary.ack_reason = (ack.reason < RXRPC_ACK__INVALID ? in rxrpc_input_ack()
861 ack.reason : RXRPC_ACK__INVALID); in rxrpc_input_ack()
866 rxrpc_inc_stat(call->rxnet, stat_rx_acks[ack.reason]); in rxrpc_input_ack()
869 switch (ack.reason) { in rxrpc_input_ack()
885 /* If we get an EXCEEDS_WINDOW ACK from the server, it probably in rxrpc_input_ack()
889 if (unlikely(ack.reason == RXRPC_ACK_EXCEEDS_WINDOW) && in rxrpc_input_ack()
898 /* If we get an OUT_OF_SEQUENCE ACK from the server, that can also in rxrpc_input_ack()
902 if (unlikely(ack.reason == RXRPC_ACK_OUT_OF_SEQUENCE) && in rxrpc_input_ack()
943 switch (ack.reason) { in rxrpc_input_ack()
1000 if (ack.reason == RXRPC_ACK_PING) in rxrpc_input_ack()