On 6/4/19 10:58 PM, Lorenzo Colitti wrote: > As for making this change in 5.3: we might be able to structure the > code differently in a future Android release, assuming the same > userspace code can work on kernels back to 4.4 (not sure it can, since > the semantics changed in 4.8). But even if we can fix this in Android, > this change is still breaking compatibility with existing other > userspace code. Are there concrete performance optimizations that > you'd like to make that can't be made unless you change the semantics > here? Are those optimizations worth breaking the backwards > compatibility guarantees for?
The list of fib rules is walked looking for a match. more rules = more overhead. Given the flexibility of the rules, I have not come up with any changes that have a real improvement in that overhead. VRF, which uses policy routing, was changed to have a single l3mdev rule for all VRFs for this reason.