FreeBSD kernel IPv4 code
tcp_ecn.c File Reference
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_tcpdebug.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <machine/cpu.h>
#include <vm/uma.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/route.h>
#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/in_var.h>
#include <netinet/in_pcb.h>
#include <netinet/ip_var.h>
#include <netinet/ip6.h>
#include <netinet/icmp6.h>
#include <netinet6/nd6.h>
#include <netinet6/ip6_var.h>
#include <netinet6/in6_pcb.h>
#include <netinet/tcp.h>
#include <netinet/tcp_fsm.h>
#include <netinet/tcp_seq.h>
#include <netinet/tcp_var.h>
#include <netinet/tcp_syncache.h>
#include <netinet/tcp_timer.h>
#include <netinet6/tcp6_var.h>
#include <netinet/tcpip.h>
#include <netinet/tcp_ecn.h>
Include dependency graph for tcp_ecn.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
void tcp_ecn_input_syn_sent (struct tcpcb *tp, uint16_t thflags, int iptos)
 
void tcp_ecn_input_parallel_syn (struct tcpcb *tp, uint16_t thflags, int iptos)
 
int tcp_ecn_input_segment (struct tcpcb *tp, uint16_t thflags, int iptos)
 
uint16_t tcp_ecn_output_syn_sent (struct tcpcb *tp)
 
int tcp_ecn_output_established (struct tcpcb *tp, uint16_t *thflags, int len, bool rxmit)
 
void tcp_ecn_syncache_socket (struct tcpcb *tp, struct syncache *sc)
 
int tcp_ecn_syncache_add (uint16_t thflags, int iptos)
 
uint16_t tcp_ecn_syncache_respond (uint16_t thflags, struct syncache *sc)
 

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ tcp_ecn_input_parallel_syn()

void tcp_ecn_input_parallel_syn ( struct tcpcb tp,
uint16_t  thflags,
int  iptos 
)

Definition at line 125 of file tcp_ecn.c.

References tcpcb::t_flags2, TCPSTAT_INC, TF2_ECN_PERMIT, TF2_ECN_SND_ECE, and V_tcp_do_ecn.

Referenced by rack_do_segment_nounlock(), and tcp_do_segment().

Here is the caller graph for this function:

◆ tcp_ecn_input_segment()

int tcp_ecn_input_segment ( struct tcpcb tp,
uint16_t  thflags,
int  iptos 
)

Definition at line 145 of file tcp_ecn.c.

References cc_ecnpkt_handler_flags(), IPTOS_ECN_CE, IPTOS_ECN_ECT0, IPTOS_ECN_ECT1, IPTOS_ECN_MASK, tcpcb::t_flags, tcpcb::t_flags2, TCPSTAT_INC, TF2_ECN_PERMIT, TF2_ECN_SND_ECE, and TF_ACKNOW.

Referenced by rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), and tcp_do_segment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tcp_ecn_input_syn_sent()

void tcp_ecn_input_syn_sent ( struct tcpcb tp,
uint16_t  thflags,
int  iptos 
)

Definition at line 110 of file tcp_ecn.c.

References tcpcb::t_flags2, TCPSTAT_INC, TF2_ECN_PERMIT, and V_tcp_do_ecn.

Referenced by rack_do_syn_sent(), and tcp_do_segment().

Here is the caller graph for this function:

◆ tcp_ecn_output_established()

int tcp_ecn_output_established ( struct tcpcb tp,
uint16_t thflags,
int  len,
bool  rxmit 
)

◆ tcp_ecn_output_syn_sent()

uint16_t tcp_ecn_output_syn_sent ( struct tcpcb tp)

Definition at line 183 of file tcp_ecn.c.

References tcpcb::t_rxtshift, V_tcp_do_ecn, and V_tcp_ecn_maxretries.

Referenced by rack_output(), and tcp_default_output().

Here is the caller graph for this function:

◆ tcp_ecn_syncache_add()

int tcp_ecn_syncache_add ( uint16_t  thflags,
int  iptos 
)

Definition at line 260 of file tcp_ecn.c.

References SCF_ECN.

Referenced by syncache_add().

Here is the caller graph for this function:

◆ tcp_ecn_syncache_respond()

uint16_t tcp_ecn_syncache_respond ( uint16_t  thflags,
struct syncache sc 
)

Definition at line 283 of file tcp_ecn.c.

References syncache::sc_flags, SCF_ECN, SCF_ECN_MASK, and TCPSTAT_INC.

Referenced by syncache_respond().

Here is the caller graph for this function:

◆ tcp_ecn_syncache_socket()

void tcp_ecn_syncache_socket ( struct tcpcb tp,
struct syncache sc 
)

Definition at line 241 of file tcp_ecn.c.

References syncache::sc_flags, SCF_ECN, SCF_ECN_MASK, tcpcb::t_flags2, and TF2_ECN_PERMIT.

Referenced by syncache_socket().

Here is the caller graph for this function: