• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/netinet/khelp/

Lines Matching refs:txsi

102 #define	TXSI_RX_MEASURE_END	0x04 /* Measure the rx rate until this txsi. */
127 /* Flags to indicate how marked_packet_rtt should handle this txsi. */
128 #define MULTI_ACK 0x01 /* More than this txsi is acked. */
139 marked_packet_rtt(struct txseginfo *txsi, struct ertt *e_t, struct tcpcb *tp,
146 * byte counters and flag to measure next txsi. Note that since the
148 * transmitted bytes. Then pretend the next txsi was marked.
151 *pmeasurenext = txsi->tx_ts;
152 *pmeasurenext_len = txsi->len;
162 txsi->tx_ts + 1;
205 struct txseginfo *txsi;
232 txsi = TAILQ_FIRST(&e_t->txsegi_q);
233 while (txsi != NULL) {
236 /* Acknowledgement is acking more than this txsi. */
237 if (SEQ_GT(ack, txsi->seq + txsi->len)) {
238 if (txsi->flags & TXSI_RTT_MEASURE_START ||
240 marked_packet_rtt(txsi, e_t, tp,
244 TAILQ_REMOVE(&e_t->txsegi_q, txsi, txsegi_lnk);
245 uma_zfree(txseginfo_zone, txsi);
246 txsi = TAILQ_FIRST(&e_t->txsegi_q);
261 } else if (acked > txsi->len) {
267 acked == txsi->len) {
275 * Time stamps are only to help match the txsi with the
298 if (!e_t->dlyack_rx && TSTMP_LT(rts, txsi->tx_ts))
302 * txsi->tx_ts.
305 if (TSTMP_GT(rts, txsi->tx_ts)) {
308 * tx_tsi, then this txsi is old.
310 if (txsi->flags & TXSI_RTT_MEASURE_START
312 marked_packet_rtt(txsi, e_t, tp,
316 TAILQ_REMOVE(&e_t->txsegi_q, txsi,
318 uma_zfree(txseginfo_zone, txsi);
319 txsi = TAILQ_FIRST(&e_t->txsegi_q);
322 if (rts == txsi->tx_ts &&
323 TSTMP_LT(to->to_tsval, txsi->rx_ts)) {
335 * Acknowledging a sequence number before this txsi.
336 * If it is an old txsi that may have had the same seq
340 if (SEQ_LEQ(ack, txsi->seq))
341 break; /* Before first packet in txsi. */
344 * Only ack > txsi->seq and ack <= txsi->seq+txsi->len
356 e_t->rtt = tcp_ts_getticks() - txsi->tx_ts + 1;
365 if (txsi->flags & TXSI_RTT_MEASURE_START || measurenext)
366 marked_packet_rtt(txsi, e_t, tp,
370 if (txsi->flags & TXSI_TSO) {
371 if (txsi->len > acked) {
372 txsi->len -= acked;
375 * txsi, this may not be true but it
380 * have a single txsi. The rationale
392 txsi->seq += acked;
394 * Reset txsi measure flag so we don't
397 txsi->flags &= ~TXSI_RTT_MEASURE_START;
405 txsi->len = 0;
408 TAILQ_REMOVE(&e_t->txsegi_q, txsi, txsegi_lnk);
409 uma_zfree(txseginfo_zone, txsi);
418 marked_packet_rtt(txsi, e_t, tp,
440 struct txseginfo *txsi;
458 txsi = uma_zalloc(txseginfo_zone, M_NOWAIT);
459 if (txsi != NULL) {
460 /* Construct txsi setting the necessary flags. */
461 txsi->flags = 0; /* Needs to be initialised. */
462 txsi->seq = ntohl(th->th_seq);
463 txsi->len = len;
465 txsi->flags |= TXSI_TSO;
474 txsi->flags |= TXSI_RTT_MEASURE_START;
481 txsi->tx_ts = ntohl(to->to_tsval) -
483 txsi->rx_ts = ntohl(to->to_tsecr);
485 txsi->tx_ts = tcp_ts_getticks();
486 txsi->rx_ts = 0; /* No received time stamp. */
488 TAILQ_INSERT_TAIL(&e_t->txsegi_q, txsi, txsegi_lnk);
538 struct txseginfo *n_txsi, *txsi;
541 txsi = TAILQ_FIRST(&e_t->txsegi_q);
542 while (txsi != NULL) {
543 n_txsi = TAILQ_NEXT(txsi, txsegi_lnk);
544 uma_zfree(txseginfo_zone, txsi);
545 txsi = n_txsi;