Eric Dumazet
32a6fbe563
tc : add timestamps to tc monitor
...
Support -timestamp and -tshort options for tc monitor like ip monitor.
# tc -tshort monitor
[2015-09-23T16:39:11.260555] qdisc fq 8003: dev eth0 root refcnt 2 limit
10000p flow_limit 100p buckets 1024 quantum 3028 initial_quantum 15140
refill_delay 40.0ms
Signed-off-by: Eric Dumazet <edumazet@google.com>
2015-09-25 12:35:46 -07:00
Daniel Borkmann
4bd624467b
tc: built-in eBPF exec proxy
...
This work follows upon commit 6256f8c9e4
("tc, bpf: finalize eBPF
support for cls and act front-end") and takes up the idea proposed by
Hannes Frederic Sowa to spawn a shell (or any other command) that holds
generated eBPF map file descriptors.
File descriptors, based on their id, are being fetched from the same
unix domain socket as demonstrated in the bpf_agent, the shell spawned
via execvpe(2) and the map fds passed over the environment, and thus
are made available to applications in the fashion of std{in,out,err}
for read/write access, for example in case of iproute2's examples/bpf/:
# env | grep BPF
BPF_NUM_MAPS=3
BPF_MAP1=6 <- BPF_MAP_ID_QUEUE (id 1)
BPF_MAP0=5 <- BPF_MAP_ID_PROTO (id 0)
BPF_MAP2=7 <- BPF_MAP_ID_DROPS (id 2)
# ls -la /proc/self/fd
[...]
lrwx------. 1 root root 64 Apr 14 16:46 0 -> /dev/pts/4
lrwx------. 1 root root 64 Apr 14 16:46 1 -> /dev/pts/4
lrwx------. 1 root root 64 Apr 14 16:46 2 -> /dev/pts/4
[...]
lrwx------. 1 root root 64 Apr 14 16:46 5 -> anon_inode:bpf-map
lrwx------. 1 root root 64 Apr 14 16:46 6 -> anon_inode:bpf-map
lrwx------. 1 root root 64 Apr 14 16:46 7 -> anon_inode:bpf-map
The advantage (as opposed to the direct/native usage) is that now the
shell is map fd owner and applications can terminate and easily reattach
to descriptors w/o any kernel changes. Moreover, multiple applications
can easily read/write eBPF maps simultaneously.
To further allow users for experimenting with that, next step is to add
a small helper that can get along with simple data types, so that also
shell scripts can make use of bpf syscall, f.e to read/write into maps.
Generally, this allows for prepopulating maps, or any runtime altering
which could influence eBPF program behaviour (f.e. different run-time
classifications, skb modifications, ...), dumping of statistics, etc.
Reference: http://thread.gmane.org/gmane.linux.network/357471/focus=357860
Suggested-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
2015-04-27 16:39:23 -07:00
Vadim Kochan
4612d04d6b
tc class: Show class names from file
...
It is possible to use class names from file /etc/iproute2/cls_names
which tc will use when showing class info:
# tc/tc -nm class show dev lo
class htb 1:10 parent 1:1 leaf 10: prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 1600b
class htb 1:1 root rate 6Mbit ceil 6Mbit burst 15Kb cburst 1599b
class htb web#1:20 parent 1:1 leaf 20: prio 0 rate 3Mbit ceil 6Mbit burst 15Kb cburst 1599b
class htb 1:2 root rate 6Mbit ceil 6Mbit burst 15Kb cburst 1599b
class htb 1:30 parent 1:1 leaf 30: prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
class htb voip#1:40 parent 1:2 leaf 40: prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 1600b
class htb 1:50 parent 1:2 leaf 50: prio 0 rate 3Mbit ceil 6Mbit burst 15Kb cburst 1599b
class htb 1:60 parent 1:2 leaf 60: prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
or to specify via file path:
# tc/tc -nm -cf /tmp/cls_names class show dev lo
Class names file contains simple "maj:min name" structure:
1:20 web
1:40 voip
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
2015-03-15 12:27:40 -07:00
Vadim Kochan
67e1d73be1
tc: Allow to easy change network namespace
...
Added new '-netns' option to simplify executing following cmd:
ip netns exec NETNS tc OPTIONS COMMAND OBJECT
to
tc -n[etns] NETNS OPTIONS COMMAND OBJECT
e.g.:
tc -net vnet0 qdisc
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
2014-12-27 10:22:34 -08:00
Vadim Kochan
d954b34a1f
tc class: Show classes as ASCII graph
...
Added new '-g[raph]' option which shows classes in the graph view.
Meanwhile only generic stats info output is supported.
e.g.:
$ tc/tc -g class show dev tap0
+---(1:2) htb rate 6Mbit ceil 6Mbit burst 15Kb cburst 1599b
| +---(1:40) htb prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 1600b
| +---(1:50) htb rate 3Mbit ceil 6Mbit burst 15Kb cburst 1599b
| | +---(1:51) htb prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
| |
| +---(1:60) htb prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
|
+---(1:1) htb rate 6Mbit ceil 6Mbit burst 15Kb cburst 1599b
+---(1:10) htb prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 1600b
+---(1:20) htb prio 0 rate 3Mbit ceil 6Mbit burst 15Kb cburst 1599b
+---(1:30) htb prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
$ tc/tc -g -s class show dev tap0
+---(1:2) htb rate 6Mbit ceil 6Mbit burst 15Kb cburst 1599b
| | Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| | rate 0bit 0pps backlog 0b 0p requeues 0
| |
| +---(1:40) htb prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 1600b
| | Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| | rate 0bit 0pps backlog 0b 0p requeues 0
| |
| +---(1:50) htb rate 3Mbit ceil 6Mbit burst 15Kb cburst 1599b
| | | Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| | | rate 0bit 0pps backlog 0b 0p requeues 0
| | |
| | +---(1:51) htb prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
| | Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| | rate 0bit 0pps backlog 0b 0p requeues 0
| |
| +---(1:60) htb prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
| Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| rate 0bit 0pps backlog 0b 0p requeues 0
|
+---(1:1) htb rate 6Mbit ceil 6Mbit burst 15Kb cburst 1599b
| Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| rate 0bit 0pps backlog 0b 0p requeues 0
|
+---(1:10) htb prio 0 rate 5Mbit ceil 5Mbit burst 15Kb cburst 1600b
| Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| rate 0bit 0pps backlog 0b 0p requeues 0
|
+---(1:20) htb prio 0 rate 3Mbit ceil 6Mbit burst 15Kb cburst 1599b
| Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
| rate 0bit 0pps backlog 0b 0p requeues 0
|
+---(1:30) htb prio 0 rate 1Kbit ceil 6Mbit burst 15Kb cburst 1599b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
2014-12-27 10:16:51 -08:00
Stephen Hemminger
a3aa47a559
Make tc and ip batch mode consistent
...
Change the code for tc and ip so that batch mode is handled
the same.
2013-07-16 10:04:05 -07:00
Petr Jediný
10494d2724
Changing commandline help text to be more uniform...
2009-03-27 11:05:44 -07:00
Stephen Hemminger
44dcfe8201
Change formatting of u32 back to default
...
Don't break scripts that depend on previous offset/value format.
Introduce a new -pretty flag for decoding, and (*gasp*) document
the formatting arguments.
2008-05-09 15:42:34 -07:00
Stephen Hemminger
84d66882aa
minor typo fixes
...
A couple of obvious typo's.
2008-02-07 22:10:14 -08:00
Stephen Hemminger
aa27f88c84
Add TC_LIB_DIR environment variable.
...
Don't hardcode /usr/lib/tc as a path
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
2007-06-20 15:31:40 -07:00
Stephen Hemminger
ae665a522b
Remove trailing whitespace
...
Go through source files and remove all trailing whitespace
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-12-05 10:10:22 -08:00
Jamal Hadi Salim
5bec34845b
This patch adds ability to monitor tc events similar to ipmonitor.
...
User runs "tc monitor" (without quotes) and watches events of
addition, deletion and updates from qdiscs, classes, filters and
actions as they happen.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
2006-08-08 11:55:15 -07:00
shemminger
f453a0d451
Fix tc pfifo_fast with options
2005-10-07 16:33:21 +00:00
shemminger
8ed63ab1f1
Fix leaks and warnings reported by valgrind.
2005-09-21 19:33:17 +00:00
shemminger
4073448cc8
add usage for batch to tc.
2005-09-01 22:29:05 +00:00
shemminger
351efcde4e
Update header files to 2.6.14
...
Integrate support for DCCP and tcp_diag into ss
Add -batch to ip command
2005-09-01 19:21:50 +00:00
shemminger
f332d16924
Cleanup GCC4 warnings about signedness.
2005-07-05 22:37:15 +00:00
shemminger
dd3e90853d
Fix off-by-one while generating argument vector
2005-06-23 17:32:22 +00:00
osdl.net!shemminger
08856f0219
Handle batch mode better.
...
Add comments midline and -force option.
(Logical change 1.173)
2005-03-18 19:40:55 +00:00
site!shemminger
c2f3a0f94d
Fix batch mode, allow continuation, comments, etc.
...
(Logical change 1.169)
2005-03-14 22:19:16 +00:00
osdl.net!shemminger
7901660a0d
change how netlink socket is handled for batch mode.
...
(Logical change 1.166)
2005-03-14 19:34:12 +00:00
osdl.net!shemminger
044ebf35b1
Style fix.
...
2005/03/04 18:32:42-08:00 net[shemminger]!shemminger
Import patch iproute-batch.1.050209.patch
(Logical change 1.162)
2005-03-14 19:02:41 +00:00
osdl.net!shemminger
bb6a21a4fc
Fix build warnings on x86_64
...
(Logical change 1.92)
2004-10-06 23:17:10 +00:00
net[shemminger]!kaber
95812b56a5
: prevent tc crashes
...
(Logical change 1.81)
2004-09-28 18:35:49 +00:00
osdl.net!shemminger
1798c9d5a4
id can be const char
...
(Logical change 1.77)
2004-08-31 17:45:21 +00:00
osdl.net!shemminger
2373fde9b0
new stuff from jamal.
...
(Logical change 1.66)
2004-08-13 23:54:55 +00:00
osdl.net!shemminger
b7a4515085
Default lookup path for tc qdiscplines is /usr/lib/tc
...
Get rid of dead code.
Make BODY static.
(Logical change 1.47)
2004-07-02 17:47:53 +00:00
osdl.net!shemminger
3ea2bf45b0
Add -iec flag
...
(Logical change 1.40)
2004-06-28 20:42:59 +00:00
osdl.org!shemminger
4094db72b6
const char *
...
(Logical change 1.6)
2004-06-02 20:22:08 +00:00
osdl.org!shemminger
aba5acdfdb
(Logical change 1.3)
2004-04-15 20:56:59 +00:00
osdl.org!shemminger
86fdf0e47b
Initial revision
2004-04-15 20:56:59 +00:00