<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/net/sched/sch_pie.c, branch linux-5.3.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-5.3.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-5.3.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2019-06-19T15:09:07+00:00</updated>
<entry>
<title>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235</title>
<updated>2019-06-19T15:09:07+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2019-06-03T05:44:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2504ba9f5970299a33ca7802c60359f849146d78'/>
<id>urn:sha1:2504ba9f5970299a33ca7802c60359f849146d78</id>
<content type='text'>
Based on 1 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license as published by
  the free software foundation either version 2 of the license this
  program is distributed in the hope that it will be useful but
  without any warranty without even the implied warranty of
  merchantability or fitness for a particular purpose see the gnu
  general public license for more details

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-only

has been chosen to replace the boilerplate/reference in 53 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Reviewed-by: Alexios Zavras &lt;alexios.zavras@intel.com&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190602204653.904365654@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>netlink: make validation more configurable for future strictness</title>
<updated>2019-04-27T21:07:21+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2019-04-26T12:07:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8cb081746c031fb164089322e2336a0bf5b3070c'/>
<id>urn:sha1:8cb081746c031fb164089322e2336a0bf5b3070c</id>
<content type='text'>
We currently have two levels of strict validation:

 1) liberal (default)
     - undefined (type &gt;= max) &amp; NLA_UNSPEC attributes accepted
     - attribute length &gt;= expected accepted
     - garbage at end of message accepted
 2) strict (opt-in)
     - NLA_UNSPEC attributes accepted
     - attribute length &gt;= expected accepted

Split out parsing strictness into four different options:
 * TRAILING     - check that there's no trailing data after parsing
                  attributes (in message or nested)
 * MAXTYPE      - reject attrs &gt; max known type
 * UNSPEC       - reject attributes with NLA_UNSPEC policy entries
 * STRICT_ATTRS - strictly validate attribute size

The default for future things should be *everything*.
The current *_strict() is a combination of TRAILING and MAXTYPE,
and is renamed to _deprecated_strict().
The current regular parsing has none of this, and is renamed to
*_parse_deprecated().

Additionally it allows us to selectively set one of the new flags
even on old policies. Notably, the UNSPEC flag could be useful in
this case, since it can be arranged (by filling in the policy) to
not be an incompatible userspace ABI change, but would then going
forward prevent forgetting attribute entries. Similar can apply
to the POLICY flag.

We end up with the following renames:
 * nla_parse           -&gt; nla_parse_deprecated
 * nla_parse_strict    -&gt; nla_parse_deprecated_strict
 * nlmsg_parse         -&gt; nlmsg_parse_deprecated
 * nlmsg_parse_strict  -&gt; nlmsg_parse_deprecated_strict
 * nla_parse_nested    -&gt; nla_parse_nested_deprecated
 * nla_validate_nested -&gt; nla_validate_nested_deprecated

Using spatch, of course:
    @@
    expression TB, MAX, HEAD, LEN, POL, EXT;
    @@
    -nla_parse(TB, MAX, HEAD, LEN, POL, EXT)
    +nla_parse_deprecated(TB, MAX, HEAD, LEN, POL, EXT)

    @@
    expression NLH, HDRLEN, TB, MAX, POL, EXT;
    @@
    -nlmsg_parse(NLH, HDRLEN, TB, MAX, POL, EXT)
    +nlmsg_parse_deprecated(NLH, HDRLEN, TB, MAX, POL, EXT)

    @@
    expression NLH, HDRLEN, TB, MAX, POL, EXT;
    @@
    -nlmsg_parse_strict(NLH, HDRLEN, TB, MAX, POL, EXT)
    +nlmsg_parse_deprecated_strict(NLH, HDRLEN, TB, MAX, POL, EXT)

    @@
    expression TB, MAX, NLA, POL, EXT;
    @@
    -nla_parse_nested(TB, MAX, NLA, POL, EXT)
    +nla_parse_nested_deprecated(TB, MAX, NLA, POL, EXT)

    @@
    expression START, MAX, POL, EXT;
    @@
    -nla_validate_nested(START, MAX, POL, EXT)
    +nla_validate_nested_deprecated(START, MAX, POL, EXT)

    @@
    expression NLH, HDRLEN, MAX, POL, EXT;
    @@
    -nlmsg_validate(NLH, HDRLEN, MAX, POL, EXT)
    +nlmsg_validate_deprecated(NLH, HDRLEN, MAX, POL, EXT)

For this patch, don't actually add the strict, non-renamed versions
yet so that it breaks compile if I get it wrong.

Also, while at it, make nla_validate and nla_parse go down to a
common __nla_validate_parse() function to avoid code duplication.

Ultimately, this allows us to have very strict validation for every
new caller of nla_parse()/nlmsg_parse() etc as re-introduced in the
next patch, while existing things will continue to work as is.

In effect then, this adds fully strict validation for any new command.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>netlink: make nla_nest_start() add NLA_F_NESTED flag</title>
<updated>2019-04-27T21:03:44+00:00</updated>
<author>
<name>Michal Kubecek</name>
<email>mkubecek@suse.cz</email>
</author>
<published>2019-04-26T09:13:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ae0be8de9a53cda3505865c11826d8ff0640237c'/>
<id>urn:sha1:ae0be8de9a53cda3505865c11826d8ff0640237c</id>
<content type='text'>
Even if the NLA_F_NESTED flag was introduced more than 11 years ago, most
netlink based interfaces (including recently added ones) are still not
setting it in kernel generated messages. Without the flag, message parsers
not aware of attribute semantics (e.g. wireshark dissector or libmnl's
mnl_nlmsg_fprintf()) cannot recognize nested attributes and won't display
the structure of their contents.

Unfortunately we cannot just add the flag everywhere as there may be
userspace applications which check nlattr::nla_type directly rather than
through a helper masking out the flags. Therefore the patch renames
nla_nest_start() to nla_nest_start_noflag() and introduces nla_nest_start()
as a wrapper adding NLA_F_NESTED. The calls which add NLA_F_NESTED manually
are rewritten to use nla_nest_start().

Except for changes in include/net/netlink.h, the patch was generated using
this semantic patch:

@@ expression E1, E2; @@
-nla_nest_start(E1, E2)
+nla_nest_start_noflag(E1, E2)

@@ expression E1, E2; @@
-nla_nest_start_noflag(E1, E2 | NLA_F_NESTED)
+nla_nest_start(E1, E2)

Signed-off-by: Michal Kubecek &lt;mkubecek@suse.cz&gt;
Acked-by: Jiri Pirko &lt;jiri@mellanox.com&gt;
Acked-by: David Ahern &lt;dsahern@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: avoid slow division in drop probability decay</title>
<updated>2019-02-28T18:35:41+00:00</updated>
<author>
<name>Leslie Monis</name>
<email>lesliemonis@gmail.com</email>
</author>
<published>2019-02-28T12:36:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6c97da141528097eb8e1d532dc0dbe3501f4c8ff'/>
<id>urn:sha1:6c97da141528097eb8e1d532dc0dbe3501f4c8ff</id>
<content type='text'>
As per RFC 8033, it is sufficient for the drop probability
decay factor to have a value of (1 - 1/64) instead of 98%.
This avoids the need to do slow division.

Suggested-by: David Laight &lt;David.Laight@aculab.com&gt;
Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: fix 64-bit division</title>
<updated>2019-02-27T02:55:38+00:00</updated>
<author>
<name>Leslie Monis</name>
<email>lesliemonis@gmail.com</email>
</author>
<published>2019-02-27T01:00:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ff8285f81822dc8f528b36b6c5c8ab132367e92d'/>
<id>urn:sha1:ff8285f81822dc8f528b36b6c5c8ab132367e92d</id>
<content type='text'>
Use div_u64() to resolve build failures on 32-bit platforms.

Fixes: 3f7ae5f3dc52 ("net: sched: pie: add more cases to auto-tune alpha and beta")
Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Reported-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Tested-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: fix mistake in reference link</title>
<updated>2019-02-26T17:11:33+00:00</updated>
<author>
<name>Leslie Monis</name>
<email>lesliemonis@gmail.com</email>
</author>
<published>2019-02-26T10:23:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=24ed49002c368bd4652485eb6a0865e7d35e3a27'/>
<id>urn:sha1:24ed49002c368bd4652485eb6a0865e7d35e3a27</id>
<content type='text'>
Fix the incorrect reference link to RFC 8033

Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: update references</title>
<updated>2019-02-25T22:21:03+00:00</updated>
<author>
<name>Mohit P. Tahiliani</name>
<email>tahiliani@nitk.edu.in</email>
</author>
<published>2019-02-25T19:10:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c9d2ac5e6b2acfc6945718888a5bec357378733e'/>
<id>urn:sha1:c9d2ac5e6b2acfc6945718888a5bec357378733e</id>
<content type='text'>
RFC 8033 replaces the IETF draft for PIE

Signed-off-by: Mohit P. Tahiliani &lt;tahiliani@nitk.edu.in&gt;
Signed-off-by: Dhaval Khandla &lt;dhavaljkhandla26@gmail.com&gt;
Signed-off-by: Hrishikesh Hiraskar &lt;hrishihiraskar@gmail.com&gt;
Signed-off-by: Manish Kumar B &lt;bmanish15597@gmail.com&gt;
Signed-off-by: Sachin D. Patil &lt;sdp.sachin@gmail.com&gt;
Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Acked-by: Dave Taht &lt;dave.taht@gmail.com&gt;
Acked-by: Jamal Hadi Salim &lt;jhs@mojatatu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: add derandomization mechanism</title>
<updated>2019-02-25T22:21:03+00:00</updated>
<author>
<name>Mohit P. Tahiliani</name>
<email>tahiliani@nitk.edu.in</email>
</author>
<published>2019-02-25T19:10:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=95400b975dd32d2398ecff4dcc6f7bf0ffbd725f'/>
<id>urn:sha1:95400b975dd32d2398ecff4dcc6f7bf0ffbd725f</id>
<content type='text'>
Random dropping of packets to achieve latency control may
introduce outlier situations where packets are dropped too
close to each other or too far from each other. This can
cause the real drop percentage to temporarily deviate from
the intended drop probability. In certain scenarios, such
as a small number of simultaneous TCP flows, these
deviations can cause significant deviations in link
utilization and queuing latency.

RFC 8033 suggests using a derandomization mechanism to avoid
these deviations.

Signed-off-by: Mohit P. Tahiliani &lt;tahiliani@nitk.edu.in&gt;
Signed-off-by: Dhaval Khandla &lt;dhavaljkhandla26@gmail.com&gt;
Signed-off-by: Hrishikesh Hiraskar &lt;hrishihiraskar@gmail.com&gt;
Signed-off-by: Manish Kumar B &lt;bmanish15597@gmail.com&gt;
Signed-off-by: Sachin D. Patil &lt;sdp.sachin@gmail.com&gt;
Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Acked-by: Dave Taht &lt;dave.taht@gmail.com&gt;
Acked-by: Jamal Hadi Salim &lt;jhs@mojatatu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: add more cases to auto-tune alpha and beta</title>
<updated>2019-02-25T22:21:03+00:00</updated>
<author>
<name>Mohit P. Tahiliani</name>
<email>tahiliani@nitk.edu.in</email>
</author>
<published>2019-02-25T19:09:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3f7ae5f3dc5295ac17d6521130ed8a8f8a723fbf'/>
<id>urn:sha1:3f7ae5f3dc5295ac17d6521130ed8a8f8a723fbf</id>
<content type='text'>
The current implementation scales the local alpha and beta
variables in the calculate_probability function by the same
amount for all values of drop probability below 1%.

RFC 8033 suggests using additional cases for auto-tuning
alpha and beta when the drop probability is less than 1%.

In order to add more auto-tuning cases, MAX_PROB must be
scaled by u64 instead of u32 to prevent underflow when
scaling the local alpha and beta variables in the
calculate_probability function.

Signed-off-by: Mohit P. Tahiliani &lt;tahiliani@nitk.edu.in&gt;
Signed-off-by: Dhaval Khandla &lt;dhavaljkhandla26@gmail.com&gt;
Signed-off-by: Hrishikesh Hiraskar &lt;hrishihiraskar@gmail.com&gt;
Signed-off-by: Manish Kumar B &lt;bmanish15597@gmail.com&gt;
Signed-off-by: Sachin D. Patil &lt;sdp.sachin@gmail.com&gt;
Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Acked-by: Dave Taht &lt;dave.taht@gmail.com&gt;
Acked-by: Jamal Hadi Salim &lt;jhs@mojatatu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sched: pie: change initial value of pie_vars-&gt;burst_time</title>
<updated>2019-02-25T22:21:03+00:00</updated>
<author>
<name>Mohit P. Tahiliani</name>
<email>tahiliani@nitk.edu.in</email>
</author>
<published>2019-02-25T19:09:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=30a92ad703b93a96588e05b5bcd7247d7350c673'/>
<id>urn:sha1:30a92ad703b93a96588e05b5bcd7247d7350c673</id>
<content type='text'>
RFC 8033 suggests an initial value of 150 milliseconds for
the maximum time allowed for a burst of packets.

Signed-off-by: Mohit P. Tahiliani &lt;tahiliani@nitk.edu.in&gt;
Signed-off-by: Dhaval Khandla &lt;dhavaljkhandla26@gmail.com&gt;
Signed-off-by: Hrishikesh Hiraskar &lt;hrishihiraskar@gmail.com&gt;
Signed-off-by: Manish Kumar B &lt;bmanish15597@gmail.com&gt;
Signed-off-by: Sachin D. Patil &lt;sdp.sachin@gmail.com&gt;
Signed-off-by: Leslie Monis &lt;lesliemonis@gmail.com&gt;
Acked-by: Dave Taht &lt;dave.taht@gmail.com&gt;
Acked-by: Jamal Hadi Salim &lt;jhs@mojatatu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
