lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 3 Jan 2017 09:39:54 +0100
From:   Sedat Dilek <sedat.dilek@...il.com>
To:     Neal Cardwell <ncardwell@...gle.com>
Cc:     Netdev <netdev@...r.kernel.org>
Subject: Re: tcp_bbr: Forcing set of BBR congestion control as default

On Tue, Jan 3, 2017 at 12:16 AM, Neal Cardwell <ncardwell@...gle.com> wrote:
> On Mon, Jan 2, 2017 at 2:30 PM, Sedat Dilek <sedat.dilek@...il.com> wrote:
>> OK, this looks now good.
>
> Great. Glad to hear it!
>
>> Does BBR only work with fq-qdisc best?
>
> Yes. BBR is designed to work with pacing. And so far the "fq" qdisc is
> the only qdisc that offers pacing. So BBR currently needs the "fq"
> qdisc. In the future, other qdiscs (or even other layers of the stack)
> may offer pacing, in which case BBR could use those as well.
>
>> What about fq_codel?
>
> The "fq_codel" qdisc does not implement pacing, so it would not be sufficient.
>

Thanks, you helped a lot!

More experimenting and investigating.

[ LINUX-CONFIG ]

I looked at config.gce [1] and set all relevant =y settings in my
linux-config (XXX = most important).

CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_BBR=y <--- XXX
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_BBR is not set
CONFIG_DEFAULT_TCP_CONG="cubic"

CONFIG_NET_SCH_HTB=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_SCH_DSMARK=y
CONFIG_NET_SCH_CODEL=y
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_FQ=y <--- XXX
CONFIG_NET_SCH_FIFO=y

[ SYSCTL KUNGFU NOT ENOUGH ]

Just got more curious...

Setting TCP_BBR and FQ_QDISC via sysctl seems not to be enough?

# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

# sysctl net.core.default_qdisc
net.core.default_qdisc = fq

I use WLAN on my notebook for my Internet connection (my "router" is
an AndroidAP sing HSPA mobile broadband)...

# LC_ALL=C ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 88:53:2e:ac:c3:12
          inet addr:192.168.43.103  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::8a53:2eff:feac:c312/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:73 errors:0 dropped:0 overruns:0 frame:0
          TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:24210 (24.2 KB)  TX bytes:20783 (20.7 KB)

...and tc shows pfifo_fast set...

# tc qdisc show dev wlan0
qdisc mq 0: dev wlan0 root
qdisc pfifo_fast 0: dev wlan0 parent :4 bands 3 priomap  1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 parent :3 bands 3 priomap  1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 parent :2 bands 3 priomap  1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 parent :1 bands 3 priomap  1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1

It looks like I have to replace my $iface with FQ_QDISC explicitly?

# tc qdisc replace dev wlan0 root fq

# tc qdisc show dev wlan0
qdisc fq 8001: root refcnt 5 [Unknown qdisc, optlen=80]

What means "Unknown qdisc"?

[ TCP_BBR KCONFIG ]

I looked at TCP_CONG_BBR Kconfig help text and it says...

"It requires the fq ("Fair Queue") pacing packet scheduler."

Again, please add a "select NET_SCH_FQ" line - this is very user-friendly.
A reference to [2], also.

[ DOCS ]

I haven't seen "official" docs in Documentation directory
(Linux-kernel sources).
Do you plan an update :-)?

[ Building as a module ]

When CONFIG_TCP_CONG_BBR=m and running a 'modprobe -v tcp_bbr' I do
not see a string with /path/to/tcp_bbr.ko loaded.

Hope this feedback helps.

- Sedat -

[1] https://raw.githubusercontent.com/google/bbr/master/Documentation/config.gce
[2] https://github.com/google/bbr/blob/master/Documentation/bbr-quick-start.md

Download attachment "config-4.9.0-5-iniza-amd64" of type "application/octet-stream" (138377 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ