Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/net/ipv4/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  tcp_dctcp.h   Sprache: C

 
#ifndef _TCP_DCTCP_H
#define _TCP_DCTCP_H

static inline void dctcp_ece_ack_cwr(struct sock *sk, u32 ce_state)
{
 struct tcp_sock *tp = tcp_sk(sk);

 if (ce_state == 1)
  tp->ecn_flags |= TCP_ECN_DEMAND_CWR;
 else
  tp->ecn_flags &= ~TCP_ECN_DEMAND_CWR;
}

/* Minimal DCTP CE state machine:
 *
 * S: 0 <- last pkt was non-CE
 * 1 <- last pkt was CE
 */

static inline void dctcp_ece_ack_update(struct sock *sk, enum tcp_ca_event evt,
     u32 *prior_rcv_nxt, u32 *ce_state)
{
 u32 new_ce_state = (evt == CA_EVENT_ECN_IS_CE) ? 1 : 0;

 if (*ce_state != new_ce_state) {
  /* CE state has changed, force an immediate ACK to
 * reflect the new CE state. If an ACK was delayed,
 * send that first to reflect the prior CE state.
 */

  if (inet_csk(sk)->icsk_ack.pending & ICSK_ACK_TIMER) {
   dctcp_ece_ack_cwr(sk, *ce_state);
   __tcp_send_ack(sk, *prior_rcv_nxt, 0);
  }
  inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_NOW;
 }
 *prior_rcv_nxt = tcp_sk(sk)->rcv_nxt;
 *ce_state = new_ce_state;
 dctcp_ece_ack_cwr(sk, new_ce_state);
}

#endif

Messung V0.5
C=92 H=98 G=94

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.