Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_var.h
Context not available. | |||||
#define tcp6cb tcpcb /* for KAME src sync over BSD*'s */ | #define tcp6cb tcpcb /* for KAME src sync over BSD*'s */ | ||||
/* | |||||
* TODO: We yet need to brave plowing in | |||||
* to tcp_input() and the pru_usrreq() block. | |||||
* Right now these go to the old standards which | |||||
* are somewhat ok, but in the long term may | |||||
* need to be changed. If we do tackle tcp_input() | |||||
* then we need to get rid of the tcp_do_segment() | |||||
* function below. | |||||
*/ | |||||
struct tcp_function_block { | |||||
jtl: The white space looks funky in this block. | |||||
rrsAuthorUnsubmitted Not Done Inline ActionsI will pull it up in VI and take a look. rrs: I will pull it up in VI and take a look. | |||||
char tcp_block_name[32]; | |||||
void (*tcp_timer_activate)(struct tcpcb *, | |||||
uint32_t, u_int); | |||||
int (*tcp_timer_active)(struct tcpcb *, uint32_t); | |||||
void (*tcp_timer_stop)(struct tcpcb *, uint32_t); | |||||
int (*tcp_output)(struct tcpcb *); | |||||
void (*tcp_do_segment)(struct mbuf *, struct tcphdr *, | |||||
struct socket *, struct tcpcb *, | |||||
int, int, uint8_t, | |||||
int); | |||||
int (*tcp_ctloutput)(struct socket *so, struct sockopt *sopt, | |||||
struct inpcb *inp, struct tcpcb *tp); | |||||
void (*tcp_fb_init)(struct tcpcb *); /* Can allocate memory in t_fb_ptr */ | |||||
void (*tcp_fb_fini)(struct tcpcb *); /* Finish should free memory in t_fb_ptr */ | |||||
volatile uint32_t refcnt; | |||||
}; | |||||
struct tcp_function { | |||||
TAILQ_ENTRY(tcp_function) next; | |||||
struct tcp_function_block *fb; | |||||
}; | |||||
TAILQ_HEAD(tcp_funchead, tcp_function); | |||||
/* | /* | ||||
* Tcp control block, one per tcp; fields: | * Tcp control block, one per tcp; fields: | ||||
* Organized for 16 byte cacheline efficiency. | * Organized for 16 byte cacheline efficiency. | ||||
Context not available. | |||||
u_int t_tsomaxsegsize; /* TSO maximum segment size in bytes */ | u_int t_tsomaxsegsize; /* TSO maximum segment size in bytes */ | ||||
u_int t_pmtud_saved_maxopd; /* pre-blackhole MSS */ | u_int t_pmtud_saved_maxopd; /* pre-blackhole MSS */ | ||||
u_int t_flags2; /* More tcpcb flags storage */ | u_int t_flags2; /* More tcpcb flags storage */ | ||||
uint32_t t_ispare[8]; /* 5 UTO, 3 TBD */ | uint32_t t_ispare[8]; /* 5 UTO, 3 TBD */ | ||||
void *t_pspare2[4]; /* 1 TCP_SIGNATURE, 3 TBD */ | struct tcp_function_block *t_fb;/* TCP function call block */ | ||||
void *t_fb_ptr; /* Pointer to t_fb specific data */ | |||||
void *t_pspare2[2]; /* 1 TCP_SIGNATURE, 1 TBD */ | |||||
#if defined(_KERNEL) && defined(TCPPCAP) | #if defined(_KERNEL) && defined(TCPPCAP) | ||||
struct mbufq t_inpkts; /* List of saved input packets. */ | struct mbufq t_inpkts; /* List of saved input packets. */ | ||||
struct mbufq t_outpkts; /* List of saved output packets. */ | struct mbufq t_outpkts; /* List of saved output packets. */ | ||||
Context not available. | |||||
#define tcps_rcvmemdrop tcps_rcvreassfull /* compat */ | #define tcps_rcvmemdrop tcps_rcvreassfull /* compat */ | ||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
#define TI_UNLOCKED 1 | |||||
jtlUnsubmitted Not Done Inline ActionsYou probably should remove these defines from tcp_input.c. jtl: You probably should remove these defines from tcp_input.c. | |||||
rrsAuthorUnsubmitted Not Done Inline Actionsopps yeah now that they are in tcp_var.h your right rrs: opps yeah now that they are in tcp_var.h your right | |||||
#define TI_RLOCKED 2 | |||||
#include <sys/counter.h> | #include <sys/counter.h> | ||||
VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ | VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ | ||||
Context not available. | |||||
void tcp_reass_global_init(void); | void tcp_reass_global_init(void); | ||||
void tcp_reass_flush(struct tcpcb *); | void tcp_reass_flush(struct tcpcb *); | ||||
int tcp_input(struct mbuf **, int *, int); | int tcp_input(struct mbuf **, int *, int); | ||||
void tcp_do_segment(struct mbuf *, struct tcphdr *, | |||||
struct socket *, struct tcpcb *, int, int, uint8_t, | |||||
int); | |||||
int register_tcp_functions(struct tcp_function_block *blk, int wait); | |||||
int deregister_tcp_functions(struct tcp_function_block *blk); | |||||
struct tcp_function_block *find_tcp_functions(struct tcp_function_set *fs); | |||||
struct tcp_function_block *find_and_ref_tcp_fb(struct tcp_function_block *blk); | |||||
int tcp_default_ctloutput(struct socket *so, struct sockopt *sopt, struct inpcb *inp, struct tcpcb *tp); | |||||
u_long tcp_maxmtu(struct in_conninfo *, struct tcp_ifcap *); | u_long tcp_maxmtu(struct in_conninfo *, struct tcp_ifcap *); | ||||
u_long tcp_maxmtu6(struct in_conninfo *, struct tcp_ifcap *); | u_long tcp_maxmtu6(struct in_conninfo *, struct tcp_ifcap *); | ||||
void tcp_mss_update(struct tcpcb *, int, int, struct hc_metrics_lite *, | void tcp_mss_update(struct tcpcb *, int, int, struct hc_metrics_lite *, | ||||
Context not available. |
The white space looks funky in this block.