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