Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_stacks/rack.c
Context not available. | |||||
TCP_LOG_EVENTP(tp, NULL, | TCP_LOG_EVENTP(tp, NULL, | ||||
&tp->t_inpcb->inp_socket->so_rcv, | &tp->t_inpcb->inp_socket->so_rcv, | ||||
&tp->t_inpcb->inp_socket->so_snd, | &tp->t_inpcb->inp_socket->so_snd, | ||||
TCP_HDWR_TLS, 0, | TCP_HDWR_PACE_SIZE, 0, | ||||
0, &log, false, &tv); | 0, &log, false, &tv); | ||||
} | } | ||||
} | } | ||||
Context not available. | |||||
segsiz = min(ctf_fixed_maxseg(tp), | segsiz = min(ctf_fixed_maxseg(tp), | ||||
rack->r_ctl.rc_pace_min_segs); | rack->r_ctl.rc_pace_min_segs); | ||||
rack->r_ctl.rc_pace_max_segs = tcp_get_pacing_burst_size( | rack->r_ctl.rc_pace_max_segs = tcp_get_pacing_burst_size( | ||||
bw_est, segsiz, 0, | tp, bw_est, segsiz, 0, | ||||
rack->r_ctl.crte, NULL); | rack->r_ctl.crte, NULL); | ||||
} | } | ||||
} else if (rack->rc_always_pace) { | } else if (rack->rc_always_pace) { | ||||
Context not available. | |||||
/* Use the user mss since we are not exactly matched */ | /* Use the user mss since we are not exactly matched */ | ||||
return (user_max); | return (user_max); | ||||
} | } | ||||
new_tso = tcp_get_pacing_burst_size(bw, mss, rack_pace_one_seg, rack->r_ctl.crte, NULL); | new_tso = tcp_get_pacing_burst_size(rack->rc_tp, bw, mss, rack_pace_one_seg, rack->r_ctl.crte, NULL); | ||||
if (new_tso > user_max) | if (new_tso > user_max) | ||||
new_tso = user_max; | new_tso = user_max; | ||||
return(new_tso); | return(new_tso); | ||||
Context not available. | |||||
rack->rc_inp->inp_route.ro_nh->nh_ifp, | rack->rc_inp->inp_route.ro_nh->nh_ifp, | ||||
rate_wanted, | rate_wanted, | ||||
RS_PACING_GEQ, | RS_PACING_GEQ, | ||||
&err); | &err, NULL); | ||||
if (rack->r_ctl.crte) { | if (rack->r_ctl.crte) { | ||||
rack->rack_hdrw_pacing = 1; | rack->rack_hdrw_pacing = 1; | ||||
rack->r_ctl.rc_pace_max_segs = tcp_get_pacing_burst_size(rate_wanted, segsiz, | rack->r_ctl.rc_pace_max_segs = tcp_get_pacing_burst_size(rack->rc_tp, rate_wanted, segsiz, | ||||
0, rack->r_ctl.crte, | 0, rack->r_ctl.crte, | ||||
NULL); | NULL); | ||||
rack_log_hdwr_pacing(rack, rack->rc_inp->inp_route.ro_nh->nh_ifp, | rack_log_hdwr_pacing(rack, rack->rc_inp->inp_route.ro_nh->nh_ifp, | ||||
Context not available. | |||||
rack->rc_inp->inp_route.ro_nh->nh_ifp, | rack->rc_inp->inp_route.ro_nh->nh_ifp, | ||||
rate_wanted, | rate_wanted, | ||||
RS_PACING_GEQ, | RS_PACING_GEQ, | ||||
&err); | &err, NULL); | ||||
if (nrte == NULL) { | if (nrte == NULL) { | ||||
/* Lost the rate */ | /* Lost the rate */ | ||||
rack->rack_hdrw_pacing = 0; | rack->rack_hdrw_pacing = 0; | ||||
rack_set_pace_segments(rack->rc_tp, rack, __LINE__); | rack_set_pace_segments(rack->rc_tp, rack, __LINE__); | ||||
} else if (nrte != rack->r_ctl.crte) { | } else if (nrte != rack->r_ctl.crte) { | ||||
rack->r_ctl.crte = nrte; | rack->r_ctl.crte = nrte; | ||||
rack->r_ctl.rc_pace_max_segs = tcp_get_pacing_burst_size(rate_wanted, | rack->r_ctl.rc_pace_max_segs = tcp_get_pacing_burst_size(rack->rc_tp, rate_wanted, | ||||
segsiz, 0, | segsiz, 0, | ||||
rack->r_ctl.crte, | rack->r_ctl.crte, | ||||
NULL); | NULL); | ||||
Context not available. |