tags 856473 + patch
tags 868059 + patch
tags 878602 + patch
tags 879854 + patch
thanks
diff --git a/debian/changelog b/debian/changelog
index f3853334..bb0101b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+iproute2 (4.14.1-0.1) UNRELEASED; urgency=medium
+
+  * New upstream release (Closes: #856473, #868059, #878602, #879854)
+
+ -- Julian Wollrath <jwollr...@web.de>  Mon, 20 Nov 2017 10:51:35 +0100
+
 iproute2 (4.9.0-2) unstable; urgency=medium
 
   * Let uscan verify signature of upstream tarball
diff --git a/debian/compat b/debian/compat
index ec635144..f599e28b 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+10
diff --git a/debian/control b/debian/control
index b98fbe81..499e3cf5 100644
--- a/debian/control
+++ b/debian/control
@@ -5,10 +5,9 @@ Maintainer: Alexander Wirt <formo...@debian.org>
 Homepage: https://wiki.linuxfoundation.org/networking/iproute2
 Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/pkg-iproute.git
 Vcs-Git: https://anonscm.debian.org/git/collab-maint/pkg-iproute.git
-Standards-Version: 3.9.8
+Standards-Version: 4.1.1
 Build-Depends: bison,
-               cm-super-minimal,
-               debhelper (>= 9),
+               debhelper (>= 10),
                flex,
                iptables-dev,
                libatm1-dev,
@@ -17,13 +16,8 @@ Build-Depends: bison,
                libmnl-dev,
                libselinux1-dev,
                linux-libc-dev,
-               linuxdoc-tools,
-               lynx | lynx-cur,
                pkg-config,
-               texlive-fonts-recommended,
-               texlive-latex-base,
-               texlive-latex-extra,
-               texlive-latex-recommended
+               zlib1g-dev
 
 Package: iproute2
 Priority: important
@@ -54,23 +48,3 @@ Description: networking and traffic control tools - documentation
  traffic control.
  .
  This package contains the documentation for iproute.
-
-Package: iproute
-Depends: iproute2, ${misc:Depends}
-Architecture: all
-Section: oldlibs
-Priority: extra
-Description: transitional dummy package for iproute2
- This is a transitional dummy package to get upgrading systems to install
- the iproute2 package. It can safely be removed once no other package
- depends on it.
-
-Package: iproute-doc
-Depends: iproute2-doc, ${misc:Depends}
-Architecture: all
-Section: oldlibs
-Priority: extra
-Description: transitional dummy package for iproute2-doc
- This is a transitional dummy package to get upgrading systems to install
- the iproute2-doc package. It can safely be removed once no other package
- depends on it.
diff --git a/debian/doc/htb/htbfaq.htm b/debian/doc/htb/htbfaq.htm
deleted file mode 100644
index 4ab2a78b..00000000
--- a/debian/doc/htb/htbfaq.htm
+++ /dev/null
@@ -1,141 +0,0 @@
-<html><head><title>HTB FAQ</title></head>
-<body>
-<h1><center>HTB FAQ</center></h1>
-<center><address>
-Martin Devera aka devik (de...@cdi.cz)<br>
-Last updated: 7.7.2003
-</address></center>
-<br>
-<b>How to set single HTB up for more interfaces or for incoming packets</b>
-<p>
-You need IMQ for this because all qdisc can handle only outgoing
-traffic on single interface. See 
-<a href="http://www.linuximq.net/";>http://www.linuximq.net/</a>.
-<p>
-<b>When HTB is used on machine with Apache (FTP, Samba, ...) server running
-   then downloading from it can't be limited precisely</b>
-<p>
-Try to add PFIFO with limit 10 under HTB classes. When you use default
-(much larger PFIFO) or SFQ then TCP stack will back off itself as it
-see too large memory used for outgoing packets. You can also play
-with /proc/sys/net/ipv4/tcp_wmem.
-<p>
-<b>"HTB: mindelay=500, report it please !" messages in syslog</b>
-<p>
-This means that all indicated that some class should be ready
-soon but when we looked for it we haven't found one which will
-be ready in 5 seconds.
-<br>
-After this message you can see lines like
-<pre>
-kernel: htb*g j=154480191
-kernel: htb*r7 m=0
-kernel: htb*r6 m=0
-kernel: htb*r5 m=0
-kernel: htb*r4 m=0
-kernel: htb*r3 m=0
-kernel: htb*r2 m=0
-kernel: htb*r1 m=0
-kernel: htb*r0 m=0
-kernel: htb*c20110 m=2 t=636487 c=17888 pq=0 df=483328 ql=0 pa=0 f:
-kernel: htb*c20220 m=1 t=-59999999 c=42404 pq=154487461 df=450560 ql=14 pa=40 f:
-kernel: htb*c20001 m=2 t=5131 c=6439 pq=0 df=8192 ql=0 pa=0 f:
-</pre>
-If you decide to treat is as real bug then I'll need all of these. They
-are logged under kernel.debug facility so often you need to add it so
-your syslog.conf. These "htb*" are dump of internal state of all classes.
-c20110 means class 2:110. *r lines are states of row activity bitsmasks.
-*c indicates stet of all classes. You are interested in classes
-with m=1 resp. m=0. These will become ready after time -c resp. -t whatever
-is negative and smaller.
-It is 59999999 us for class 2:110 above which is 59sec. It is way too much
-and HTB will spill that error because it is &gt; 5 sec.
-<p>
-<i>So what is the problem ?</i> Probably you have too small rate or ceil
-for such class - you should use at least 4kbit for realiable operation
-of HTB - it leads to max 3sec of delay for 1500 byte packets which seems
-as reasonable value.
-<br>
-Also try <a href=v3/htb_3.7_delay_bug.patch>this</a> patch against 2.4.20.
-(works against older too with one reject). It increases timeout to
-10secs and makes errors more readable. 
-<i>I'm interested in your experiences (good or bad) with the patch !</i>
-<br>
-If you think it is not the case and you still get weird errors, contact
-me with syslog data above and output of commands
-<pre>
-tc -s -d qdisc
-tc -s -d class show dev your_htb_device1_here
-tc -s -d class show dev your_htb_device2_here
-...
-</pre>
-
-<p>
-<b>Why HTB sharing setup works with eth0 but on lo (loopback) 
-	it exhibits weird rates ?
-</b>
-<p>Try to execute 
-<pre>
-ifconfig lo mtu 1500
-</pre>
-or use parameter mtu 16400 on "tc qdisc add" line. It is because
-HTB reserves rate table for 1500 bytes long packets and loopback
-uses 16384 as default.
-<p>
-<b>What's difference between kbps and kbit ?
-</b>
-<p>
-1kbps=8kbit. Don't forget it !
-<p>
-<b>What if sum of child rates is smaller than parent rate ?
-</b>
-<p>
-It is like if you create unused child with remaining rate - the
-rate difference is divided between other children.
-<p>
-<b>What if sum of child rates is greater than parent rate ?
-</b>
-<p>
-Then interesting things can happen. Total rate delivered
-by children can be higher that parent's rate (thus its rate
-is not respected). However when sum of actual child rates are
-under parent's rate then borrowing will occur like in regular case.
-<p>
-I use setup with 4 classes, parent has rate=ceil=6kbps, child
-"mail" has rate=1kbps ceil=4kbps, "web" has rate=ceil=15kbps
-and "other" has rate=2kbps ceil=4kbps.
-HTB is attached to an PPP interface with compressed multilink pair
-of modems which can go from 6kbps to cca 16kbps (depends on compresability
-of data). When "web" traffic is present it can go as high as compression
-allows while still allowing mail 1kbps and other 2kbps.
-<br>
-When "web" traffic is smaller than 6kbps then "mail" and "other" 
-can borrow more bw up to 4k each.
-Parent's class it not set to 18k because then "mail" and "other"
-could get as much as 8k which is more that link's minimum and
-would saturate the link. Thus I set parent to 6k so that 
-"mail"+"other" are limited to 6k while "web" can go over.
-<p>
-You can do similar setup by using one more class and deeper hierarchy
-but this is just to show you the possibility.
-<p>
-<b>"RTNETLINK answers: Invalid argument" and tc parameters are correct
-</b>
-<p>
-Probably you use tc tool not suited for HTB in kernel. Reread
-main HTB page section Downloads.
-<p>
-<b>All packets are dropped when "default" is set to nonleaf
-</b>
-<p>
-Yes. Default kwyword must point to leaf or be 0 (so unclassified
-packets go thru directly). If you want to "direct" other packets
-to non-leaf do it by catch all filter with the largest "pref".
-<p>
-<b>What tool was used to create graphs in HTB manual ?
-</b>
-<p>
-It is proprietary tool called ethloop 
-(<a href=http://luxik.cdi.cz/~devik/qos/ethloop/>luxik.cdi.cz/~devik/qos/ethloop/</a>).
-
-</body></html>
diff --git a/debian/doc/htb/userg.htm b/debian/doc/htb/userg.htm
deleted file mode 100644
index 8abc7bdb..00000000
--- a/debian/doc/htb/userg.htm
+++ /dev/null
@@ -1,449 +0,0 @@
-<html><head><title>HTB manual - user guide</title></head>
-<body>
-<h1><center>HTB Linux queuing discipline manual - user guide</center></h1>
-<center><address>
-Martin Devera aka devik (de...@cdi.cz)<br>
-Manual: devik and Don Cohen<br>
-Last updated: 5.5.2002
-</address></center>
-<br>
-New text is in red color. Coloring is removed on new text
-after 3 months. Currently they depicts HTB3 changes<p>
-<p>
-<ul>
-<li><a href=#intro>1. Introduction</a>
-<li><a href=#sharing>2. Link sharing</a>
-<li><a href=#hsharing>3. Sharing hierarchy</a>
-<li><a href=#ceiling>4. Rate ceiling</a>
-<li><a href=#burst>5. Burst</a>
-<li><a href=#prio>6. Priorizing bandwidth share</a>
-<li><a href=#stats>7. Understanding statistics</a>
-<li><a href=#err>8. Making, debugging and sending error reports</a>
-</ul>
-<a name=intro><h2>1. Introduction</h2>
-
-HTB is meant as a more understandable, intuitive and faster replacement for the
-CBQ qdisc in Linux.  Both CBQ and HTB help you to control the
-use of the outbound bandwidth on a given link.  Both allow you to use
-one physical link to simulate several slower links and to send different 
-kinds of traffic on different simulated links.  In both cases, you have
-to specify how to divide the physical link into simulated links and how
-to decide which simulated link to use for a given packet to be sent.
-<p>
-This document shows you how to use HTB. 
-Most sections have examples, charts (with measured data) and
-discussion of particular problems.
-<p>
-This release of HTB should be also much more scalable. See
-comparison at HTB home page.
-<p>
-<b>Please read:</b> tc tool (not only HTB) uses shortcuts to denote units
-of rate. <b>kbps</b> means kilo<b>bytes</b> and <b>kbit</b> means 
-<b>kilobits</b> ! This is the most FAQ about tc in linux.
-<p>
-
-<a name=sharing><h2>2. Link sharing</h2>
-<img src=Ag2Leaf3flat.gif align=right>
-
-<i>Problem: We have two customers, A and B, both connected to the
-internet via eth0.  We want to allocate 60 kbps to B and 40 kbps to A.
-Next we want to subdivide A's bandwidth 30kbps for WWW and 10kbps
-for everything else.  Any unused bandwidth can be used by any class 
-which needs it (in proportion of its allocated share).</i>
-<p>
-HTB ensures that <b> the amount of service provided to each class is
-at least the minimum of the amount it requests and the amount assigned
-to it</b>.  When a class requests less than the amount assigned, the 
-remaining (excess) bandwidth is distributed to other classes which request 
-service.<p>
-Also see document about HTB internals - it
-describes goal above in greater details.
-<p>
-<i>Note: In the literature this is called "borrowing" the excess bandwidth.
-We use that term below to conform with the literature.  We mention, however,
-that this seems like a bad term since there is no obligation to repay the
-resource that was "borrowed".
-</i>
-<p>
-The different kinds of traffic above are represented by classes in
-HTB.  The simplest approach is shown in the picture at the right. 
-<br>
-Let's see what commands to use:
-<pre>
-tc qdisc add dev eth0 root handle 1: htb default 12
-</pre>
-This command attaches queue discipline HTB to eth0 and gives it the 
-"handle" <b>1:</b>.
-This is just a name or identifier with which to refer to it below. 
-The <b>default 12</b>
-means that any traffic that is not otherwise classified will be assigned 
-to class 1:12. 
-<p>
-<i>Note: 
-In general (not just for HTB but for all qdiscs and classes in tc),
-handles are written x:y where x is an integer identifying a qdisc and
-y is an integer identifying a class belonging to that qdisc.  The handle 
-for a qdisc must have zero for its y value and the handle for a class
-must have a non-zero value for its y value.  The "1:" above is treated
-as "1:0".
-</i>
-<p>
-<pre>
-tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps 
-tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30kbps ceil 100kbps
-tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps
-tc class add dev eth0 parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps
-</pre>
-<p>
-The first line creates a "root" class, 1:1 under the qdisc 1:. 
-The definition of a root class is one with the htb qdisc as its parent.
-A root class, like other classes under an htb qdisc allows its children
-to borrow from each other, but one root class cannot borrow from another.  
-We could have created the other three classes directly under the htb qdisc, 
-but then the excess bandwidth from one would not be available to the others.
-In this case we do want to allow borrowing, so we have to create an extra
-class to serve as the root and put the classes that will carry the real data
-under that.  These are defined by the next three lines.
-The <b>ceil</b> parameter is described below. 
-<p><i>Note: Sometimes people ask me why they have to repeat <b>dev eth0</b> 
-when they have already used <b>handle</b> or <b>parent</b>.  The reason 
-is that handles are local to an interface, e.g., eth0 and eth1 could each 
-have classes with handle 1:1.</i>
-<p>
-We also have to describe which packets belong in which class.
-This is really not related to the HTB qdisc.  See the tc filter
-documentation for details.  The commands will look something like this:
-<pre>
-tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
-   match ip src 1.2.3.4 match ip dport 80 0xffff flowid 1:10
-tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
-   match ip src 1.2.3.4 flowid 1:11
-</pre>
-(We identify A by its IP address which we imagine here to be 1.2.3.4.)
-<p><i>Note: The U32 classifier has an undocumented design bug which causes 
-duplicate entries to be listed by "tc filter show" when you use U32 
-classifiers with different prio values.</i>
-<img src=flatnp.gif align=right>
-<p>
-You may notice that we didn't create a filter for the 1:12 class. 
-It might be more clear to do so, but this illustrates the use of the default.
-Any packet not classified by the two rules above (any packet
-not from source address 1.2.3.4) will be put in class 1:12.
-<p>
-Now we can optionally attach queuing disciplines to the leaf classes.
-If none is specified the default is pfifo.
-<pre>
-tc qdisc add dev eth0 parent 1:10 handle 20: pfifo limit 5
-tc qdisc add dev eth0 parent 1:11 handle 30: pfifo limit 5
-tc qdisc add dev eth0 parent 1:12 handle 40: sfq perturb 10
-</pre>
-That's all the commands we need.  Let's see what happens if we send
-packets of each class at 90kbps and then stop sending packets of one
-class at a time.  Along the bottom of the graph are annotations 
-like "0:90k".  The horizontal position at the center of the label 
-(in this case near the 9, also marked with a red "1") indicates the
-time at which the rate of some traffic class changes.  
-Before the colon is an identifier for
-the class (0 for class 1:10, 1 for class 1:11, 2 for class 1:12) and
-after the colon is the new rate starting at the time where the 
-annotation appears.  For example, the rate of class 0 is changed to
-90k at time 0, 0 (= 0k) at time 3, and back to 90k at time 6.
-<p>
-Initially all classes generate 90kb.  Since this is higher than any
-of the rates specified, each class is limited to its 
-specified rate.  At time 3 when we stop sending class 0 packets, the
-rate allocated to class 0 is reallocated to the other two
-classes in proportion to their allocations, 1 part class 1 to 6 parts class 2.
-(The increase in class 1 is hard to see because it's only 4 kbps.)
-Similarly at time 9 when class 1 traffic stops its bandwidth is
-reallocated to the other two (and the increase in class 0 is similarly hard
-to see.)  At time 15 it's easier to see that the allocation to class 2 is
-divided 3 parts for class 0 to 1 part for class 1.  At time 18 both class 1 and
-class 2 stop so class 0 gets all 90 kbps it requests.
-<p>
-It might be good time to touch concept of <b>quantums</b> now. In fact when
-more classes want to borrow bandwidth they are each given some number of
-bytes before serving other competing class. This number is called quantum.
-You should see that if several classes are competing for parent's bandwidth
-then they get it in proportion of their quantums. It is important to know
-that for precise operation quantums need to be as small as possible and
-larger than MTU.
-<br>
-Normaly you don't need to specify quantums manualy as HTB chooses precomputed
-values. It computes classe's quantum (when you add or change it) as its
-rate divided by <b>r2q</b> global parameter. Its default value is 10
-and because typical MTU is 1500 the default is good for rates from
-15 kBps (120 kbit). For smaller minimal rates specify r2q 1 when
-creating qdisc - it is good from 12 kbit which should be enough. If
-you will need you can specify quantum manualy when adding or changing
-the class. You can avoid warnings in log if precomputed value would be
-bad. When you specify quantum on command line the r2q is ignored for
-that class.
-<p>
-This might seem like a good solution if A and B were not different
-customers.  However, if A is paying for 40kbps then he would probably
-prefer his unused WWW bandwidth to go to his own other service rather 
-than to B.  This requirement is represented in HTB by the class hierarchy.
-
-<img src=Ag2Leaf3hier.gif align=right>
-<a name=hsharing><h2>3. Sharing hierarchy</h2>
-The problem from the previous chapter is solved by the class hierarchy
-in this picture.  Customer A is now explicitly represented by its own
-class.  Recall from above that
-<b> the amount of service provided to each class is at least the 
-minimum of the amount it requests and the amount assigned to it</b>.  
-This applies to htb classes that are not parents of other htb classes.
-We call these leaf classes.
-For htb classes that are parents of other htb classes, which we call
-interior classes, the rule is that
-<b> the amount of service is at least the minumum of the amount assigned 
-to it and the sum of the amount requested by its children</b>.
-In this case we assign 40kbps to customer A.  That means that if A 
-requests less than the allocated rate for WWW, the excess will be used 
-for A's other traffic (if there is demand for it), at least until the sum is
-40kbps.
-<p>
-<i>Notes: Packet classification rules can assign to inner nodes too. Then
-you have to attach other filter list to inner node. Finally you should
-reach leaf or special 1:0 class. The rate supplied for a parent should be the sum
-of the rates of its children. </i>
-<p>The commands are now as follows:
-<pre>
-tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
-tc class add dev eth0 parent 1:1 classid 1:2 htb rate 40kbps ceil 100kbps
-tc class add dev eth0 parent 1:2 classid 1:10 htb rate 30kbps ceil 100kbps
-tc class add dev eth0 parent 1:2 classid 1:11 htb rate 10kbps ceil 100kbps
-tc class add dev eth0 parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps
-</pre>
-<img src=hiernp.gif align=right>
-<p>
-We now turn to the graph showing the results of the hierarchical solution.
-When A's WWW traffic stops, its assigned bandwidth is reallocated to A's 
-other traffic so that A's total bandwidth is still the assigned 40kbps.<br>
-If A were to request less than 40kbs in total then the excess would be given to B.
-
-<a name=ceiling><h2>4. Rate ceiling</h2>
-The <b>ceil</b> argument specifies the maximum bandwidth that a class
-can use.  This limits how much bandwidth that class can borrow.
-The default ceil is the same as the rate.  (That's why we had to specify 
-it in the examples above to show borrowing.)
-We now change the <b>ceil 100kbps</b> for classes 1:2 (A) and 1:11 
-(A's other) from the previous chapter to <b>ceil 60kbps</b> and 
-<b>ceil 20kbps</b>.
-<p>
-The graph at right differs from the previous one at time 3 (when WWW 
-traffic stops) because A/other is limited to 20kbps.  Therefore customer 
-A gets only 20kbps in total and the unused 20kbps is allocated to B.<br>  
-The second difference is at time 15 when B stops.  Without the ceil, 
-all of its bandwidth was given to A, but now A is only allowed to use 
-60kbps, so the remaining 40kbps goes unused.
-<img src=hiernpceil.gif align=right>
-<p>
-This feature should be useful for ISPs because they probably want to
-limit the amount of service a given customer gets even when other 
-customers are not requesting service.  (ISPs probably want customers 
-to pay more money for better service.)
-Note that root classes are not allowed to borrow, so there's really no
-point in specifying a ceil for them.
-<p>
-<i>Notes: The ceil for a class should always be at least as high as the rate. 
-Also, the ceil for a class should always be at least as high as the ceil of
-any of its children.</i>
-
-<a name=burst><h2>5. Burst</h2>
-
-Networking hardware can only send one packet at a time and only at 
-a hardware dependent rate.  Link sharing software can only use this
-ability to approximate the effects of multiple links running at 
-different (lower) speeds.  Therefore the rate and ceil are not really 
-instantaneous measures but averages over the time that it takes to send 
-many packets.  What really happens is that the traffic from one class
-is sent a few packets at a time at the maximum speed and then other
-classes are served for a while.
-
-The <b>burst</b> and <b>cburst</b> parameters control the amount of data
-that can be sent at the maximum (hardware) speed without trying to serve
-another class.
-<p>
-If <b>cburst</b> is smaller (ideally one packet size) it shapes bursts to not exceed 
-<b>ceil</b> rate in the same way as TBF's peakrate does.<p>
-When you set <b>burst</b> for parent class smaller than for some child
-then you should expect the parent class to get stuck sometimes (because
-child will drain more than parent can handle). HTB will remember these
-negative bursts up to 1 minute.
-<p>
-You can ask <b>why I want bursts</b>. Well it is cheap and simple way
-how to improve response times on congested link. For example www traffic
-is bursty. You ask for page, get it in burst and then read it. During
-that idle period burst will "charge" again. 
-<p>
-<i>Note: The burst and cburst of a class should always be at least
-as high as that of any of it children.</i>
-<p>
-<img src=hiernpburst.gif align=right>
-On graph you can see case from previous chapter where I changed burst
-for red and yellow (agency A) class to 20kb but cburst remained
-default (cca 2 kb).<br>
-Green hill is at time 13 due to burst setting on SMTP class.
-A class. It has underlimit since time 9 and accumulated 20 kb of burst.
-The hill is high up to 20 kbps (limited by ceil because it has cburst
-near packet size).<br>
-Clever reader can think why there is not red and yellow hill at time
-7. It is because yellow is already at ceil limit so it has no space
-for furtner bursts.<br>
-There is at least one unwanted artifact - magenta crater at time 4. It
-is because I intentionaly "forgot" to add burst to root link (1:1) class.
-It remembered hill from time 1 and when at time 4 blue class wanted to 
-borrow yellow's rate it denied it and compensated itself.
-<p>
-<b>Limitation:</b> when you operate with high rates on computer with low
-resolution timer you need some minimal <b>burst</b> and <b>cburst</b> to 
-be set for all classes. Timer resolution on i386 systems is 10ms and
-1ms on Alphas.
-The minimal burst can be computed as max_rate*timer_resolution. So that
-for 10Mbit on plain i386 you needs burst 12kb.<p>
-If you set too small burst you will encounter smaller rate than you set.
-Latest tc tool will compute and set the smallest possible burst when it
-is not specified.
-
-<img src=hierprio.gif align=right>
-<a name=prio><h2>6. Priorizing bandwidth share</h2>
-Priorizing traffic has two sides. First it affects how the excess bandwidth
-is distributed among siblings. Up to now we have seen that excess bandwidth
-was distibuted according to rate ratios. Now I used basic configuration from
-chapter 3 (hierarchy without ceiling and bursts) and changed priority of all
-classes to 1 except SMTP (green) which I set to 0 (higher).<br>
-From sharing view you see that the class got all the excess bandwidth. The
-rule is that <b>classes with higher priority are offered excess bandwidth
-first</b>. But rules about guaranted <b>rate</b> and <b>ceil</b> are still
-met.<p>
-There is also second face of problem. It is total delay of packet. It is relatively
-hard to measure on ethernet which is too fast (delay is so neligible). But
-there is simple help. We can add simple HTB with one class rate limiting to
-less then 100 kbps and add second HTB (the one we are measuring) as child. Then we
-can simulate slower link with larger delays.<br>
-For simplicity sake I use simple two class scenario:
-<pre>
-# qdisc for delay simulation
-tc qdisc add dev eth0 root handle 100: htb
-tc class add dev eth0 parent 100: classid 100:1 htb rate 90kbps
-
-# real measured qdisc
-tc qdisc add dev eth0 parent 100:1 handle 1: htb
-AC="tc class add dev eth0 parent"
-$AC 1: classid 1:1 htb rate 100kbps
-$AC 1:2 classid 1:10 htb rate 50kbps ceil 100kbps prio 1
-$AC 1:2 classid 1:11 htb rate 50kbps ceil 100kbps prio 1
-tc qdisc add dev eth0 parent 1:10 handle 20: pfifo limit 2
-tc qdisc add dev eth0 parent 1:11 handle 21: pfifo limit 2
-</pre>
-<img src=priotime.gif align=right>
-<i>Note: HTB as child of another HTB is NOT the same as class under
-another class within the same HTB. It is because when class in HTB can send
-it will send as soon as hardware equipment can. So that delay of underlimit
-class is limited only by equipment and not by ancestors.<br>
-In HTB under HTB case the outer HTB simulates new hardware equipment with
-all consequences (larger delay)</i>
-<p>
-Simulator is set to generate 50 kbps for both classes and at time 3s it
-executes command:
-<pre>
-tc class change dev eth0 parent 1:2 classid 1:10 htb \
- rate 50kbps ceil 100kbps burst 2k prio 0
-</pre>
-As you see the delay of WWW class dropped nearly to the zero while
-SMTP's delay increased. When you priorize to get better delay it always
-makes other class delays worse.<br>
-Later (time 7s) the simulator starts to generate WWW at 60 kbps and SMTP at 40 kbps.
-There you can observe next interesting behaviour. When class is overlimit
-(WWW) then HTB priorizes underlimit part of bandwidth first.<p>
-<b>What class should you priorize ?</b> Generaly those classes where
-you really need low delays. The example could be video or audio
-traffic (and you will really need to use correct <b>rate</b> here
-to prevent traffic to kill other ones) or interactive (telnet, SSH)
-traffic which is bursty in nature and will not negatively affect
-other flows.<br>
-Common trick is to priorize ICMP to get nice ping delays even on fully
-utilized links (but from technical point of view it is not what you want when
-measuring connectivity).
-
-<a name=stats><h2>7. Understanding statistics</h2>
-The <b>tc</b> tool allows you to gather statistics of queuing disciplines in Linux.
-Unfortunately statistic results are not explained by authors so that you often can't
-use them. Here I try to help you to understand HTB's stats.<br>
-First whole HTB stats. The snippet bellow is taken during simulation from chapter 3.
-<pre>
-# tc -s -d qdisc show dev eth0
- qdisc pfifo 22: limit 5p
- Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
-
- qdisc pfifo 21: limit 5p
- Sent 2891500 bytes 5783 pkts (dropped 820, overlimits 0) 
-
- qdisc pfifo 20: limit 5p
- Sent 1760000 bytes 3520 pkts (dropped 3320, overlimits 0) 
-
- qdisc htb 1: r2q 10 default 1 direct_packets_stat 0
- Sent 4651500 bytes 9303 pkts (dropped 4140, overlimits 34251) 
-</pre>
-First three disciplines are HTB's children. Let's ignore them as PFIFO
-stats are self explanatory.<br>
-<i>overlimits</i> tells you how many times the discipline delayed a packet.
-<i>direct_packets_stat</i> tells you how many packets was sent thru direct queue.
-Other stats are sefl explanatory. Let's look at class' stats:
-<pre>
-tc -s -d class show dev eth0
-class htb 1:1 root prio 0 rate 800Kbit ceil 800Kbit burst 2Kb/8 mpu 0b 
-    cburst 2Kb/8 mpu 0b quantum 10240 level 3 
- Sent 5914000 bytes 11828 pkts (dropped 0, overlimits 0) 
- rate 70196bps 141pps 
- lended: 6872 borrowed: 0 giants: 0
-
-class htb 1:2 parent 1:1 prio 0 rate 320Kbit ceil 4000Kbit burst 2Kb/8 mpu 0b 
-    cburst 2Kb/8 mpu 0b quantum 4096 level 2 
- Sent 5914000 bytes 11828 pkts (dropped 0, overlimits 0) 
- rate 70196bps 141pps 
- lended: 1017 borrowed: 6872 giants: 0
-
-class htb 1:10 parent 1:2 leaf 20: prio 1 rate 224Kbit ceil 800Kbit burst 2Kb/8 mpu 0b 
-    cburst 2Kb/8 mpu 0b quantum 2867 level 0 
- Sent 2269000 bytes 4538 pkts (dropped 4400, overlimits 36358) 
- rate 14635bps 29pps 
- lended: 2939 borrowed: 1599 giants: 0
-</pre>
-I deleted 1:11 and 1:12 class to make output shorter. As you see there
-are parameters we set. Also there are <i>level</i> and DRR <i>quantum</i>
-informations.<br>
-<i>overlimits</i> shows how many times class was asked to send packet
-but he can't due to rate/ceil constraints (currently counted for leaves only).<br>
-<i>rate, pps</i> tells you actual (10 sec averaged) rate going thru class. It
-is the same rate as used by gating.<br>
-<i>lended</i> is # of packets donated by this class (from its <b>rate</b>) and
-<i>borrowed</i> are packets for whose we borrowed from parent. Lends are always
-computed class-local while borrows are transitive (when 1:10 borrows from 1:2 which
-in turn borrows from 1:1 both 1:10 and 1:2 borrow counters are incremented).<br>
-<i>giants</i> is number of packets larger than mtu set in tc command. HTB will
-work with these but rates will not be accurate at all. Add mtu to your tc (defaults
-to 1600 bytes).<br>
-
-<a name=err><h2>8. Making, debugging and sending error reports</h2>
-<font color=red date=30.12.2002>
-If you have kernel 2.4.20 or newer you don't need to patch it - all
-is in vanilla tarball. The only thing you need is <b>tc</b> tool.
-Download HTB 3.6 tarball and use tc from it.
-</font><p>
-You have to patch to make it work with older kernels. Download kernel source and
-use <b>patch -p1 -i htb3_2.X.X.diff</b> to apply the patch. Then use
-<b>make menuconfig;make bzImage</b> as before. Don't forget to enable QoS and HTB.<br>
-Also you will have to use patched <b>tc</b> tool. The patch is also
-in downloads or you can download precompiled binary.<p>
-If you think that you found an error I will appreciate error report.
-For oopses I need ksymoops output. For weird qdisc behaviour add
-parameter <b>debug 3333333</b> to your <b>tc qdisc add .... htb</b>.
-It will log many megabytes to syslog facility kern level debug. You
-will probably want to add line like:<br>
-<b>kern.debug       -/var/log/debug</b><br>
-to your /etc/syslog.conf. Then bzip and send me the log via email
-(up to 10MB after bzipping) along with description of problem and
-its time.
-</body></html>
diff --git a/debian/gbp.conf b/debian/gbp.conf
deleted file mode 100644
index d7638261..00000000
--- a/debian/gbp.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-[DEFAULT]
-debian-branch = master
-upstream-branch = upstream
-pristine-tar = True
-compression = xz
-sign-tags = True
-
-[buildpackage]
-#tarball-dir = ../tarballs/
-#export-dir = ../build-area/
-
-[import-orig]
-upstream-vcs-tag = v%(version)s
diff --git a/debian/iproute2-doc.docs b/debian/iproute2-doc.docs
index a3bb3538..ab1a32b8 100644
--- a/debian/iproute2-doc.docs
+++ b/debian/iproute2-doc.docs
@@ -1,4 +1 @@
-README* doc/Plan
-debian/htb/*
-doc/*.tex doc/*.dvi doc/*.ps doc/*.sty
-doc/*.txt doc/*.html
+README*
diff --git a/debian/iproute2-doc.install b/debian/iproute2-doc.install
index 6dd90fcd..6fa78e2b 100644
--- a/debian/iproute2-doc.install
+++ b/debian/iproute2-doc.install
@@ -1,2 +1 @@
-debian/doc/htb/* /usr/share/doc/iproute2-doc/htb
 usr/share/doc/iproute2/* /usr/share/doc/iproute2-doc
diff --git a/debian/patches/0001-Add-moo-feature.patch b/debian/patches/0001-Add-moo-feature.patch
deleted file mode 100644
index 81c4f4ef..00000000
--- a/debian/patches/0001-Add-moo-feature.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Alexander Wirt <formo...@debian.org>
-Date: Mon, 10 Jun 2013 11:47:00 +0200
-Subject: Add moo feature
-
----
- ip/ip.c |   15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
---- a/ip/ip.c
-+++ b/ip/ip.c
-@@ -68,6 +68,20 @@
- 	return 0;
- }
- 
-+static int do_moo(int argc, char **argv)
-+{
-+	
-+fprintf(stderr,
-+"\n"
-+" _ __ ___   ___   ___\n"
-+"| '_ ` _ \\ / _ \\ / _ \\\n"
-+"| | | | | | (_) | (_) |\n"
-+"|_| |_| |_|\\___/ \\___/\n"
-+"\n\n"
-+"P.S. no real cows were harmed for this moo\n");
-+	exit(1);
-+}
-+                       
- static const struct cmd {
- 	const char *cmd;
- 	int (*func)(int argc, char **argv);
-@@ -98,6 +112,7 @@
- 	{ "netns",	do_netns },
- 	{ "netconf",	do_ipnetconf },
- 	{ "help",	do_help },
-+	{ "moo",	do_moo }, 
- 	{ 0 }
- };
- 
diff --git a/debian/patches/0002-txtdocs.patch b/debian/patches/0002-txtdocs.patch
deleted file mode 100644
index 590a232a..00000000
--- a/debian/patches/0002-txtdocs.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Debian iproute2 Maintainers <ah-ipro...@debian.org>
-Date: Mon, 10 Jun 2013 11:47:00 +0200
-Subject: txtdocs
-
----
- doc/Makefile |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/doc/Makefile
-+++ b/doc/Makefile
-@@ -14,6 +14,7 @@
- PAGESPERPAGE=2
- 
- HTMLFILES=$(subst .sgml,.html,$(shell echo *.sgml))
-+TXTFILES=$(subst .sgml,.txt,$(shell echo *.sgml))
- DVIFILES=$(subst .ps,.dvi,$(PSFILES))
- PDFFILES=$(subst .ps,.pdf,$(PSFILES))
- 
-@@ -28,6 +29,8 @@
- 
- pdf: $(PDFFILES)
- 
-+txt: $(TXTFILES)
-+
- print: $(PSFILES)
- 	$(LPR) $(PSFILES)
- 
-@@ -65,9 +68,13 @@
- %.html: %.sgml
- 	$(SGML2HTML) $<
- 
-+%.txt: %.html
-+	lynx -nolist -dump $< > $@
-+
-+
- install:
- 	install -m 0644 $(shell echo *.tex) $(DESTDIR)$(DOCDIR)
- 	install -m 0644 $(shell echo *.sgml) $(DESTDIR)$(DOCDIR)
- 
- clean:
--	rm -f *.aux *.log *.toc $(PSFILES) $(DVIFILES) *.html *.pdf
-+	rm -f *.aux *.log *.toc $(PSFILES) $(DVIFILES) *.html *.pdf $(TXTFILES)
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index 960fe255..00000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,2 +0,0 @@
-0001-Add-moo-feature.patch
-0002-txtdocs.patch
diff --git a/debian/rules b/debian/rules
index e5d74670..c30d7f5f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -2,8 +2,8 @@
 
 DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
 
-DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-DEB_HOST_GNU_TYPE  := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 
 ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
 	CROSS :=
@@ -17,7 +17,6 @@ endif
 override_dh_clean:
 	dh_clean
 	make distclean
-	-rm -f doc/*.txt
 
 override_dh_shlibdeps:
 	dh_shlibdeps -a -Xq_atm.so -Xm_xt.so -Xm_ipt.so
@@ -27,11 +26,4 @@ override_dh_auto_configure:
 	$(CROSS) dh_auto_configure
 
 override_dh_auto_build:
-	$(MAKE) -C doc all txt
 	$(MAKE) KERNEL_INCLUDE=./include $(CROSS)
-
-# bump version of the transitional packages...
-override_dh_gencontrol:
-	dh_gencontrol -piproute -- -v1:$(DEB_VERSION)
-	dh_gencontrol -piproute-doc -- -v1:$(DEB_VERSION)
-	dh_gencontrol --remaining-packages

Attachment: pgp6TPFqV2Oc8.pgp
Description: Digitale Signatur von OpenPGP



Reply via email to