New: tc filter show from iproute2 does not work correctly on 32bit x86
Subsystems (2)
[ Cc'ing Yang ]
-------- Original Message --------
Subject: [Bug 84661] New: tc filter show from iproute2 does not work correctly on 32bit x86
Date: Tue, 16 Sep 2014 11:47:20 +0000
From: [email protected]
To: [email protected]
https://bugzilla.kernel.org/show_bug.cgi?id=84661
Bug ID: 84661
Summary: tc filter show from iproute2 does not work correctly
on 32bit x86
Product: Networking
Version: 2.5
Kernel Version: 3.14.17 and 3.16.1
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Other
Assignee: [email protected]
Reporter: [email protected]
Regression: Noi tested this issue with kernels 3.14.x and 3.16.x. and iproute2-3.16.0
This commit:
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=6a031f67c83aa175aedd10d4ae64750415ab57b0
breaking output tc filter show on 32bit systems.
This simple script shows the difference in the work on i586 and x86_64:
-------------------------
#!/bin/sh
dev=$1
tc qdisc add dev $dev root handle 1: htb default fffe
tc filter add dev $dev parent 1:0 protocol ip pref 10 u32
tc filter add dev $dev parent 1:0 protocol ip pref 10 handle 100: u32 divisor 8 tc filter add dev $dev parent 1:0 protocol ip pref 10 u32 ht 800:: match ip dst 10.21.10.0/21 hashkey mask 0x00000700 at 16 link 100:
tc filter show dev $dev
tc filter del dev $dev parent 1:0 protocol ip pref 10 u32 ht 800:: match ip dst 10.21.10.0/21 hashkey mask 0x00000700 at 16 link 100:
tc qdisc del dev $dev root handle 1: htb default fffe
---------------------------
output on i586:
#./script enp0s25
filter parent 1: protocol ip pref 10 u32
filter parent 1: protocol ip pref 10 u32 fh 100: ht divisor 8 filter parent 1: protocol ip pref 10 u32 fh 800: ht divisor 1
output on x86_64:
# ./script eth0
filter parent 1: protocol ip pref 10 u32
filter parent 1: protocol ip pref 10 u32 fh 100: ht divisor 8
filter parent 1: protocol ip pref 10 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 10 u32 fh 800::800 order 2048 key ht 800 bkt
0 link 100:
match 0a150800/fffff800 at 16
hash mask 00000700 at 16Signature · 2 lines
You are receiving this mail because: You are watching the assignee of the bug.
Quoted 57 lines · Daniel Borkmann
[ Cc'ing Yang ]
-------- Original Message --------
Subject: [Bug 84661] New: tc filter show from iproute2 does not work correctly on 32bit x86
Date: Tue, 16 Sep 2014 11:47:20 +0000
From: [email protected]
To: [email protected]https://bugzilla.kernel.org/show_bug.cgi?id=84661
Bug ID: 84661 Summary: tc filter show from iproute2 does not work correctly on 32bit x86 Product: Networking Version: 2.5 Kernel Version: 3.14.17 and 3.16.1 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Other Assignee: [email protected] Reporter: [email protected] Regression: Noi tested this issue with kernels 3.14.x and 3.16.x. and iproute2-3.16.0
This commit:
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=6a031f67c83aa175aedd10d4ae64750415ab57b0
breaking output tc filter show on 32bit systems.This simple script shows the difference in the work on i586 and
x86_64:
-------------------------
#!/bin/sh
dev=$1
tc qdisc add dev $dev root handle 1: htb default fffe
tc filter add dev $dev parent 1:0 protocol ip pref 10 u32
tc filter add dev $dev parent 1:0 protocol ip pref 10 handle 100: u32 divisor 8 tc filter add dev $dev parent 1:0 protocol ip pref 10 u32 ht 800:: match ip dst 10.21.10.0/21 hashkey mask0x00000700at 16 link 100:
tc filter show dev $dev
tc filter del dev $dev parent 1:0 protocol ip pref 10 u32 ht 800:: match ip dst 10.21.10.0/21 hashkey mask0x00000700at 16 link 100:
tc qdisc del dev $dev root handle 1: htb default fffe
---------------------------output on i586:
#./script enp0s25
filter parent 1: protocol ip pref 10 u32
filter parent 1: protocol ip pref 10 u32 fh 100: ht divisor 8 filter parent 1: protocol ip pref 10 u32 fh 800: ht divisor 1output on
x86_64:
Quoted 9 lines
# ./script eth0
filter parent 1: protocol ip pref 10 u32
filter parent 1: protocol ip pref 10 u32 fh 100: ht divisor 8
filter parent 1: protocol ip pref 10 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 10 u32 fh 800::800 order 2048 key ht 800 bkt
0 link 100:
match 0a150800/fffff800 at 16
hash mask 00000700 at 16I do not understand how a netem patch could change something for this case ?
Quoted 67 lines · Eric Dumazet
Quoted 57 lines · Daniel Borkmann
[ Cc'ing Yang ]
-------- Original Message --------
Subject: [Bug 84661] New: tc filter show from iproute2 does not work correctly on 32bit x86
Date: Tue, 16 Sep 2014 11:47:20 +0000
From: [email protected]
To: [email protected]https://bugzilla.kernel.org/show_bug.cgi?id=84661
Bug ID: 84661 Summary: tc filter show from iproute2 does not work correctly on 32bit x86 Product: Networking Version: 2.5 Kernel Version: 3.14.17 and 3.16.1 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Other Assignee: [email protected] Reporter: [email protected] Regression: Noi tested this issue with kernels 3.14.x and 3.16.x. and iproute2-3.16.0
This commit:
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=6a031f67c83aa175aedd10d4ae64750415ab57b0
breaking output tc filter show on 32bit systems.This simple script shows the difference in the work on i586 and
x86_64:
-------------------------
#!/bin/sh
dev=$1
tc qdisc add dev $dev root handle 1: htb default fffe
tc filter add dev $dev parent 1:0 protocol ip pref 10 u32
tc filter add dev $dev parent 1:0 protocol ip pref 10 handle 100: u32 divisor 8 tc filter add dev $dev parent 1:0 protocol ip pref 10 u32 ht 800:: match ip dst 10.21.10.0/21 hashkey mask0x00000700at 16 link 100:
tc filter show dev $dev
tc filter del dev $dev parent 1:0 protocol ip pref 10 u32 ht 800:: match ip dst 10.21.10.0/21 hashkey mask0x00000700at 16 link 100:
tc qdisc del dev $dev root handle 1: htb default fffe
---------------------------output on i586:
#./script enp0s25
filter parent 1: protocol ip pref 10 u32
filter parent 1: protocol ip pref 10 u32 fh 100: ht divisor 8 filter parent 1: protocol ip pref 10 u32 fh 800: ht divisor 1output on
x86_64:Quoted 9 lines
# ./script eth0 filter parent 1: protocol ip pref 10 u32 filter parent 1: protocol ip pref 10 u32 fh 100: ht divisor 8 filter parent 1: protocol ip pref 10 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 10 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 100: match 0a150800/fffff800 at 16 hash mask 00000700 at 16
Quoted 2 lines
I do not understand how a netem patch could change something for this case ?
No, Anton Boyarshinov checked this commit, and the problem is not in it. the bug had appearedbetween the last and the first release of the 3.13 and 3.14 kernel.