Deleted Added
full compact
31c31
< __FBSDID("$FreeBSD: head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c 176507 2008-02-24 07:19:31Z kmacy $");
---
> __FBSDID("$FreeBSD: head/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c 177340 2008-03-18 03:55:12Z kmacy $");
640a641,648
> static __inline int
> is_delack_mode_valid(struct toedev *dev, struct toepcb *toep)
> {
> return (toep->tp_ulp_mode ||
> (toep->tp_ulp_mode == ULP_MODE_TCPDDP &&
> dev->tod_ttid >= TOE_ID_CHELSIO_T3));
> }
>
705,707c713
< if (toep->tp_ulp_mode)
< dack = F_RX_DACK_CHANGE | V_RX_DACK_MODE(1);
< else {
---
> if (is_delack_mode_valid(dev, toep)) {
716,717c722,724
< }
<
---
> } else
> dack = F_RX_DACK_CHANGE | V_RX_DACK_MODE(1);
>
889a897,902
> void
> t3_set_dack_mss(struct socket *so, int on_off)
> {
> set_tcb_tflag(so, S_TF_DACK_MSS, on_off);
> }
>
2054a2068
> unsigned int delack_mode;
2093a2108,2113
> delack_mode = G_DDP_DACK_MODE(ddp_report);
> if (__predict_false(G_DDP_DACK_MODE(ddp_report) != toep->tp_delack_mode)) {
> toep->tp_delack_mode = delack_mode;
> toep->tp_delack_seq = tp->rcv_nxt;
> }
>
2156,2160c2176,2179
< if (__predict_false(G_DDP_DACK_MODE(ddp_report) != toep->tp_delack_mode)) {
< toep->tp_delack_mode = G_DDP_DACK_MODE(ddp_report);
< toep->tp_delack_seq = tp->rcv_nxt;
< }
<
---
> #ifdef notyet
> skb_reset_transport_header(skb);
> tcp_hdr(skb)->fin = 0; /* changes original hdr->ddp_report */
> #endif
2205c2224
< unsigned int ddp_report, buf_idx, when;
---
> unsigned int ddp_report, buf_idx, when, delack_mode;
2228a2248,2257
>
> delack_mode = G_DDP_DACK_MODE(ddp_report);
> if (__predict_false(G_DDP_DACK_MODE(ddp_report) != toep->tp_delack_mode)) {
> toep->tp_delack_mode = delack_mode;
> toep->tp_delack_seq = tp->rcv_nxt;
> }
> #ifdef notyet
> skb_reset_transport_header(skb);
> tcp_hdr(skb)->fin = 0; /* changes valid memory past CPL */
> #endif
2232,2238d2260
< #ifdef T3_TRACE
< T3_TRACE5(TIDTB(sk),
< "process_ddp_complete: tp->rcv_nxt 0x%x cur_offset %u "
< "ddp_report 0x%x offset %u, len %u",
< tp->rcv_nxt, bsp->cur_offset, ddp_report,
< G_DDP_OFFSET(ddp_report), skb->len);
< #endif
2253,2259d2274
< #ifdef T3_TRACE
< T3_TRACE4(TIDTB(sk),
< "process_ddp_complete: tp->rcv_nxt 0x%x cur_offset %u "
< "ddp_report %u offset %u",
< tp->rcv_nxt, bsp->cur_offset, ddp_report,
< G_DDP_OFFSET(ddp_report));
< #endif
2273a2289
>
2371a2388,2391
> #ifdef notyet
> skb_reset_transport_header(skb);
> tcp_hdr(skb)->fin = 0; /* changes valid memory past CPL */
> #endif
4009c4029,4030
< mk_rx_data_ack_ulp(struct cpl_rx_data_ack *ack, unsigned int tid, unsigned int credits)
---
> mk_rx_data_ack_ulp(struct socket *so,struct cpl_rx_data_ack *ack,
> unsigned int tid, unsigned int credits)
4017c4038,4039
< V_RX_DACK_MODE(1) | V_RX_CREDITS(credits));
---
> V_RX_DACK_MODE(TOM_TUNABLE(TOE_DEV(so), delack)) |
> V_RX_CREDITS(credits));
4219,4220c4241,4243
< mk_rx_data_ack_ulp((struct cpl_rx_data_ack *)(req + 1), toep->tp_tid,
< toep->tp_copied_seq - toep->tp_rcv_wup);
---
> mk_rx_data_ack_ulp(toeptoso(toep),
> (struct cpl_rx_data_ack *)(req + 1), toep->tp_tid,
> toep->tp_copied_seq - toep->tp_rcv_wup);