mirror of
https://github.com/opnsense/src.git
synced 2026-06-08 16:22:46 -04:00
Make the IPTOS value available to all substate handlers. This will allow
to add support for L4S or SCE, which require processing of the IP TOS field. Submitted by: Richard Scheffenegger Reviewed by: rgrimes@, rrs@, tuexen@ Differential Revision: https://reviews.freebsd.org/D22426
This commit is contained in:
parent
fa49a96419
commit
8df12ffcc2
2 changed files with 23 additions and 23 deletions
|
|
@ -390,39 +390,39 @@ static int32_t tcp_addrack(module_t mod, int32_t type, void *data);
|
|||
static int
|
||||
rack_do_close_wait(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_closing(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_established(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_fastnewdata(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_fin_wait_1(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_fin_wait_2(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_lastack(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_syn_recv(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
static int
|
||||
rack_do_syn_sent(struct mbuf *m, struct tcphdr *th,
|
||||
struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen,
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt);
|
||||
int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos);
|
||||
struct rack_sendmap *
|
||||
tcp_rack_output(struct tcpcb *tp, struct tcp_rack *rack,
|
||||
uint32_t tsused);
|
||||
|
|
@ -5898,7 +5898,7 @@ dodata: /* XXX */
|
|||
static int
|
||||
rack_do_fastnewdata(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t nsegs;
|
||||
int32_t newsize = 0; /* automatic sockbuf scaling */
|
||||
|
|
@ -6039,7 +6039,7 @@ rack_do_fastnewdata(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_fastack(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t nxt_pkt, uint32_t cts)
|
||||
uint32_t tiwin, int32_t nxt_pkt, uint32_t cts, uint8_t iptos)
|
||||
{
|
||||
int32_t acked;
|
||||
int32_t nsegs;
|
||||
|
|
@ -6225,7 +6225,7 @@ rack_fastack(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_syn_sent(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t tos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
int32_t todrop;
|
||||
|
|
@ -6428,7 +6428,7 @@ rack_do_syn_sent(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_syn_recv(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
struct tcp_rack *rack;
|
||||
int32_t ret_val = 0;
|
||||
|
|
@ -6624,7 +6624,7 @@ rack_do_syn_recv(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_established(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
|
||||
|
|
@ -6651,12 +6651,12 @@ rack_do_established(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
rack = (struct tcp_rack *)tp->t_fb_ptr;
|
||||
if (tlen == 0) {
|
||||
if (rack_fastack(m, th, so, tp, to, drop_hdrlen, tlen,
|
||||
tiwin, nxt_pkt, rack->r_ctl.rc_rcvtime)) {
|
||||
tiwin, nxt_pkt, rack->r_ctl.rc_rcvtime, iptos)) {
|
||||
return (0);
|
||||
}
|
||||
} else {
|
||||
if (rack_do_fastnewdata(m, th, so, tp, to, drop_hdrlen, tlen,
|
||||
tiwin, nxt_pkt)) {
|
||||
tiwin, nxt_pkt, iptos)) {
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
|
|
@ -6754,7 +6754,7 @@ rack_do_established(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_close_wait(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
|
||||
|
|
@ -6871,7 +6871,7 @@ rack_check_data_after_close(struct mbuf *m,
|
|||
static int
|
||||
rack_do_fin_wait_1(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
int32_t ourfinisacked = 0;
|
||||
|
|
@ -6992,7 +6992,7 @@ rack_do_fin_wait_1(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_closing(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
int32_t ourfinisacked = 0;
|
||||
|
|
@ -7099,7 +7099,7 @@ rack_do_closing(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_lastack(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
int32_t ourfinisacked = 0;
|
||||
|
|
@ -7207,7 +7207,7 @@ rack_do_lastack(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
static int
|
||||
rack_do_fin_wait_2(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen,
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt)
|
||||
uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos)
|
||||
{
|
||||
int32_t ret_val = 0;
|
||||
int32_t ourfinisacked = 0;
|
||||
|
|
@ -7837,7 +7837,7 @@ rack_do_segment_nounlock(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
|||
rack_clear_rate_sample(rack);
|
||||
retval = (*rack->r_substate) (m, th, so,
|
||||
tp, &to, drop_hdrlen,
|
||||
tlen, tiwin, thflags, nxt_pkt);
|
||||
tlen, tiwin, thflags, nxt_pkt, iptos);
|
||||
#ifdef INVARIANTS
|
||||
if ((retval == 0) &&
|
||||
(tp->t_inpcb == NULL)) {
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ struct tcp_rack {
|
|||
TAILQ_ENTRY(tcp_rack) r_hpts; /* hptsi queue next Lock(b) */
|
||||
int32_t(*r_substate) (struct mbuf *, struct tcphdr *,
|
||||
struct socket *, struct tcpcb *, struct tcpopt *,
|
||||
int32_t, int32_t, uint32_t, int, int); /* Lock(a) */
|
||||
int32_t, int32_t, uint32_t, int, int, uint8_t); /* Lock(a) */
|
||||
struct tcpcb *rc_tp; /* The tcpcb Lock(a) */
|
||||
struct inpcb *rc_inp; /* The inpcb Lock(a) */
|
||||
uint32_t rc_free_cnt; /* Number of free entries on the rc_free list
|
||||
|
|
|
|||
Loading…
Reference in a new issue