udpbytesstat.d revision 9cd928fe5e3ea4e05f64cfb380beb54b2623e7dc
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#!/usr/sbin/dtrace -s
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz/*
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * CDDL HEADER START
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License").
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * You may not use this file except in compliance with the License.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * or http://www.opensolaris.org/os/licensing.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * See the License for the specific language governing permissions
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * and limitations under the License.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * When distributing Covered Code, include this CDDL HEADER in each
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * If applicable, add the following below this CDDL HEADER, with the
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * fields enclosed by brackets "[]" replaced with your own identifying
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * information: Portions Copyright [yyyy] [name of copyright owner]
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz *
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz * CDDL HEADER END
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz */
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz/*
77e515715b61e28fcf0c3f30936492888cecfd8bgongtian zhao - Sun Microsystems - Beijing China * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz */
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz#pragma D option quiet
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzudp:::receive
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz @bytes[args[2]->ip_saddr, args[4]->udp_dport] =
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz sum(args[4]->udp_length);
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzudp:::send
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz @bytes[args[2]->ip_daddr, args[4]->udp_sport] =
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz sum(args[4]->udp_length);
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz
c138f478d2bc94e73ab8f6a084e323bec25e62f5yzprofile:::tick-1sec
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz{
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz printf("\n %-32s %16s\n", "HOST", "BYTES/s");
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz printa(" %-32s %@16d\n", @bytes);
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz trunc(@bytes);
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz}
c138f478d2bc94e73ab8f6a084e323bec25e62f5yz