Re: [Regression?] fib_rules: Added NLM_F_EXCL support to fib_nl_newrule breaks Android userspace

From: David Ahern
Date: Fri Jul 29 2016 - 15:10:25 EST


On 7/29/16 10:57 AM, John Stultz wrote:
I take Android userspace inserts the same rule multiple times? (ip rule ls)

With the patch reverted, and the system working, I see:

# ip rule ls
0: from all lookup local
10000: from all fwmark 0xc0000/0xd0000 lookup legacy_system
13000: from all fwmark 0x10063/0x1ffff lookup local_network
13000: from all fwmark 0x10065/0x1ffff lookup wlan0
14000: from all oif wlan0 lookup wlan0
14000: from all oif wlan0 lookup wlan0

duplicate rules.

15000: from all fwmark 0x0/0x10000 lookup legacy_system
16000: from all fwmark 0x0/0x10000 lookup legacy_network
17000: from all fwmark 0x0/0x10000 lookup local_network
19000: from all fwmark 0x64/0x1ffff lookup wlan0
19000: from all fwmark 0x65/0x1ffff lookup wlan0
22000: from all fwmark 0x0/0xffff lookup wlan0
32000: from all unreachable

With the patch applied, and after toggling wifi, when I see the problem:

# ip rule ls
0: from all lookup local
10000: from all fwmark 0xc0000/0xd0000 lookup legacy_system
13000: from all fwmark 0x10063/0x1ffff lookup local_network
13000: from all fwmark 0x10065/0x1ffff lookup wlan0
14000: from all oif wlan0 lookup wlan0

The failure would be happening on the insertion of the second wlan0 rule.

15000: from all fwmark 0x0/0x10000 lookup legacy_system
16000: from all fwmark 0x0/0x10000 lookup legacy_network
17000: from all fwmark 0x0/0x10000 lookup local_network
19000: from all fwmark 0x64/0x1ffff lookup wlan0
32000: from all unreachable


If so and multiple components expect to manage their own 'copy' of the rule
they will need to remove the NLM_F_EXCL flag.

Adding more networky Android folks to the CC.

thanks
-john