rxrpc_seq_t
__field(rxrpc_seq_t, tx_bottom)
__field(rxrpc_seq_t, acks_hard_ack)
__field(rxrpc_seq_t, tx_top)
__field(rxrpc_seq_t, send_top)
TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t send_top, int space),
__field(rxrpc_seq_t, seq)
TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq, rxrpc_seq_t to),
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, to)
__field(rxrpc_seq_t, top)
TP_PROTO(unsigned int call, rxrpc_seq_t seq,
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, first)
__field(rxrpc_seq_t, prev)
TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq,
__field(rxrpc_seq_t, seq)
rxrpc_seq_t ack_first, rxrpc_serial_t ack_serial,
__field(rxrpc_seq_t, ack_first)
rxrpc_serial_t serial, rxrpc_seq_t seq),
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, window)
__field(rxrpc_seq_t, wtop)
rxrpc_seq_t seq, unsigned int offset, unsigned int len,
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, hard_ack)
__field(rxrpc_seq_t, top)
__field(rxrpc_seq_t, lowest_nak)
__field(rxrpc_seq_t, hard_ack)
__field(rxrpc_seq_t, prepared)
__field(rxrpc_seq_t, qbase)
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, transmitted)
__field(rxrpc_seq_t, qbase)
struct rxrpc_ack_summary *summary, rxrpc_seq_t seq,
__field(rxrpc_seq_t, qbase)
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, tx_seq)
__field(rxrpc_seq_t, rx_seq)
rxrpc_seq_t hard_ack, rxrpc_seq_t prev_pkt),
__field(rxrpc_seq_t, hard_ack)
__field(rxrpc_seq_t, prev_pkt)
__field(rxrpc_seq_t, acks_hard_ack)
__field(rxrpc_seq_t, acks_prev_seq)
TP_PROTO(unsigned int call_debug_id, rxrpc_seq_t seq,
__field(rxrpc_seq_t, seq)
unsigned int call_debug_id, rxrpc_seq_t seq,
__field(rxrpc_seq_t, seq)
rxrpc_seq_t seq, enum rxrpc_tq_trace trace),
__field(rxrpc_seq_t, qbase)
__field(rxrpc_seq_t, seq)
TP_PROTO(struct rxrpc_call *call, rxrpc_seq_t seq,
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, qbase)
rxrpc_seq_t seq),
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, qbase)
__field(rxrpc_seq_t, trans)
__field(rxrpc_seq_t, seq)
__field(rxrpc_seq_t, tlp_seq)
__field(rxrpc_seq_t, hard_ack)
u32 cid, u32 call_id, rxrpc_seq_t seq, int abort_code, int error),
__field(rxrpc_seq_t, seq)
rxrpc_seq_t seq; /* Sequence of first data */
bool rxrpc_abort_call(struct rxrpc_call *call, rxrpc_seq_t seq,
static inline bool rxrpc_seq_in_txq(const struct rxrpc_txqueue *tq, rxrpc_seq_t seq)
rxrpc_seq_t first_ack; /* First packet in acks table */
rxrpc_seq_t prev_ack; /* Highest seq seen */
rxrpc_seq_t send_abort_seq; /* DATA packet that incurred the abort (or 0) */
rxrpc_seq_t send_top; /* Highest Tx slot filled by sendmsg. */
rxrpc_seq_t tx_qbase; /* First slot in tx_queue */
rxrpc_seq_t tx_bottom; /* First packet in buffer */
rxrpc_seq_t tx_transmitted; /* Highest packet transmitted */
rxrpc_seq_t tx_top; /* Highest Tx slot allocated. */
rxrpc_seq_t rx_dec_seq; /* Packet in decryption buffer */
rxrpc_seq_t rx_highest_seq; /* Higest sequence number received */
rxrpc_seq_t rx_consumed; /* Highest packet consumed */
rxrpc_seq_t rack_fack; /* Highest sequence so far ACK'd */
rxrpc_seq_t rack_end_seq; /* Highest sequence seen */
rxrpc_seq_t rack_dsack_round; /* DSACK opt recv'd in latest roundtrip */
rxrpc_seq_t tlp_seq; /* Sequence of TLP probe */
rxrpc_seq_t ackr_window; /* Base of SACK window */
rxrpc_seq_t ackr_wtop; /* Base of SACK window */
rxrpc_seq_t acks_hard_ack; /* Highest sequence hard acked */
rxrpc_seq_t acks_prev_seq; /* Highest previousPacket received */
rxrpc_seq_t acks_lowest_nak; /* Lowest NACK in the buffer (or ==tx_hard_ack) */
rxrpc_seq_t seq; /* Sequence number of this packet */
rxrpc_seq_t qbase;
rxrpc_seq_t send_top, seq;
bool rxrpc_abort_call(struct rxrpc_call *call, rxrpc_seq_t seq,
rxrpc_seq_t hard_ack, rxrpc_seq_t prev_pkt)
rxrpc_seq_t base = READ_ONCE(call->acks_hard_ack);
rxrpc_seq_t first_soft_ack, hard_ack, prev_pkt;
static bool rxrpc_rotate_tx_window(struct rxrpc_call *call, rxrpc_seq_t to,
rxrpc_seq_t seq = call->tx_bottom + 1;
static void rxrpc_proto_abort(struct rxrpc_call *call, rxrpc_seq_t seq,
rxrpc_seq_t top = READ_ONCE(call->tx_top);
rxrpc_seq_t whigh = READ_ONCE(call->rx_highest_seq);
rxrpc_seq_t window, rxrpc_seq_t wtop)
rxrpc_seq_t window, rxrpc_seq_t wtop,
rxrpc_seq_t window = call->ackr_window;
rxrpc_seq_t wtop = call->ackr_wtop;
rxrpc_seq_t wlimit = window + call->rx_winsize - 1;
rxrpc_seq_t seq = sp->hdr.seq;
rxrpc_seq_t seq0 = sp->hdr.seq;
rxrpc_seq_t seq,
rxrpc_seq_t *lowest_nak)
rxrpc_seq_t lowest = seq + ffz(extracted_acks);
rxrpc_seq_t seq = call->acks_hard_ack + 1;
rxrpc_seq_t lowest_nak = seq + sp->ack.nr_acks;
rxrpc_seq_t seq = tq->qbase + ix;
static bool rxrpc_rack_sent_after(ktime_t t1, rxrpc_seq_t seq1,
ktime_t t2, rxrpc_seq_t seq2)
rxrpc_seq_t snd_una = call->acks_lowest_nak; /* Lowest unack'd seq */
rxrpc_seq_t snd_nxt = call->tx_transmitted + 1; /* Next seq to be sent */
rxrpc_seq_t seq = tq->qbase + ix;
rxrpc_seq_t snd_una = call->acks_lowest_nak; /* Lowest unack'd seq */
rxrpc_seq_t seq = tq->qbase + ix;
rxrpc_seq_t seq = tq->qbase + ix;
rxrpc_seq_t window, wtop;
rxrpc_seq_t seq = req->seq;
rxrpc_seq_t seq = req->seq;
rxrpc_seq_t tx_bottom;
rxrpc_seq_t old_consumed = call->rx_consumed, tseq;
rxrpc_seq_t seq = 0;
rxrpc_seq_t seq)
rxrpc_seq_t seq)
rxrpc_seq_t seq = sp->hdr.seq;
rxrpc_seq_t tx_start, tx_win;
rxrpc_seq_t seq = txb->seq;
static bool rxrpc_check_tx_space(struct rxrpc_call *call, rxrpc_seq_t *_tx_win)
rxrpc_seq_t tx_bottom = READ_ONCE(call->tx_bottom);
rxrpc_seq_t seq;