Print this page
3903 DTrace SCTP Provider

*** 975,984 **** --- 975,989 ---- iph->ipha_fragment_offset_and_flags = 0; } sctp_set_iplen(sctp, head, fp->sf_ixa); + + DTRACE_SCTP5(send, mblk_t *, NULL, ip_xmit_attr_t *, fp->sf_ixa, + void_ip_t *, mp->b_rptr, sctp_t *, sctp, sctp_hdr_t *, + &mp->b_rptr[fp->sf_ixa->ixa_ip_hdr_length]); + (void) conn_ip_output(head, fp->sf_ixa); BUMP_LOCAL(sctp->sctp_opkts); sctp->sctp_active = fp->sf_lastactive = ddi_get_lbolt64(); }
*** 1277,1286 **** --- 1282,1296 ---- "ssn %d to %p (rwnd %d, cansend %d, lastack_rxd %x)\n", seglen - xtralen, ntohl(sdc->sdh_tsn), ntohs(sdc->sdh_ssn), (void *)fp, sctp->sctp_frwnd, cansend, sctp->sctp_lastack_rxd)); sctp_set_iplen(sctp, head, fp->sf_ixa); + + DTRACE_SCTP5(send, mblk_t *, NULL, ip_xmit_attr_t *, fp->sf_ixa, + void_ip_t *, head->b_rptr, sctp_t *, sctp, sctp_hdr_t *, + &head->b_rptr[fp->sf_ixa->ixa_ip_hdr_length]); + (void) conn_ip_output(head, fp->sf_ixa); BUMP_LOCAL(sctp->sctp_opkts); /* arm rto timer (if not set) */ if (!fp->sf_timer_running) SCTP_FADDR_TIMER_RESTART(sctp, fp, fp->sf_rto);
*** 1801,1810 **** --- 1811,1826 ---- fp = sctp_rotate_faddr(sctp, oldfp); pkt = sctp_rexmit_packet(sctp, &meta, &mp, fp, &pkt_len); if (pkt != NULL) { ASSERT(pkt_len <= fp->sf_pmss); sctp_set_iplen(sctp, pkt, fp->sf_ixa); + + DTRACE_SCTP5(send, mblk_t *, NULL, + ip_xmit_attr_t *, fp->sf_ixa, + void_ip_t *, mp->b_rptr, sctp_t *, sctp, sctp_hdr_t *, + &mp->b_rptr[fp->sf_ixa->ixa_ip_hdr_length]); + (void) conn_ip_output(pkt, fp->sf_ixa); BUMP_LOCAL(sctp->sctp_opkts); } else { SCTP_KSTAT(sctps, sctp_ss_rexmit_failed); }
*** 2021,2030 **** --- 2037,2051 ---- sctp->sctp_rexmitting = B_TRUE; sctp->sctp_rxt_nxttsn = first_ua_tsn; sctp->sctp_rxt_maxtsn = sctp->sctp_ltsn - 1; sctp_set_iplen(sctp, head, fp->sf_ixa); + + DTRACE_SCTP5(send, mblk_t *, NULL, ip_xmit_attr_t *, fp->sf_ixa, + void_ip_t *, mp->b_rptr, sctp_t *, sctp, sctp_hdr_t *, + &mp->b_rptr[fp->sf_ixa->ixa_ip_hdr_length]); + (void) conn_ip_output(head, fp->sf_ixa); BUMP_LOCAL(sctp->sctp_opkts); /* * Restart the oldfp timer with exponential backoff and
*** 2305,2314 **** --- 2326,2340 ---- * Need to clear the DF bit. */ iph->ipha_fragment_offset_and_flags = 0; } sctp_set_iplen(sctp, pkt, fp->sf_ixa); + + DTRACE_SCTP5(send, mblk_t *, NULL, ip_xmit_attr_t *, fp->sf_ixa, + void_ip_t *, mp->b_rptr, sctp_t *, sctp, sctp_hdr_t *, + &mp->b_rptr[fp->sf_ixa->ixa_ip_hdr_length]); + (void) conn_ip_output(pkt, fp->sf_ixa); BUMP_LOCAL(sctp->sctp_opkts); /* Check and see if there is more chunk to be retransmitted. */ if (tot_wnd <= pkt_len || tot_wnd - pkt_len < fp->sf_pmss ||