Lines Matching full:txb

83 				 struct rxrpc_txbuf *txb,  in rxrpc_fill_out_ack()  argument
91 u8 *ackp = txb->acks; in rxrpc_fill_out_ack()
101 txb->ack.firstPacket = htonl(window); in rxrpc_fill_out_ack()
102 txb->ack.nAcks = wtop - window; in rxrpc_fill_out_ack()
106 to = min_t(unsigned int, txb->ack.nAcks, RXRPC_SACK_SIZE); in rxrpc_fill_out_ack()
108 if (sack + txb->ack.nAcks <= RXRPC_SACK_SIZE) { in rxrpc_fill_out_ack()
109 memcpy(txb->acks, call->ackr_sack_table + sack, txb->ack.nAcks); in rxrpc_fill_out_ack()
111 memcpy(txb->acks, call->ackr_sack_table + sack, wrap); in rxrpc_fill_out_ack()
112 memcpy(txb->acks + wrap, call->ackr_sack_table, in rxrpc_fill_out_ack()
119 } else if (txb->ack.reason == RXRPC_ACK_DELAY) { in rxrpc_fill_out_ack()
120 txb->ack.reason = RXRPC_ACK_IDLE; in rxrpc_fill_out_ack()
138 return txb->ack.nAcks + 3 + sizeof(trailer); in rxrpc_fill_out_ack()
187 int rxrpc_send_ack_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb) in rxrpc_send_ack_packet() argument
208 if (txb->ack.reason == RXRPC_ACK_PING) in rxrpc_send_ack_packet()
209 txb->wire.flags |= RXRPC_REQUEST_ACK; in rxrpc_send_ack_packet()
211 n = rxrpc_fill_out_ack(conn, call, txb, &rwind); in rxrpc_send_ack_packet()
215 iov[0].iov_base = &txb->wire; in rxrpc_send_ack_packet()
216 iov[0].iov_len = sizeof(txb->wire) + sizeof(txb->ack) + n; in rxrpc_send_ack_packet()
220 txb->wire.serial = htonl(serial); in rxrpc_send_ack_packet()
222 ntohl(txb->ack.firstPacket), in rxrpc_send_ack_packet()
223 ntohl(txb->ack.serial), txb->ack.reason, txb->ack.nAcks, in rxrpc_send_ack_packet()
226 if (txb->ack.reason == RXRPC_ACK_PING) in rxrpc_send_ack_packet()
232 txb->ack.previousPacket = htonl(call->rx_highest_seq); in rxrpc_send_ack_packet()
241 trace_rxrpc_tx_packet(call->debug_id, &txb->wire, in rxrpc_send_ack_packet()
243 if (txb->wire.flags & RXRPC_REQUEST_ACK) in rxrpc_send_ack_packet()
324 int rxrpc_send_data_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb) in rxrpc_send_data_packet() argument
334 _enter("%x,{%d}", txb->seq, txb->len); in rxrpc_send_data_packet()
338 txb->wire.serial = htonl(serial); in rxrpc_send_data_packet()
341 txb->seq == 1) in rxrpc_send_data_packet()
342 txb->wire.userStatus = RXRPC_USERSTATUS_SERVICE_UPGRADE; in rxrpc_send_data_packet()
344 iov[0].iov_base = &txb->wire; in rxrpc_send_data_packet()
345 iov[0].iov_len = sizeof(txb->wire) + txb->len; in rxrpc_send_data_packet()
362 if (txb->wire.flags & RXRPC_REQUEST_ACK) in rxrpc_send_data_packet()
364 else if (test_bit(RXRPC_TXBUF_LAST, &txb->flags) && rxrpc_sending_to_client(txb)) in rxrpc_send_data_packet()
368 else if (test_bit(RXRPC_TXBUF_RESENT, &txb->flags)) in rxrpc_send_data_packet()
374 else if (call->peer->rtt_count < 3 && txb->seq & 1) in rxrpc_send_data_packet()
382 trace_rxrpc_req_ack(call->debug_id, txb->seq, why); in rxrpc_send_data_packet()
384 txb->wire.flags |= RXRPC_REQUEST_ACK; in rxrpc_send_data_packet()
391 trace_rxrpc_tx_data(call, txb->seq, serial, in rxrpc_send_data_packet()
392 txb->wire.flags, in rxrpc_send_data_packet()
393 test_bit(RXRPC_TXBUF_RESENT, &txb->flags), in rxrpc_send_data_packet()
399 trace_rxrpc_tx_data(call, txb->seq, serial, txb->wire.flags, in rxrpc_send_data_packet()
400 test_bit(RXRPC_TXBUF_RESENT, &txb->flags), false); in rxrpc_send_data_packet()
409 cmpxchg(&call->tx_transmitted, txb->seq - 1, txb->seq); in rxrpc_send_data_packet()
413 if (txb->len >= call->peer->maxdata) in rxrpc_send_data_packet()
416 txb->last_sent = ktime_get_real(); in rxrpc_send_data_packet()
417 if (txb->wire.flags & RXRPC_REQUEST_ACK) in rxrpc_send_data_packet()
436 trace_rxrpc_tx_packet(call->debug_id, &txb->wire, in rxrpc_send_data_packet()
446 call->tx_last_sent = txb->last_sent; in rxrpc_send_data_packet()
447 if (txb->wire.flags & RXRPC_REQUEST_ACK) { in rxrpc_send_data_packet()
448 call->peer->rtt_last_req = txb->last_sent; in rxrpc_send_data_packet()
460 if (txb->seq == 1 && in rxrpc_send_data_packet()
490 txb->last_sent = ktime_get_real(); in rxrpc_send_data_packet()
491 if (txb->wire.flags & RXRPC_REQUEST_ACK) in rxrpc_send_data_packet()
515 trace_rxrpc_tx_packet(call->debug_id, &txb->wire, in rxrpc_send_data_packet()
699 struct rxrpc_txbuf *txb) in rxrpc_instant_resend() argument
708 void rxrpc_transmit_one(struct rxrpc_call *call, struct rxrpc_txbuf *txb) in rxrpc_transmit_one() argument
712 ret = rxrpc_send_data_packet(call, txb); in rxrpc_transmit_one()
723 rxrpc_instant_resend(call, txb); in rxrpc_transmit_one()