#! /usr/bin/env stap ############################################################ # netdev.stp # Author: Breno Leitao # An example script to show how a netdev works and its # functions ############################################################ probe netdev.get_stats ? { printf("%s was asked for statistics structure\n", dev_name) } probe netdev.register{ printf("Registering netdev_name %s\n", dev_name) } probe netdev.unregister{ printf("Unregistering netdev %s\n", dev_name) } probe netdev.ioctl{ printf("Netdev ioctl raised with param: %d and arg: %s\n", cmd, arg) } probe netdev.set_promiscuity { if (enable) printf("Device %s entering in promiscuous mode\n", dev_name) else printf("Device %s leaving promiscuous mode\n", dev_name) } probe netdev.change_rx_flag ? { printf("Device %s is changing its RX flags to %d\n", dev_name, flags) } probe netdev.change_mtu { printf("Changing MTU on device %s from %d to %d\n", dev_name, old_mtu, new_mtu) } probe netdev.change_mac { printf("Changing MAC address on device %s from %s to %s\n", dev_name, old_mac, new_mac) } probe netdev.transmit { printf("Device %s is sending (queued) a packet with protocol %d\n", dev_name, protocol) } probe netdev.hard_transmit { printf("Device %s is sending (hard) a packet with protocol %d\n", dev_name, protocol) } probe netdev.rx { printf("Device %s received a packet with protocol %d\n", dev_name, protocol) }