Lines Matching refs:fsb
1519 OID_AUTO, "fsb", CTLFLAG_RW,
11570 new_total = acked_amount + rack->r_ctl.fsb.left_to_send;
11576 rack->r_ctl.fsb.left_to_send = new_total;
11577 KASSERT((rack->r_ctl.fsb.left_to_send <= (sbavail(&rack->rc_inp->inp_socket->so_snd) - (tp->snd_max - tp->snd_una))),
11579 rack, rack->r_ctl.fsb.left_to_send,
12218 if ((out + rack->r_ctl.fsb.left_to_send) > tp->snd_wnd) {
12225 rack->r_ctl.fsb.left_to_send = tp->snd_wnd - out;
12226 if (rack->r_ctl.fsb.left_to_send < ctf_fixed_maxseg(tp)) {
14094 rack->r_ctl.fsb.tcp_ip_hdr_len = sizeof(struct ip6_hdr) + sizeof(struct tcphdr);
14095 ip6 = (struct ip6_hdr *)rack->r_ctl.fsb.tcp_ip_hdr;
14097 rack->r_ctl.fsb.tcp_ip_hdr_len += sizeof(struct udphdr);
14101 rack->r_ctl.fsb.udp = udp;
14102 rack->r_ctl.fsb.th = (struct tcphdr *)(udp + 1);
14105 rack->r_ctl.fsb.th = (struct tcphdr *)(ip6 + 1);
14106 rack->r_ctl.fsb.udp = NULL;
14110 ip6, rack->r_ctl.fsb.th);
14111 rack->r_ctl.fsb.hoplimit = in6_selecthlim(rack->rc_inp, NULL);
14116 rack->r_ctl.fsb.tcp_ip_hdr_len = sizeof(struct tcpiphdr);
14117 ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
14119 rack->r_ctl.fsb.tcp_ip_hdr_len += sizeof(struct udphdr);
14123 rack->r_ctl.fsb.udp = udp;
14124 rack->r_ctl.fsb.th = (struct tcphdr *)(udp + 1);
14127 rack->r_ctl.fsb.udp = NULL;
14128 rack->r_ctl.fsb.th = (struct tcphdr *)(ip + 1);
14132 ip, rack->r_ctl.fsb.th);
14133 rack->r_ctl.fsb.hoplimit = tptoinpcb(tp)->inp_ip_ttl;
14136 rack->r_ctl.fsb.recwin = lmin(lmax(sbspace(&tptosocket(tp)->so_rcv), 0),
14149 rack->r_ctl.fsb.tcp_ip_hdr_len = sizeof(struct ip6_hdr) + sizeof(struct tcphdr) + sizeof(struct udphdr);
14151 rack->r_ctl.fsb.tcp_ip_hdr_len = sizeof(struct tcpiphdr) + sizeof(struct udphdr);
14153 rack->r_ctl.fsb.tcp_ip_hdr = malloc(rack->r_ctl.fsb.tcp_ip_hdr_len,
14155 if (rack->r_ctl.fsb.tcp_ip_hdr == NULL) {
14807 /* Lets setup the fsb block */
15086 if (rack->r_ctl.fsb.tcp_ip_hdr) {
15087 free(rack->r_ctl.fsb.tcp_ip_hdr, M_TCPFSB);
15088 rack->r_ctl.fsb.tcp_ip_hdr = NULL;
15089 rack->r_ctl.fsb.th = NULL;
18155 struct rack_fast_send_blk *fsb,
18280 if (fsb != NULL) {
18281 fsb->m = smb;
18282 fsb->off = soff;
18290 fsb->o_m_len = smb->m_len;
18291 fsb->o_t_len = M_TRAILINGROOM(smb);
18301 fsb->o_m_len = 0;
18302 fsb->o_t_len = 0;
18324 m = rack->r_ctl.fsb.m;
18325 if (M_TRAILINGROOM(m) != rack->r_ctl.fsb.o_t_len) {
18332 KASSERT((rack->r_ctl.fsb.o_t_len > M_TRAILINGROOM(m)),
18337 rack->r_ctl.fsb.o_t_len,
18338 rack->r_ctl.fsb.o_m_len,
18340 rack->r_ctl.fsb.o_m_len += (rack->r_ctl.fsb.o_t_len - M_TRAILINGROOM(m));
18341 rack->r_ctl.fsb.o_t_len = M_TRAILINGROOM(m);
18343 if (m->m_len < rack->r_ctl.fsb.o_m_len) {
18348 KASSERT((rack->r_ctl.fsb.off >= (rack->r_ctl.fsb.o_m_len - m->m_len)),
18351 rack, rack->r_ctl.fsb.o_m_len,
18352 rack->r_ctl.fsb.off));
18354 if (rack->r_ctl.fsb.off >= (rack->r_ctl.fsb.o_m_len- m->m_len))
18355 rack->r_ctl.fsb.off -= (rack->r_ctl.fsb.o_m_len - m->m_len);
18357 rack->r_ctl.fsb.off = 0;
18358 rack->r_ctl.fsb.o_m_len = m->m_len;
18360 } else if (m->m_len > rack->r_ctl.fsb.o_m_len) {
18365 soff = rack->r_ctl.fsb.off;
18373 *s_mb = rack->r_ctl.fsb.m;
18375 &rack->r_ctl.fsb,
18376 seglimit, segsize, rack->r_ctl.fsb.hw_tls);
18515 ip6 = (struct ip6_hdr *)rack->r_ctl.fsb.tcp_ip_hdr;
18520 ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
18561 udp = rack->r_ctl.fsb.udp;
18585 th = rack->r_ctl.fsb.th;
18640 th->th_win = htons((u_short)(rack->r_ctl.fsb.recwin >> tp->rcv_scale));
18790 ip6->ip6_hlim = rack->r_ctl.fsb.hoplimit;
18804 ip->ip_ttl = rack->r_ctl.fsb.hoplimit;
18830 memcpy(cpto, rack->r_ctl.fsb.tcp_ip_hdr, rack->r_ctl.fsb.tcp_ip_hdr_len);
18831 th = (struct tcphdr *)(cpto + ((uint8_t *)rack->r_ctl.fsb.th - rack->r_ctl.fsb.tcp_ip_hdr));
19108 ip6 = (struct ip6_hdr *)rack->r_ctl.fsb.tcp_ip_hdr;
19114 ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
19126 len = rack->r_ctl.fsb.left_to_send;
19128 flags = rack->r_ctl.fsb.tcp_flags;
19141 udp = rack->r_ctl.fsb.udp;
19166 th = rack->r_ctl.fsb.th;
19212 th->th_win = htons((u_short)(rack->r_ctl.fsb.recwin >> tp->rcv_scale));
19225 if (rack->r_ctl.fsb.m == NULL)
19240 if (rack->r_ctl.fsb.rfo_apply_push &&
19241 (len == rack->r_ctl.fsb.left_to_send)) {
19350 ip6->ip6_hlim = rack->r_ctl.fsb.hoplimit;
19364 ip->ip_ttl = rack->r_ctl.fsb.hoplimit;
19384 memcpy(cpto, rack->r_ctl.fsb.tcp_ip_hdr, rack->r_ctl.fsb.tcp_ip_hdr_len);
19385 th = (struct tcphdr *)(cpto + ((uint8_t *)rack->r_ctl.fsb.th - rack->r_ctl.fsb.tcp_ip_hdr));
19488 NULL, add_flag, s_mb, s_soff, rack->r_ctl.fsb.hw_tls, segsiz);
19495 tcp_account_for_send(tp, len, 0, 0, rack->r_ctl.fsb.hw_tls);
19515 if (len <= rack->r_ctl.fsb.left_to_send)
19516 rack->r_ctl.fsb.left_to_send -= len;
19518 rack->r_ctl.fsb.left_to_send = 0;
19519 if (rack->r_ctl.fsb.left_to_send < segsiz) {
19521 rack->r_ctl.fsb.left_to_send = 0;
19532 if ((rack->r_ctl.fsb.left_to_send >= segsiz) &&
19537 th = rack->r_ctl.fsb.th;
19576 rack->r_ctl.fsb.m = sbsndmbuf(sb, (tp->snd_max - tp->snd_una), &rack->r_ctl.fsb.off);
19577 rack->r_ctl.fsb.o_m_len = rack->r_ctl.fsb.m->m_len;
19578 rack->r_ctl.fsb.o_t_len = M_TRAILINGROOM(rack->r_ctl.fsb.m);
19579 rack->r_ctl.fsb.tcp_flags = flags;
19580 rack->r_ctl.fsb.left_to_send = orig_len - len;
19581 if (rack->r_ctl.fsb.left_to_send < pace_max_seg) {
19587 rack->r_ctl.fsb.left_to_send = rounddown(rack->r_ctl.fsb.left_to_send, pace_max_seg);
19590 rack->r_ctl.fsb.hw_tls = 1;
19592 rack->r_ctl.fsb.hw_tls = 0;
19593 KASSERT((rack->r_ctl.fsb.left_to_send <= (sbavail(sb) - (tp->snd_max - tp->snd_una))),
19595 rack, rack->r_ctl.fsb.left_to_send, sbavail(sb),
19597 if (rack->r_ctl.fsb.left_to_send < segsiz)
19600 if (rack->r_ctl.fsb.left_to_send == (sbavail(sb) - (tp->snd_max - tp->snd_una)))
19601 rack->r_ctl.fsb.rfo_apply_push = 1;
19603 rack->r_ctl.fsb.rfo_apply_push = 0;
19989 (rack->r_ctl.fsb.tcp_ip_hdr) &&
20898 rack->r_ctl.fsb.recwin = recwin;
20914 /* We can send at least one more MSS using our fsb */
21668 if ((ipoptlen == 0) && (rack->r_ctl.fsb.tcp_ip_hdr) && rack->r_fsb_inited) {
21671 ip6 = (struct ip6_hdr *)rack->r_ctl.fsb.tcp_ip_hdr;
21675 ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
21677 th = rack->r_ctl.fsb.th;
21678 udp = rack->r_ctl.fsb.udp;
21796 /* Now are we using fsb?, if so copy the template data to the mbuf */
21797 if ((ipoptlen == 0) && (rack->r_ctl.fsb.tcp_ip_hdr) && rack->r_fsb_inited) {
21801 memcpy(cpto, rack->r_ctl.fsb.tcp_ip_hdr, rack->r_ctl.fsb.tcp_ip_hdr_len);
21821 th = (struct tcphdr *)(cpto + ((uint8_t *)rack->r_ctl.fsb.th - rack->r_ctl.fsb.tcp_ip_hdr));
21824 udp = (struct udphdr *)(cpto + ((uint8_t *)rack->r_ctl.fsb.udp - rack->r_ctl.fsb.tcp_ip_hdr));
22019 rack->r_ctl.fsb.hoplimit = ip6->ip6_hlim = in6_selecthlim(inp, NULL);
22058 rack->r_ctl.fsb.hoplimit = ip->ip_ttl;
22295 if (rack->r_ctl.fsb.left_to_send > len)
22296 rack->r_ctl.fsb.left_to_send -= len;
22298 rack->r_ctl.fsb.left_to_send = 0;
22299 if (rack->r_ctl.fsb.left_to_send < segsiz)
22302 rack->r_ctl.fsb.m = sbsndmbuf(sb, (tp->snd_max - tp->snd_una), &rack->r_ctl.fsb.off);
22303 rack->r_ctl.fsb.o_m_len = rack->r_ctl.fsb.m->m_len;
22304 rack->r_ctl.fsb.o_t_len = M_TRAILINGROOM(rack->r_ctl.fsb.m);
22528 rack->r_ctl.fsb.recwin = recwin;
22554 /* We can send at least one more MSS using our fsb */
24141 rack->r_ctl.fsb.hw_tls = 1;
24143 rack->r_ctl.fsb.hw_tls = 0;
24230 ip = (struct ip *)rack->r_ctl.fsb.tcp_ip_hdr;
24250 * The DSCP codepoint has changed, update the fsb.
24256 * The TTL has changed, update the fsb.