Author: markj
Date: Sun May 17 04:09:22 2015
New Revision: 283026
URL: https://svnweb.freebsd.org/changeset/base/283026

Log:
  Move siftr-related definitions out of tcp.d and into a separate library
  which declares a dependency on siftr(4). This is necessitated by a
  reference to struct pkt_node, which is defined in siftr(4): otherwise,
  dtrace(1) will return an error during startup if siftr.ko is not loaded.

Added:
  head/cddl/lib/libdtrace/siftr.d   (contents, props changed)
Modified:
  head/cddl/lib/libdtrace/Makefile

Modified: head/cddl/lib/libdtrace/Makefile
==============================================================================
--- head/cddl/lib/libdtrace/Makefile    Sun May 17 03:59:08 2015        
(r283025)
+++ head/cddl/lib/libdtrace/Makefile    Sun May 17 04:09:22 2015        
(r283026)
@@ -50,6 +50,7 @@ DSRCS=                errno.d                 \
                io.d                    \
                ip.d                    \
                psinfo.d                \
+               siftr.d                 \
                signal.d                \
                tcp.d                   \
                udp.d                   \

Added: head/cddl/lib/libdtrace/siftr.d
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/cddl/lib/libdtrace/siftr.d     Sun May 17 04:09:22 2015        
(r283026)
@@ -0,0 +1,100 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ * $FreeBSD$
+ */
+
+#pragma D depends_on module siftr
+#pragma D depends_on provider tcp
+
+/*
+ * Convert a SIFTR direction value to a string
+ */
+#pragma D binding "1.12.1" SIFTR_IN
+inline int SIFTR_IN =  1;
+#pragma D binding "1.12.1" SIFTR_OUT
+inline int SIFTR_OUT = 2;
+
+/* SIFTR direction strings. */
+#pragma D binding "1.12.1" siftr_dir_string
+inline string siftr_dir_string[uint8_t direction] =
+       direction == SIFTR_IN ? "in" :
+       direction == SIFTR_OUT ? "out" :
+       "unknown" ;
+
+typedef struct siftrinfo {
+       struct timeval          tval;
+       uint8_t                 direction;
+       uint8_t                 ipver;
+       uint32_t                hash;
+       uint16_t                tcp_localport;
+       uint16_t                tcp_foreignport;
+       uint64_t                snd_cwnd;
+       u_long                  snd_wnd;
+       u_long                  rcv_wnd;
+       u_long                  snd_bwnd;
+       u_long                  snd_ssthresh;
+       int                     conn_state;
+       u_int                   max_seg_size;
+       int                     smoothed_rtt;
+       u_char                  sack_enabled;
+       u_char                  snd_scale;
+       u_char                  rcv_scale;
+       u_int                   flags;
+       int                     rxt_length;
+       u_int                   snd_buf_hiwater;
+       u_int                   snd_buf_cc;
+       u_int                   rcv_buf_hiwater;
+       u_int                   rcv_buf_cc;
+       u_int                   sent_inflight_bytes;
+       int                     t_segqlen;
+       u_int                   flowid;
+       u_int                   flowtype;
+} siftrinfo_t;
+
+#pragma D binding "1.12.1" translator
+translator siftrinfo_t < struct pkt_node *p > {
+       direction =             p == NULL ? 0 : p->direction;
+       ipver =                 p == NULL ? 0 : p->ipver;
+       hash =                  p == NULL ? 0 : p->hash;
+       tcp_localport =         p == NULL ? 0 : ntohs(p->tcp_localport);
+       tcp_foreignport =       p == NULL ? 0 : ntohs(p->tcp_foreignport);
+       snd_cwnd =              p == NULL ? 0 : p->snd_cwnd;
+       snd_wnd =               p == NULL ? 0 : p->snd_wnd;
+       rcv_wnd =               p == NULL ? 0 : p->rcv_wnd;
+       snd_bwnd =              p == NULL ? 0 : p->snd_bwnd;
+       snd_ssthresh =          p == NULL ? 0 : p->snd_ssthresh;
+       conn_state =            p == NULL ? 0 : p->conn_state;
+       max_seg_size =          p == NULL ? 0 : p->max_seg_size;
+       smoothed_rtt =          p == NULL ? 0 : p->smoothed_rtt;
+       sack_enabled =          p == NULL ? 0 : p->sack_enabled;
+       snd_scale =             p == NULL ? 0 : p->snd_scale;
+       rcv_scale =             p == NULL ? 0 : p->rcv_scale;
+       flags =                 p == NULL ? 0 : p->flags;
+       rxt_length =            p == NULL ? 0 : p->rxt_length;
+       snd_buf_hiwater =       p == NULL ? 0 : p->snd_buf_hiwater;
+       snd_buf_cc =            p == NULL ? 0 : p->snd_buf_cc;
+       rcv_buf_hiwater =       p == NULL ? 0 : p->rcv_buf_hiwater;
+       rcv_buf_cc =            p == NULL ? 0 : p->rcv_buf_cc;
+       sent_inflight_bytes =   p == NULL ? 0 : p->sent_inflight_bytes;
+       t_segqlen =             p == NULL ? 0 : p->t_segqlen;
+       flowid =                p == NULL ? 0 : p->flowid;
+       flowtype =              p == NULL ? 0 : p->flowtype;
+};
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to