Print this page
3903 DTrace SCTP Provider
@@ -975,10 +975,15 @@
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,10 +1282,15 @@
"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,10 +1811,16 @@
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,10 +2037,15 @@
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,10 +2326,15 @@
* 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 ||