sctp_dtrace_define.h revision 235828
1/*- 2 * Copyright (c) 2008-2012, by Randall Stewart. All rights reserved. 3 * Copyright (c) 2008-2012, by Michael Tuexen. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 8 * a) Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * 11 * b) Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the distribution. 14 * 15 * c) Neither the name of Cisco Systems, Inc. nor the names of its 16 * contributors may be used to endorse or promote products derived 17 * from this software without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 21 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 29 * THE POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32#include <sys/cdefs.h> 33__FBSDID("$FreeBSD: head/sys/netinet/sctp_dtrace_define.h 235828 2012-05-23 11:26:28Z tuexen $"); 34 35#ifndef _NETINET_SCTP_DTRACE_DEFINE_H_ 36#define _NETINET_SCTP_DTRACE_DEFINE_H_ 37 38#include "opt_kdtrace.h" 39#include <sys/kernel.h> 40#include <sys/sdt.h> 41 42SDT_PROVIDER_DEFINE(sctp); 43 44/********************************************************/ 45/* Cwnd probe - tracks changes in the congestion window on a netp */ 46/********************************************************/ 47/* Initial */ 48SDT_PROBE_DEFINE(sctp, cwnd, net, init, init); 49/* The Vtag for this end */ 50SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 0, "uint32_t"); 51/* The port number of the local side << 16 | port number of remote 52 * in network byte order. 53 */ 54SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 1, "uint32_t"); 55/* The pointer to the struct sctp_nets * changing */ 56SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 2, "uintptr_t"); 57/* The old value of the cwnd */ 58SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 3, "int"); 59/* The new value of the cwnd */ 60SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 4, "int"); 61 62 63/* ACK-INCREASE */ 64SDT_PROBE_DEFINE(sctp, cwnd, net, ack, ack); 65/* The Vtag for this end */ 66SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 0, "uint32_t"); 67/* The port number of the local side << 16 | port number of remote 68 * in network byte order. 69 */ 70SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 1, "uint32_t"); 71/* The pointer to the struct sctp_nets * changing */ 72SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 2, "uintptr_t"); 73/* The old value of the cwnd */ 74SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 3, "int"); 75/* The new value of the cwnd */ 76SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 4, "int"); 77 78 79/* ACK-INCREASE */ 80SDT_PROBE_DEFINE(sctp, cwnd, net, rttvar, rttvar); 81/* The Vtag << 32 | localport << 16 | remoteport */ 82SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 0, "uint64_t"); 83/* obw | nbw */ 84SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 1, "uint64_t"); 85/* bwrtt | newrtt */ 86SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 2, "uint64_t"); 87/* flight */ 88SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 3, "uint64_t"); 89/* (cwnd << 32) | point << 16 | retval(0/1) */ 90SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 4, "uint64_t"); 91 92 93SDT_PROBE_DEFINE(sctp, cwnd, net, rttstep, rttstep); 94/* The Vtag << 32 | localport << 16 | remoteport */ 95SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 0, "uint64_t"); 96/* obw | nbw */ 97SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 1, "uint64_t"); 98/* bwrtt | nrtt */ 99SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 2, "uint64_t"); 100/* cwnd_saved | stepcnt << 16 | oldstep */ 101SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 3, "uint64_t"); 102/* (cwnd << 32) | point << 16 | retval(0/1) */ 103SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 4, "uint64_t"); 104 105 106/* FastRetransmit-DECREASE */ 107SDT_PROBE_DEFINE(sctp, cwnd, net, fr, fr); 108/* The Vtag for this end */ 109SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 0, "uint32_t"); 110/* The port number of the local side << 16 | port number of remote 111 * in network byte order. 112 */ 113SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 1, "uint32_t"); 114/* The pointer to the struct sctp_nets * changing */ 115SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 2, "uintptr_t"); 116/* The old value of the cwnd */ 117SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 3, "int"); 118/* The new value of the cwnd */ 119SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 4, "int"); 120 121 122/* TimeOut-DECREASE */ 123SDT_PROBE_DEFINE(sctp, cwnd, net, to, to); 124/* The Vtag for this end */ 125SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 0, "uint32_t"); 126/* The port number of the local side << 16 | port number of remote 127 * in network byte order. 128 */ 129SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 1, "uint32_t"); 130/* The pointer to the struct sctp_nets * changing */ 131SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 2, "uintptr_t"); 132/* The old value of the cwnd */ 133SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 3, "int"); 134/* The new value of the cwnd */ 135SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 4, "int"); 136 137 138/* BurstLimit-DECREASE */ 139SDT_PROBE_DEFINE(sctp, cwnd, net, bl, bl); 140/* The Vtag for this end */ 141SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 0, "uint32_t"); 142/* The port number of the local side << 16 | port number of remote 143 * in network byte order. 144 */ 145SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 1, "uint32_t"); 146/* The pointer to the struct sctp_nets * changing */ 147SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 2, "uintptr_t"); 148/* The old value of the cwnd */ 149SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 3, "int"); 150/* The new value of the cwnd */ 151SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 4, "int"); 152 153 154/* ECN-DECREASE */ 155SDT_PROBE_DEFINE(sctp, cwnd, net, ecn, ecn); 156/* The Vtag for this end */ 157SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 0, "uint32_t"); 158/* The port number of the local side << 16 | port number of remote 159 * in network byte order. 160 */ 161SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 1, "uint32_t"); 162/* The pointer to the struct sctp_nets * changing */ 163SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 2, "uintptr_t"); 164/* The old value of the cwnd */ 165SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 3, "int"); 166/* The new value of the cwnd */ 167SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 4, "int"); 168 169 170/* PacketDrop-DECREASE */ 171SDT_PROBE_DEFINE(sctp, cwnd, net, pd, pd); 172/* The Vtag for this end */ 173SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 0, "uint32_t"); 174/* The port number of the local side << 16 | port number of remote 175 * in network byte order. 176 */ 177SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 1, "uint32_t"); 178/* The pointer to the struct sctp_nets * changing */ 179SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 2, "uintptr_t"); 180/* The old value of the cwnd */ 181SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 3, "int"); 182/* The new value of the cwnd */ 183SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 4, "int"); 184 185 186 187/********************************************************/ 188/* Rwnd probe - tracks changes in the receiver window for an assoc */ 189/********************************************************/ 190SDT_PROBE_DEFINE(sctp, rwnd, assoc, val, val); 191/* The Vtag for this end */ 192SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 0, "uint32_t"); 193/* The port number of the local side << 16 | port number of remote 194 * in network byte order. 195 */ 196SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 1, "uint32_t"); 197/* The up/down amount */ 198SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 2, "int"); 199/* The new value of the cwnd */ 200SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 3, "int"); 201 202/********************************************************/ 203/* flight probe - tracks changes in the flight size on a net or assoc */ 204/********************************************************/ 205SDT_PROBE_DEFINE(sctp, flightsize, net, val, val); 206/* The Vtag for this end */ 207SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 0, "uint32_t"); 208/* The port number of the local side << 16 | port number of remote 209 * in network byte order. 210 */ 211SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 1, "uint32_t"); 212/* The pointer to the struct sctp_nets * changing */ 213SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 2, "uintptr_t"); 214/* The up/down amount */ 215SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 3, "int"); 216/* The new value of the cwnd */ 217SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 4, "int"); 218/********************************************************/ 219/* The total flight version */ 220/********************************************************/ 221SDT_PROBE_DEFINE(sctp, flightsize, assoc, val, val); 222/* The Vtag for this end */ 223SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 0, "uint32_t"); 224/* The port number of the local side << 16 | port number of remote 225 * in network byte order. 226 */ 227SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 1, "uint32_t"); 228/* The up/down amount */ 229SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 2, "int"); 230/* The new value of the cwnd */ 231SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 3, "int"); 232 233#endif 234