xref: /onnv-gate/usr/src/cmd/smbsrv/dtrace/cifs.d (revision 12508:edb7861a1533)
16139Sjb150015 #!/usr/sbin/dtrace -s
26139Sjb150015 /*
36139Sjb150015  * CDDL HEADER START
46139Sjb150015  *
56139Sjb150015  * The contents of this file are subject to the terms of the
66139Sjb150015  * Common Development and Distribution License (the "License").
76139Sjb150015  * You may not use this file except in compliance with the License.
86139Sjb150015  *
96139Sjb150015  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
106139Sjb150015  * or http://www.opensolaris.org/os/licensing.
116139Sjb150015  * See the License for the specific language governing permissions
126139Sjb150015  * and limitations under the License.
136139Sjb150015  *
146139Sjb150015  * When distributing Covered Code, include this CDDL HEADER in each
156139Sjb150015  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
166139Sjb150015  * If applicable, add the following below this CDDL HEADER, with the
176139Sjb150015  * fields enclosed by brackets "[]" replaced with your own identifying
186139Sjb150015  * information: Portions Copyright [yyyy] [name of copyright owner]
196139Sjb150015  *
206139Sjb150015  * CDDL HEADER END
216139Sjb150015  */
226139Sjb150015 /*
23*12508Samw@Sun.COM  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
246139Sjb150015  */
256139Sjb150015 
266139Sjb150015 /*
276139Sjb150015 #pragma D option flowindent
286139Sjb150015 */
296139Sjb150015 
306139Sjb150015 /*
316139Sjb150015  * Usage:	./cifs.d -p `pgrep smbd`
326139Sjb150015  *
336139Sjb150015  * On multi-processor systems, it may be easier to follow the output
346139Sjb150015  * if run on a single processor: see psradm.  For example, to disable
356139Sjb150015  * the second processor on a dual-processor system:	psradm -f 1
366139Sjb150015  */
376139Sjb150015 
386139Sjb150015 BEGIN
396139Sjb150015 {
406139Sjb150015 	printf("CIFS Trace Started");
416139Sjb150015 	printf("\n\n");
426139Sjb150015 }
436139Sjb150015 
446139Sjb150015 END
456139Sjb150015 {
466139Sjb150015 	printf("CIFS Trace Ended");
476139Sjb150015 	printf("\n\n");
486139Sjb150015 }
496139Sjb150015 
506139Sjb150015 sdt:smbsrv::-smb_op*-start
516139Sjb150015 {
526139Sjb150015 	sr = (struct smb_request *)arg0;
536139Sjb150015 
546139Sjb150015 	printf("cmd=%d [uid=%d tid=%d]",
556139Sjb150015 	    sr->smb_com, sr->smb_uid, sr->smb_tid);
566139Sjb150015 
576139Sjb150015 	self->status = 0;
586139Sjb150015 }
596139Sjb150015 
606139Sjb150015 sdt:smbsrv::-smb_op*-done
616139Sjb150015 {
626139Sjb150015 	sr = (struct smb_request *)arg0;
636139Sjb150015 
646139Sjb150015 	printf("cmd[%d]: status=0x%08x (class=%d code=%d)",
656139Sjb150015 	    sr->smb_com, sr->smb_error.status,
666139Sjb150015 	    sr->smb_error.errcls, sr->smb_error.errcode);
676139Sjb150015 
686139Sjb150015 	self->status = sr->smb_error.status;
696139Sjb150015 }
706139Sjb150015 
71*12508Samw@Sun.COM sdt:smbsrv::-smb_op-Negotiate-done
72*12508Samw@Sun.COM {
73*12508Samw@Sun.COM 	sr = (struct smb_request *)arg0;
74*12508Samw@Sun.COM 	negprot = (smb_arg_negotiate_t *)arg1;
75*12508Samw@Sun.COM 
76*12508Samw@Sun.COM 	printf("dialect=%s index=%u caps=0x%08x maxmpx=%u tz=%d time=%u",
77*12508Samw@Sun.COM 	    stringof(negprot->ni_name),
78*12508Samw@Sun.COM 	    negprot->ni_index,
79*12508Samw@Sun.COM 	    negprot->ni_capabilities,
80*12508Samw@Sun.COM 	    negprot->ni_maxmpxcount,
81*12508Samw@Sun.COM 	    negprot->ni_tzcorrection,
82*12508Samw@Sun.COM 	    negprot->ni_servertime.tv_sec);
83*12508Samw@Sun.COM 
84*12508Samw@Sun.COM 	printf(" [status=0x%08x (class=%d code=%d)]",
85*12508Samw@Sun.COM 	    sr->smb_error.status,
86*12508Samw@Sun.COM 	    sr->smb_error.errcls, sr->smb_error.errcode);
87*12508Samw@Sun.COM 
88*12508Samw@Sun.COM 	self->status = sr->smb_error.status;
89*12508Samw@Sun.COM }
90*12508Samw@Sun.COM 
916139Sjb150015 sdt:smbsrv::-smb_op-SessionSetupX-start
926139Sjb150015 {
936139Sjb150015 	sr = (struct smb_request *)arg0;
94*12508Samw@Sun.COM 	ssetup = (smb_arg_sessionsetup_t *)arg1;
956139Sjb150015 
96*12508Samw@Sun.COM 	printf("[%s] %s %s %s",
976139Sjb150015 	    (sr->session->s_local_port == 139) ? "NBT" : "TCP",
986139Sjb150015 	    (sr->session->s_local_port == 139) ?
99*12508Samw@Sun.COM 	    stringof(sr->session->workstation) : "",
100*12508Samw@Sun.COM 	    stringof(ssetup->ssi_domain),
101*12508Samw@Sun.COM 	    stringof(ssetup->ssi_user));
102*12508Samw@Sun.COM 
103*12508Samw@Sun.COM 	printf(" maxmpx=%u vc=%u maxbuf=%u",
104*12508Samw@Sun.COM 	    ssetup->ssi_maxmpxcount,
105*12508Samw@Sun.COM 	    sr->session->vcnumber,
106*12508Samw@Sun.COM 	    sr->session->smb_msg_size);
1076139Sjb150015 }
1086139Sjb150015 
109*12508Samw@Sun.COM sdt:smbsrv::-smb_op-SessionSetupX-done
110*12508Samw@Sun.COM {
111*12508Samw@Sun.COM 	sr = (struct smb_request *)arg0;
112*12508Samw@Sun.COM 	ssetup = (smb_arg_sessionsetup_t *)arg1;
113*12508Samw@Sun.COM 
114*12508Samw@Sun.COM 	printf("%s/%s: smbuid=%d (%s)",
115*12508Samw@Sun.COM 	    stringof(sr->uid_user->u_domain),
116*12508Samw@Sun.COM 	    stringof(sr->uid_user->u_name),
117*12508Samw@Sun.COM 	    sr->smb_uid,
118*12508Samw@Sun.COM 	    (ssetup->ssi_guest == 0) ? "user" : "guest");
119*12508Samw@Sun.COM 
120*12508Samw@Sun.COM 	printf(" [status=0x%08x (class=%d code=%d)]",
121*12508Samw@Sun.COM 	    sr->smb_error.status,
122*12508Samw@Sun.COM 	    sr->smb_error.errcls, sr->smb_error.errcode);
123*12508Samw@Sun.COM 
124*12508Samw@Sun.COM 	self->status = sr->smb_error.status;
125*12508Samw@Sun.COM }
126*12508Samw@Sun.COM 
1276139Sjb150015 sdt:smbsrv::-smb_op-LogoffX-start
1286139Sjb150015 {
1296139Sjb150015 	sr = (struct smb_request *)arg0;
1306139Sjb150015 
1316139Sjb150015 	printf("uid %d: %s/%s", sr->smb_uid,
1326139Sjb150015 	    stringof(sr->uid_user->u_domain),
1336139Sjb150015 	    stringof(sr->uid_user->u_name));
1346139Sjb150015 }
1356139Sjb150015 
1366139Sjb150015 sdt:smbsrv::-smb_op-TreeConnectX-start
1376139Sjb150015 {
1386139Sjb150015 	tcon = (struct tcon *)arg1;
1396139Sjb150015 
1406139Sjb150015 	printf("[%s] %s",
1416139Sjb150015                 stringof(tcon->service),
1426139Sjb150015                 stringof(tcon->path));
1436139Sjb150015 }
1446139Sjb150015 
145*12508Samw@Sun.COM sdt:smbsrv::-smb_op-TreeConnectX-done
146*12508Samw@Sun.COM {
147*12508Samw@Sun.COM 	sr = (struct smb_request *)arg0;
148*12508Samw@Sun.COM 
149*12508Samw@Sun.COM 	printf("tid %d: %s", sr->smb_tid,
150*12508Samw@Sun.COM 	    (sr->smb_error.status == 0) ?
151*12508Samw@Sun.COM 	    stringof(sr->tid_tree->t_sharename) : "");
152*12508Samw@Sun.COM 
153*12508Samw@Sun.COM 	printf(" [status=0x%08x (class=%d code=%d)]",
154*12508Samw@Sun.COM 	    sr->smb_error.status,
155*12508Samw@Sun.COM 	    sr->smb_error.errcls, sr->smb_error.errcode);
156*12508Samw@Sun.COM }
157*12508Samw@Sun.COM 
1586139Sjb150015 sdt:smbsrv::-smb_op-TreeDisconnect-start
1596139Sjb150015 {
1606139Sjb150015 	sr = (struct smb_request *)arg0;
1616139Sjb150015 
1626139Sjb150015 	printf("tid %d: %s", sr->smb_tid,
1636139Sjb150015 	    stringof(sr->tid_tree->t_sharename));
1646139Sjb150015 	discard(self->status);
1656139Sjb150015 }
1666139Sjb150015 
1676139Sjb150015 sdt:smbsrv::-smb_op-Open-start,
1686139Sjb150015 sdt:smbsrv::-smb_op-OpenX-start,
1696139Sjb150015 sdt:smbsrv::-smb_op-Create-start,
1706139Sjb150015 sdt:smbsrv::-smb_op-CreateNew-start,
1716139Sjb150015 sdt:smbsrv::-smb_op-CreateTemporary-start,
1726139Sjb150015 sdt:smbsrv::-smb_op-CreateDirectory-start,
1736139Sjb150015 sdt:smbsrv::-smb_op-NtCreateX-start,
1746139Sjb150015 sdt:smbsrv::-smb_op-NtTransactCreate-start
1756139Sjb150015 {
1766139Sjb150015 	op =  (struct open_param *)arg1;
1776139Sjb150015 
17811447Samw@Sun.COM 	printf("%s", stringof(op->fqi.fq_path.pn_path));
1796139Sjb150015 }
1806139Sjb150015 
1816139Sjb150015 sdt:smbsrv::-smb_op-Open-done,
1826139Sjb150015 sdt:smbsrv::-smb_op-OpenX-done,
1836139Sjb150015 sdt:smbsrv::-smb_op-Create-done,
1846139Sjb150015 sdt:smbsrv::-smb_op-CreateNew-done,
1856139Sjb150015 sdt:smbsrv::-smb_op-CreateTemporary-done,
1866139Sjb150015 sdt:smbsrv::-smb_op-CreateDirectory-done,
1876139Sjb150015 sdt:smbsrv::-smb_op-NtCreateX-done,
1886139Sjb150015 sdt:smbsrv::-smb_op-NtTransactCreate-done
1896139Sjb150015 {
1906139Sjb150015 	sr = (struct smb_request *)arg0;
1916139Sjb150015 
1926139Sjb150015 	printf("%s: fid=%u",
19311447Samw@Sun.COM 	    stringof(sr->arg.open.fqi.fq_path.pn_path), sr->smb_fid);
1946139Sjb150015 }
1956139Sjb150015 
1966139Sjb150015 sdt:smbsrv::-smb_op-Read-start,
1976139Sjb150015 sdt:smbsrv::-smb_op-LockAndRead-start,
1986139Sjb150015 sdt:smbsrv::-smb_op-ReadX-start,
1996139Sjb150015 sdt:smbsrv::-smb_op-ReadRaw-start,
2006139Sjb150015 sdt:smbsrv::-smb_op-Write-start,
2016139Sjb150015 sdt:smbsrv::-smb_op-WriteAndClose-start,
2026139Sjb150015 sdt:smbsrv::-smb_op-WriteAndUnlock-start,
2036139Sjb150015 sdt:smbsrv::-smb_op-WriteX-start,
2046139Sjb150015 sdt:smbsrv::-smb_op-WriteRaw-start
2056139Sjb150015 {
2066139Sjb150015 	sr = (struct smb_request *)arg0;
2076139Sjb150015 	rw =  (smb_rw_param_t *)arg1;
2086139Sjb150015 
2096139Sjb150015 	printf("fid=%d: %u bytes at offset %u",
2106139Sjb150015 	    sr->smb_fid, rw->rw_count, rw->rw_offset);
2116139Sjb150015 }
2126139Sjb150015 
2136139Sjb150015 sdt:smbsrv::-smb_op-Read-done,
2146139Sjb150015 sdt:smbsrv::-smb_op-LockAndRead-done,
2156139Sjb150015 sdt:smbsrv::-smb_op-ReadX-done,
2166139Sjb150015 sdt:smbsrv::-smb_op-ReadRaw-done
2176139Sjb150015 /self->status == 0/
2186139Sjb150015 {
2196139Sjb150015 	sr = (struct smb_request *)arg0;
2206139Sjb150015 	rw =  (smb_rw_param_t *)arg1;
2216139Sjb150015 
2226139Sjb150015 	printf("fid=%d: %u bytes at offset %u",
2236139Sjb150015 	    sr->smb_fid, rw->rw_count, rw->rw_offset);
2246139Sjb150015 }
2256139Sjb150015 
2266139Sjb150015 sdt:smbsrv::-smb_op-Rename-start
2276139Sjb150015 {
2286139Sjb150015 	p = (struct dirop *)arg1;
2296139Sjb150015 
2306139Sjb150015 	printf("%s to %s",
231*12508Samw@Sun.COM 	    stringof(p->fqi.fq_path.pn_path),
232*12508Samw@Sun.COM 	    stringof(p->dst_fqi.fq_path.pn_path));
2336139Sjb150015 }
2346139Sjb150015 
2356139Sjb150015 sdt:smbsrv::-smb_op-CheckDirectory-start,
2366139Sjb150015 sdt:smbsrv::-smb_op-CreateDirectory-start,
2376139Sjb150015 sdt:smbsrv::-smb_op-DeleteDirectory-start,
2386139Sjb150015 sdt:smbsrv::-smb_op-Delete-start
2396139Sjb150015 {
2406139Sjb150015 	p = (struct dirop *)arg1;
2416139Sjb150015 
24211447Samw@Sun.COM 	printf("%s", stringof(p->fqi.fq_path.pn_path));
2436139Sjb150015 }
2446139Sjb150015 
2456139Sjb150015 /*
2466139Sjb150015 smb_dispatch_request:entry,
2476139Sjb150015 smb_dispatch_request:return,
2486139Sjb150015 smb_pre_*:return,
2496139Sjb150015 smb_com_*:return,
2506139Sjb150015 smb_post_*:return,
251*12508Samw@Sun.COM smbsr_status:return,
2526139Sjb150015 smbsr_errno:return
2536139Sjb150015 {
2546139Sjb150015 }
2556139Sjb150015 
2566139Sjb150015 smb_pre_*:entry,
2576139Sjb150015 smb_com_*:entry,
2586139Sjb150015 smb_post_*:entry
2596139Sjb150015 {
2606139Sjb150015 	sr = (struct smb_request *)arg0;
2616139Sjb150015 
2626139Sjb150015 	printf("cmd=%d [uid=%d tid=%d]",
2636139Sjb150015 	    sr->smb_com, sr->smb_uid, sr->smb_tid);
2646139Sjb150015 }
2656139Sjb150015 
266*12508Samw@Sun.COM smbsr_status:entry
2676139Sjb150015 {
2686139Sjb150015     printf("status=0x%08x class=%d, code=%d\n", arg1, arg2, arg3);
2696139Sjb150015 }
2706139Sjb150015 
2716139Sjb150015 smbsr_errno:entry
2726139Sjb150015 {
2736139Sjb150015     printf("errno=%d\n", arg1);
2746139Sjb150015 }
2756139Sjb150015 */
276