| sdataSTRING | The actual string to print. |
| indexINDEX | Optional action index value. |
| CONTROL | Indicate how tc should proceed after executing the action. For a description of the possible CONTROL values, see tc-actions(8). |
| 1) | Add an ingress qdisc point to eth0 |
| 2) | Start a chain on ingress of eth0 that first matches ICMP then invokes the simple action to shout. |
| 3) | display stats and show that no packet has been seen by the action |
| 4) | Send one ping packet to google (expect to receive a response back) |
| 5) | grep the logs to see the logged message |
| 6) | \n $ tc qdisc add dev eth0 ingress \n $ tc filter add dev eth0 parent ffff: protocol ip prio 5 \ u32 match ip protocol 1 0xff flowid 1:1 action simple sdata "Incoming ICMP" \n $ sudo tc -s filter ls dev eth0 parent ffff: \n filter protocol ip pref 5 u32 \n filter protocol ip pref 5 u32 fh 800: ht divisor 1 \n filter protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1 \n match 00010000/00ff0000 at 8 action order 1: Simple <Incoming ICMP> index 4 ref 1 bind 1 installed 29 sec used 29 sec Action statistics: Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 \n $ ping -c 1 www.google.ca \n PING www.google.ca (74.125.225.120) 56(84) bytes of data. \n 64 bytes from ord08s08-in-f24.1e100.net (74.125.225.120): icmp_req=1 ttl=53 time=31.3 ms \n --- www.google.ca ping statistics --- \n 1 packets transmitted, 1 received, 0% packet loss, time 0ms \n rtt min/avg/max/mdev = 31.316/31.316/31.316/0.000 ms \n $ dmesg | grep simple \n [135354.473951] simple: Incoming ICMP_1 \n $ sudo tc/tc -s filter ls dev eth0 parent ffff: \n filter protocol ip pref 5 u32 \n filter protocol ip pref 5 u32 fh 800: ht divisor 1 \n filter protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1 \n match 00010000/00ff0000 at 8 action order 1: Simple <Incoming ICMP> index 4 ref 1 bind 1 installed 206 sec used 67 sec Action statistics: Sent 84 bytes 1 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 |
NAME
simple - basic example action
SYNOPSIS
tc ... action simple [ sdataSTRING ] [ indexINDEX ] [ CONTROL ]
CONTROL := { reclassify | pipe | drop | continue | ok }
DESCRIPTION
This is a pedagogical example rather than an actually useful action. Upon every access, it prints the given STRING which may be of arbitrary length.
OPTIONS
- sdataSTRING
The actual string to print.
- indexINDEX
Optional action index value.
- CONTROL
Indicate how tc should proceed after executing the action. For a description of the possible CONTROL values, see tc-actions(8).
EXAMPLES
The following example makes the kernel yell "Incoming ICMP!" every time it sees an incoming ICMP on eth0. Steps are:
- 1)
Add an ingress qdisc point to eth0
- 2)
Start a chain on ingress of eth0 that first matches ICMP then invokes the simple action to shout.
- 3)
display stats and show that no packet has been seen by the action
- 4)
Send one ping packet to google (expect to receive a response back)
- 5)
grep the logs to see the logged message
- 6)
- bash
\n $ tc qdisc add dev eth0 ingress \n $ tc filter add dev eth0 parent ffff: protocol ip prio 5 \ u32 match ip protocol 1 0xff flowid 1:1 action simple sdata "Incoming ICMP" \n $ sudo tc -s filter ls dev eth0 parent ffff: \n filter protocol ip pref 5 u32 \n filter protocol ip pref 5 u32 fh 800: ht divisor 1 \n filter protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1 \n match 00010000/00ff0000 at 8 action order 1: Simple <Incoming ICMP> index 4 ref 1 bind 1 installed 29 sec used 29 sec Action statistics: Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 \n $ ping -c 1 www.google.ca \n PING www.google.ca (74.125.225.120) 56(84) bytes of data. \n 64 bytes from ord08s08-in-f24.1e100.net (74.125.225.120): icmp_req=1 ttl=53 time=31.3 ms \n --- www.google.ca ping statistics --- \n 1 packets transmitted, 1 received, 0% packet loss, time 0ms \n rtt min/avg/max/mdev = 31.316/31.316/31.316/0.000 ms \n $ dmesg | grep simple \n [135354.473951] simple: Incoming ICMP_1 \n $ sudo tc/tc -s filter ls dev eth0 parent ffff: \n filter protocol ip pref 5 u32 \n filter protocol ip pref 5 u32 fh 800: ht divisor 1 \n filter protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1 \n match 00010000/00ff0000 at 8 action order 1: Simple <Incoming ICMP> index 4 ref 1 bind 1 installed 206 sec used 67 sec Action statistics: Sent 84 bytes 1 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0
SEE ALSO
tc(8) tc-actions(8)