Commit Graph

1308 Commits

Author SHA1 Message Date
Pavel Emelyanov dfbaa90dec iproute: Dump unix sockets via netlink
Get the same info as from /proc file plus the peer inode.

Applies on top of new sock diag patch and udp diag patch.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2012-01-20 12:43:21 -08:00
nick black db4a7f198b Update ip manpage
Fix synopsis and other references to match current code.
2012-01-20 12:32:44 -08:00
Vijay Subramanian 14a1c164d1 netem: Fail cleanly if user input is wrong
(Resending patch since it looks like my earlier mail did not make it to
netdev).

netem reordering requires that the delay parameter be given. Currently, if no
delay is given, tc prints the error message but still installs the qdisc. Fix
this by printing the usage and failing cleanly.

Signed-off-by: Vijay Subramanian <subramanian.vijay@gmail.com>
2012-01-20 11:21:58 -08:00
Stephen Hemminger fdeae171e5 Merge branch 'master' of nehalam:src/iproute2 2012-01-20 08:17:59 -08:00
Stephen Hemminger 5aa08f6bf4 ip: make 'ip l' be 'ip link'
Restore compatiablity for those lazy typists.
2012-01-20 08:16:02 -08:00
Eric Dumazet 1b6f0bb5be gred: support TCA_GRED_MAX_P attribute
TCA_GRED_MAX_P permits to express high resolution probabilities.

New output (on 3.3+ kernel) :

disc gred 9442: root refcnt 17
 DP:0 (prio 1) Average Queue 0b Measured Queue 0b
	 Packet drops: 0 (forced 0 early 0)
	 Packet totals: 20 (bytes 2584)
 limit 31460b min 3000b max 9000b ewma 5 probability 0.05 Scell_log 15

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2012-01-20 08:12:24 -08:00
Eric Dumazet 650252d8c3 choke: support TCA_CHOKE_MAX_P
TCA_CHOKE_MAX_P permits to express high resolution RED probability.

tc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 8sec choke \
	limit 90 ecn min 10 max 30 probability 0.05 bandwidth 10Mbit

Before patch :

tc -s -d qdisc show dev eth3
qdisc ... limit 90p min 10p max 30p ecn ewma 3 Plog 19 Scell_log 13

After :

qdisc ... limit 90p min 10p max 30p ecn ewma 3 probability 0.05
Scell_log 13

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2012-01-20 08:12:23 -08:00
Eric Dumazet 6987ecf083 sfq: add optional RED on top of SFQ
Adds an optional Random Early Detection on each SFQ flow queue.

Traditional SFQ limits count of packets, while RED permits to also
control number of bytes per flow, and adds ECN capability as well.

1) We dont handle the idle time management in this RED implementation,
since each 'new flow' begins with a null qavg. We really want to address
backlogged flows.

2) if headdrop is selected, we try to ecn mark first packet instead of
currently enqueued packet. This gives faster feedback for tcp flows
compared to traditional RED [ marking the last packet in queue ]

Example of use :

tc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 4sec sfq \
	limit 3000 headdrop flows 512 divisor 16384 \
	redflowlimit 100000 min 8000 max 60000 probability 0.20 ecn

qdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop
flows 512/16384 divisor 16384
 ewma 6 min 8000b max 60000b probability 0.2 ecn
 prob_mark 0 prob_mark_head 4876 prob_drop 6131
 forced_mark 0 forced_mark_head 0 forced_drop 0
 Sent 1175211782 bytes 777537 pkt (dropped 6131, overlimits 11007
requeues 0)
 rate 99483Kbit 8219pps backlog 689392b 456p requeues 0

In this test, with 64 netperf TCP_STREAM sessions, 50% using ECN enabled
flows, we can see number of packets CE marked is smaller than number of
drops (for non ECN flows)

If same test is run, without RED, we can check backlog is much bigger.

qdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop
flows 512/16384 divisor 16384
 Sent 1148683617 bytes 795006 pkt (dropped 0, overlimits 0 requeues 0)
 rate 98429Kbit 8521pps backlog 1221290b 841p requeues 0

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2012-01-20 08:12:22 -08:00
Eric Dumazet 54a2fce832 red: fix adaptive spelling
Reported-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2012-01-20 08:12:21 -08:00
Eric Dumazet e7e4abea3e red: Add adaptative algo Logged in as shemminger
Enable Adaptative RED algo, using :

tc qdisc  ... red limit BYTES ... adaptative ...

Support of high precision probability/max_p setting and reporting, with
support of old kernels.

With a new kernel, "Plog ..." is replaced in tc output by "probability
value" :

qdisc red 10: dev eth3 parent 1:1 limit 360Kb min 30Kb max 90Kb ecn ewma
5 probability 0.09 Scell_log 15
2012-01-19 14:45:20 -08:00
Stephen Hemminger 59858866e3 netem: add rate extension to man page
Fixed up version of patch from Hagen Paul Pfeifer <hagen@jauu.net>
Also run spell check.
2012-01-19 14:38:36 -08:00
Hagen Paul Pfeifer 6b8dc4deea tc: netem rate shaping and cell extension
This patch add rate shaping as well as cell support. The link-rate can be
specified via rate options. Three optional arguments control the cell
knobs: packet-overhead, cell-size, cell-overhead. To ratelimit eth0 root
queue to 5kbit/s, with a 20 byte packet overhead, 100 byte cell size and
a 5 byte per cell overhead:

	tc qdisc add dev eth0 root netem rate 5kbit 20 100 5

Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
2012-01-19 14:28:27 -08:00
Hagen Paul Pfeifer 30d10db566 utils: add s32 parser
Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
2012-01-19 14:24:52 -08:00
Masatake YAMATO aa38c3eefa using NLM_F_DUMP flag constant in libnetlink.c
This is trivial patch for libnetlink.c in iproute2.

In iproute2/include/linux/netlink.h NLM_F_DUMP is defines as:

   #define NLM_F_DUMP	(NLM_F_ROOT|NLM_F_MATCH)

It is not used in libnetlink.c. If used, the code becomes a bit easier
to read.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2012-01-19 14:16:12 -08:00
Vijay Subramanian 1c4cbdbc6a netem: Add missing '}' in man page
Signed-off-by: Vijay Subramanian <subramanian.vijay@gmail.com>
2012-01-19 14:11:07 -08:00
Stephen Hemminger 7878c0ba40 Update to 3.3 headers (with inet_diag fix)
Incorporate change to fix inet_diag build failure.
2012-01-19 14:09:42 -08:00
Stephen Hemminger a08d2590a0 Update to kernel v3.3 headers
Initial merge window version of headers
2012-01-10 10:50:02 -08:00
Stephen Hemminger aab2702d33 Fix man page whatis entry errors
lintian says:
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man7/tc-hfsc.7.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-address.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-addrlabel.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-link.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-maddress.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-monitor.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-mroute.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-neighbour.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-netns.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-ntable.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-route.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-rule.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-tunnel.8.gz
W: iproute: manpage-has-bad-whatis-entry usr/share/man/man8/ip-xfrm.8.gz
2012-01-10 10:47:28 -08:00
Stephen Hemminger 13603f6a9e iplt2p: remove unused libnl headers
Leftover from change to original code.
2012-01-10 08:50:49 -08:00
Stephen Hemminger 447c118f13 v3.2.0 2012-01-05 08:34:31 -08:00
Jan Engelhardt 8e91a80d97 iproute2: fix calling up the xt action
Upsteam: has not been sent yet

Requesting the xt action never succeeded because it registered
using the wrong name.
2012-01-03 15:07:38 -08:00
Jan Engelhardt d7aa57d450 iproute2: proper detection of libxtables position and flags
Upstream: not sent yet

Any tests involving iptables _MUST_ utilize pkg-config to find the
proper locations of the installation.
2012-01-03 15:05:25 -08:00
Stephen Hemminger 6c513a0061 README cleanup's
Spell check the README files and remove out of date release notes.
2012-01-03 15:04:55 -08:00
Stephen Hemminger 155ad8023b ematch: fix warning about unused input()
Use existing compile flag to indicate that input() is not used
by tc ematch, fixes compiler warning.
2012-01-03 13:55:59 -08:00
Stephen Hemminger 5761f04fb8 ematch: fix warning about yyerror and const
yyerror() should take const char * on current bison.
2012-01-03 13:55:00 -08:00
Jan Engelhardt f5b830dc5d iproute2: avoid use of implicit declarations
gcc -DLIBDIR=\"/usr/lib64\" -D_GNU_SOURCE -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wstrict-prototypes -fPIC -DXT_LIB_DIR=\"/usr/lib64/xtables\" -I../include -DRESOLVE_HOSTNAMES -DLIBDIR=\"/usr/lib64\" -fPIC   -c -o ipx_pton.o ipx_pton.c
In file included from ../include/utils.h:8:0,
                 from ipx_ntop.c:5:
../include/libnetlink.h: In function 'rta_getattr_u64':
../include/libnetlink.h:84:2: warning: implicit declaration of function 'memcpy'
../include/libnetlink.h:84:2: warning: incompatible implicit declaration of built-in function 'memcpy'
2012-01-03 13:48:04 -08:00
Stephen Hemminger 38cd311ade l2tp: Add l2tp support
Based on earlier implementation by James Chapman. But instead of
dragging in all of libnl, use existing libnetlink infrastructure.
2011-12-29 09:35:37 -08:00
Stephen Hemminger 46c5d64d69 libnetlink: add attribute access inline functions
Based on idea in libmnl, add attribute access functions instead
of explicitly exposing casts. Also handle possible alignment issues
of u64.
2011-12-29 09:29:33 -08:00
Stephen Hemminger cd70f3f522 libnetlink: remove unused junk callback
Both rtnl_talk and rtnl_dump had a callback for handling portions
of netlink message that do not match the correct pid or seq.
But this callback was never used by any part of iproute2 so remove
it.
2011-12-28 10:37:12 -08:00
Eric Dumazet d060de7f8d netem: fix a typo in explain()
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2011-12-24 11:21:33 -08:00
Stephen Hemminger 2aa3dd29a7 libnetlink: add more attribute functions
New functions to handle u8, u16, u32, u64 and string attribute types.
Use common code for all attribute wrappers.
2011-12-23 10:43:54 -08:00
Stephen Hemminger 6cf8398f5f libnetlink: change rtnl_send() to take void *
Avoid having to cast buffer being sent.
2011-12-23 10:41:50 -08:00
Stephen Hemminger 3c7950af59 netem: add support for 4 state and GE loss model
Incorporate support for new loss models.
2011-12-22 17:08:11 -08:00
Stephen Hemminger fd6fac34e9 netem: fix man page
Format man page with conventional style (BNF and italics) to make
it match other pages.

Fix loss model options to match what will implemented!
2011-12-22 16:50:54 -08:00
Stephen Hemminger 1b1177ed5f Update to latest 3.2 kernel headers
Keep in sync
2011-12-22 10:40:39 -08:00
Stephen Hemminger 2a9721f1c4 Split up ip man page
The man page for ip command had grown too large to be readable.
Break it up into separate pages.
2011-12-22 10:34:03 -08:00
Florian Westphal 2587c01a0e tc: man: add man page for stochastic fair blue
With help from Eric Dumazet.
Man page is derived in parts from README file contained in
Juliusz Chroboczeks original sfb kernel patch.
2011-12-22 08:54:26 -08:00
Eric Dumazet 841fc7bc98 red: harddrop support and cleanups
Add harddrop support (kernel support added a long time ago), and various
cleanups.

min BYTES, max BYTES are now optional and follow Sally Floyd's
recommendations.

By the way, our default 2% probability is a bit low, Sally recommends 10%.
Not a big deal if upcoming adaptative algo is deployed.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2011-12-08 16:43:18 -08:00
Hagen Paul Pfeifer cd72dcf13c netem: add man-page
Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
2011-12-01 09:26:35 -08:00
Eric Dumazet ab15aeacf5 red: make burst optional
Documentation advises to set burst to (min+min+max)/(3*avpkt)

Let tc do this automatically if user doesnt provide burst himself.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2011-12-01 09:23:49 -08:00
Eric Dumazet 0cf67ead7b red: give a hint about burst value
Check for burst values that are too small.

Reported-by: Dave Taht <dave.taht@gmail.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2011-12-01 09:23:43 -08:00
Greg Rose 7b8179c780 iproute2: Add new command to ip link to enable/disable VF spoof check
Add ip link command parsing for VF spoof checking enable/disable

V2 - Fixed problem with parsing of dump info on kernels that don't
     support the spoof checking option and also wrapped the ifla_vf_info
     structure in #ifdef __KERNEL__ to prevent user space from directly
     accessing the structure
V3 - Improved parsing of vfinfo
V4 - Put Makefile back to proper list of subdirs
V5 - Remove struct ifla_vf_info, it is only used by the kernel
V6 - Make sure spoof check is reported by the driver - rtnl will set
     it to -1 to indicate driver didn't report a value.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2011-11-23 14:53:12 -08:00
Eric Dumazet 719b958bbd ss: report ecnseen
Support ECNSEEN reporting in ss command.

ESTAB      0      0           10.170.73.123:4900
10.170.73.125:51001    uid:501 ino:385994 sk:f31e5f00
         mem:(r0,w0,f0,t0) ts sack ecn ecnseen bic wscale:8,8 rto:210
rtt:18.75/15 ato:40 cwnd:10 send 69.9Mbps rcv_space:32768

"ecn" means TCP session negociated ECN capability (TCP layer) at setup
time

"ecnseen" at least one frame with ECT(0) or ECT(1) or ECN (IP layer) was
received from peer.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
2011-11-23 14:51:54 -08:00
Thomas Jarosch fcbd0165fc tc: Use correct variable type for get_distribution() result
get_distribution() returns an int.

cppcheck reported:
[tc/q_netem.c:243]: (style) Checking if unsigned variable 'dist_size' is less than zero.

The mismatch actually rendered the error checking
after get_distribution() ineffective.

Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
2011-11-23 14:46:24 -08:00
Thomas Jarosch a3da01c519 tc: Remove unused variable 'res'.
Detected by cppcheck.

Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
2011-11-23 14:46:21 -08:00
Stephen Hemminger 9044a4547d Update to 3.2.0-rc2 headers 2011-11-23 14:34:49 -08:00
Stephen Hemminger 9cbe6bc337 v3.1.0 2011-11-17 16:53:50 -08:00
Petr Šabata 16963ce6f0 Display closed UDP sockets on 'ss -ul'
This patch emulates 'netstat -ul' behavior, showing 'closed'
(state 07) UDP sockets when ss is called with '-ul' options.
Although dirty, this seems like the least invasive way to fix
it and shouldn't really break anything.

Signed-off-by: Petr Šabata <contyk@redhat.com>
2011-11-16 09:32:20 -08:00
Stephen Hemminger 93ba481acb cleanup ematch yacc files
make clean needs to remove all the yacc output files for ematch.
2011-11-02 16:39:36 -07:00
Michal Soltys 9bac173fa6 HFS manpage changes
Few minor changes and small additions.
2011-11-02 16:35:32 -07:00