SIFTR and DTrace
George Neville-Neil
gnn at neville-neil.com
Thu Apr 30 12:58:50 UTC 2015
Howdy,
I have added support for a DTrace SDT to the SIFTR module in HEAD. What
this means is that you can
now get SIFTR data filtered out of the kernel directly. I also added a
simple script (share/dtrace/siftr) to
show how this works. The test script is very wordy and only an example
of how to use this.
In order to use SIFTR with DTrace either load the modules, dtraceall and
siftr, or compile them
into the kernel. Here is some example output:
sudo ./siftr
direction in state state-established local 22 remote 55907
snd_cwnd 22978 snd_wnd 131008 rcv_wnd 66608 snd_bwnd 0 snd_ssthresh
1073725440
max_seg_size 1448 smoothed_rtt 11 sack_enabled 1
snd_scale 5 rcv_scale 6 flags 0x3e4 rxt_length 230
snd_buf_hiwater 33304 snd_buf_cc 0 rcv_buf_hiwater 66608
rcv_buf_cc 0 sent_inflight_bytes 0 t_segqlen 0
flowid 0 flowtype 0
Using a DTrace predicate you can select a particular flow based on, for
instance, the local and
remote ports. I have not put in the IP address reporting as yet nor
have I added the ability
to pull out the timeval recorded by SIFTR. Since the trace point is in
the code where the
trace is taken it is possible to use DTrace timestamps natively.
Best,
George
More information about the freebsd-net
mailing list