FreeBSD kernel IPv4 code
tcp_offload.c File Reference
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_inet6.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/eventhandler.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sockopt.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/route.h>
#include <net/route/nhop.h>
#include <netinet/in.h>
#include <netinet/in_pcb.h>
#include <netinet/in_fib.h>
#include <netinet6/in6_fib.h>
#include <netinet/tcp.h>
#include <netinet/tcp_offload.h>
#include <netinet/tcp_fsm.h>
#include <netinet/tcp_var.h>
#include <netinet/toecore.h>
Include dependency graph for tcp_offload.c:

Go to the source code of this file.

Macros

#define TCPOUTFLAGS
 

Functions

 __FBSDID ("$FreeBSD$")
 
int tcp_offload_connect (struct socket *so, struct sockaddr *nam)
 
void tcp_offload_listen_start (struct tcpcb *tp)
 
void tcp_offload_listen_stop (struct tcpcb *tp)
 
void tcp_offload_input (struct tcpcb *tp, struct mbuf *m)
 
int tcp_offload_output (struct tcpcb *tp)
 
void tcp_offload_rcvd (struct tcpcb *tp)
 
void tcp_offload_ctloutput (struct tcpcb *tp, int sopt_dir, int sopt_name)
 
void tcp_offload_tcp_info (struct tcpcb *tp, struct tcp_info *ti)
 
int tcp_offload_alloc_tls_session (struct tcpcb *tp, struct ktls_session *tls, int direction)
 
void tcp_offload_detach (struct tcpcb *tp)
 
void tcp_offload_pmtu_update (struct tcpcb *tp, tcp_seq seq, int mtu)
 

Variables

int registered_toedevs
 

Macro Definition Documentation

◆ TCPOUTFLAGS

#define TCPOUTFLAGS

Definition at line 52 of file tcp_offload.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ tcp_offload_alloc_tls_session()

int tcp_offload_alloc_tls_session ( struct tcpcb tp,
struct ktls_session *  tls,
int  direction 
)

◆ tcp_offload_connect()

int tcp_offload_connect ( struct socket *  so,
struct sockaddr *  nam 
)

Definition at line 63 of file tcp_offload.c.

References fib4_lookup(), INP_WLOCK_ASSERT, registered_toedevs, sotoinpcb, and toedev::tod_connect.

Here is the call graph for this function:

◆ tcp_offload_ctloutput()

void tcp_offload_ctloutput ( struct tcpcb tp,
int  sopt_dir,
int  sopt_name 
)

Definition at line 179 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, tcpcb::tod, and toedev::tod_ctloutput.

Referenced by tcp_ctloutput_set(), and tcp_default_ctloutput().

Here is the caller graph for this function:

◆ tcp_offload_detach()

void tcp_offload_detach ( struct tcpcb tp)

Definition at line 213 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, tcpcb::tod, and toedev::tod_pcb_detach.

Referenced by tcp_discardcb().

Here is the caller graph for this function:

◆ tcp_offload_input()

void tcp_offload_input ( struct tcpcb tp,
struct mbuf *  m 
)

Definition at line 132 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, tcpcb::tod, and toedev::tod_input.

Referenced by tcp_input_with_port().

Here is the caller graph for this function:

◆ tcp_offload_listen_start()

void tcp_offload_listen_start ( struct tcpcb tp)

Definition at line 114 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, and tcp_offload_listen_start().

Referenced by tcp_offload_listen_start(), toecore_load(), and toecore_unload().

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

◆ tcp_offload_listen_stop()

void tcp_offload_listen_stop ( struct tcpcb tp)

Definition at line 123 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, and tcp_offload_listen_stop().

Referenced by tcp_close(), tcp_offload_listen_stop(), tcp_usrclosed(), toecore_load(), and toecore_unload().

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

◆ tcp_offload_output()

int tcp_offload_output ( struct tcpcb tp)

◆ tcp_offload_pmtu_update()

void tcp_offload_pmtu_update ( struct tcpcb tp,
tcp_seq  seq,
int  mtu 
)

Definition at line 224 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, tcpcb::tod, and toedev::tod_pmtu_update.

◆ tcp_offload_rcvd()

void tcp_offload_rcvd ( struct tcpcb tp)

Definition at line 168 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, tcpcb::tod, and toedev::tod_rcvd.

Referenced by tcp_usr_rcvd().

Here is the caller graph for this function:

◆ tcp_offload_tcp_info()

void tcp_offload_tcp_info ( struct tcpcb tp,
struct tcp_info *  ti 
)

Definition at line 190 of file tcp_offload.c.

References INP_WLOCK_ASSERT, tcpcb::t_inpcb, tcpcb::tod, and toedev::tod_tcp_info.

Referenced by rack_fill_info(), and tcp_fill_info().

Here is the caller graph for this function:

Variable Documentation

◆ registered_toedevs

int registered_toedevs

Definition at line 57 of file tcp_offload.c.

Referenced by register_toedev(), tcp_offload_connect(), and unregister_toedev().