64#include "opt_tcpdebug.h"
68#include <sys/kernel.h>
69#include <sys/sysctl.h>
70#include <sys/malloc.h>
72#include <sys/socket.h>
73#include <sys/socketvar.h>
75#include <machine/cpu.h>
80#include <net/if_var.h>
92#include <netinet6/nd6.h>
93#include <netinet6/ip6_var.h>
94#include <netinet6/in6_pcb.h>
101#include <netinet6/tcp6_var.h>
112 thflags &= (TH_CWR|TH_ECE);
114 if (((thflags & (TH_CWR | TH_ECE)) == TH_ECE) &&
127 if (thflags & TH_ACK)
133 if ((thflags & (TH_CWR | TH_ECE)) == (TH_CWR | TH_ECE)) {
163 if (thflags & TH_ECE)
165 if (thflags & TH_CWR) {
191 thflags = TH_ECE|TH_CWR;
193 thflags = TH_ECE|TH_CWR;
264 switch (thflags & (TH_CWR|TH_ECE)) {
269 case (TH_CWR|TH_ECE):
285 if ((thflags & TH_SYN) &&
289 thflags |= (0 | TH_ECE);
uint16_t tcp_ecn_syncache_respond(uint16_t thflags, struct syncache *sc)
int tcp_ecn_input_segment(struct tcpcb *tp, uint16_t thflags, int iptos)
int tcp_ecn_output_established(struct tcpcb *tp, uint16_t *thflags, int len, bool rxmit)
int tcp_ecn_syncache_add(uint16_t thflags, int iptos)
void tcp_ecn_syncache_socket(struct tcpcb *tp, struct syncache *sc)
void tcp_ecn_input_syn_sent(struct tcpcb *tp, uint16_t thflags, int iptos)
uint16_t tcp_ecn_output_syn_sent(struct tcpcb *tp)
void tcp_ecn_input_parallel_syn(struct tcpcb *tp, uint16_t thflags, int iptos)
#define V_tcp_ecn_maxretries
#define TCPSTAT_INC(name)