1*10e6dadfSbrendan /* 2*10e6dadfSbrendan * CDDL HEADER START 3*10e6dadfSbrendan * 4*10e6dadfSbrendan * The contents of this file are subject to the terms of the 5*10e6dadfSbrendan * Common Development and Distribution License (the "License"). 6*10e6dadfSbrendan * You may not use this file except in compliance with the License. 7*10e6dadfSbrendan * 8*10e6dadfSbrendan * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*10e6dadfSbrendan * or http://www.opensolaris.org/os/licensing. 10*10e6dadfSbrendan * See the License for the specific language governing permissions 11*10e6dadfSbrendan * and limitations under the License. 12*10e6dadfSbrendan * 13*10e6dadfSbrendan * When distributing Covered Code, include this CDDL HEADER in each 14*10e6dadfSbrendan * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*10e6dadfSbrendan * If applicable, add the following below this CDDL HEADER, with the 16*10e6dadfSbrendan * fields enclosed by brackets "[]" replaced with your own identifying 17*10e6dadfSbrendan * information: Portions Copyright [yyyy] [name of copyright owner] 18*10e6dadfSbrendan * 19*10e6dadfSbrendan * CDDL HEADER END 20*10e6dadfSbrendan */ 21*10e6dadfSbrendan /* 22*10e6dadfSbrendan * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*10e6dadfSbrendan * Use is subject to license terms. 24*10e6dadfSbrendan */ 25*10e6dadfSbrendan 26*10e6dadfSbrendan #pragma D option quiet 27*10e6dadfSbrendan 28*10e6dadfSbrendan dtrace:::BEGIN 29*10e6dadfSbrendan { 30*10e6dadfSbrendan printf("Tracing... Hit Ctrl-C to end.\n"); 31*10e6dadfSbrendan } 32*10e6dadfSbrendan 33*10e6dadfSbrendan ip:::send, 34*10e6dadfSbrendan ip:::receive 35*10e6dadfSbrendan { 36*10e6dadfSbrendan this->protostr = args[2]->ip_ver == 4 ? 37*10e6dadfSbrendan args[4]->ipv4_protostr : args[5]->ipv6_nextstr; 38*10e6dadfSbrendan @num[args[2]->ip_saddr, args[2]->ip_daddr, this->protostr] = count(); 39*10e6dadfSbrendan } 40*10e6dadfSbrendan 41*10e6dadfSbrendan dtrace:::END 42*10e6dadfSbrendan { 43*10e6dadfSbrendan printf(" %-28s %-28s %6s %8s\n", "SADDR", "DADDR", "PROTO", "COUNT"); 44*10e6dadfSbrendan printa(" %-28s %-28s %6s %@8d\n", @num); 45*10e6dadfSbrendan } 46