summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/network
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/systemtap.examples/network')
-rw-r--r--testsuite/systemtap.examples/network/netdev.meta13
-rwxr-xr-xtestsuite/systemtap.examples/network/netdev.stp58
2 files changed, 71 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/network/netdev.meta b/testsuite/systemtap.examples/network/netdev.meta
new file mode 100644
index 00000000..e467a66a
--- /dev/null
+++ b/testsuite/systemtap.examples/network/netdev.meta
@@ -0,0 +1,13 @@
+title: Trace Activity on Network Devices
+name: netdev.stp
+version: 1.0
+author: Breno Leitao
+keywords: network device traffic
+subsystem: network
+status: production
+exit: user-controlled
+output: trace
+scope: system-wide
+description: The netdev.stp script traces configuration and transmit/receive activity on network devices.
+test_check: stap -p4 netdev.stp
+test_installcheck: stap netdev.stp -c "sleep 0.2"
diff --git a/testsuite/systemtap.examples/network/netdev.stp b/testsuite/systemtap.examples/network/netdev.stp
new file mode 100755
index 00000000..faf4d2ae
--- /dev/null
+++ b/testsuite/systemtap.examples/network/netdev.stp
@@ -0,0 +1,58 @@
+#! /usr/bin/env stap
+
+############################################################
+# netdev.stp
+# Author: Breno Leitao <leitao@linux.vnet.ibm.com>
+# 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)
+}