diff options
author | Petar Penkov <ppenkov@google.com> | 2019-07-05 11:46:43 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-11 14:22:53 -0700 |
commit | 63f9ba1bf8b6550365dc17a65d544cd75e68bf48 (patch) | |
tree | 2b0f1f17b68cc35d182ab2d4aea0f77986708349 | |
parent | a131c2bf165684315f606fdd88cf80be22ba32f3 (diff) | |
download | linux-63f9ba1bf8b6550365dc17a65d544cd75e68bf48.tar.bz2 |
net: fib_rules: do not flow dissect local packets
Rules matching on loopback iif do not need early flow dissection as the
packet originates from the host. Stop counting such rules in
fib_rule_requires_fldissect
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/fib_rules.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index eba8465e1d86..20dcadd8eed9 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h @@ -180,9 +180,9 @@ static inline bool fib_rule_port_range_compare(struct fib_rule_port_range *a, static inline bool fib_rule_requires_fldissect(struct fib_rule *rule) { - return rule->ip_proto || + return rule->iifindex != LOOPBACK_IFINDEX && (rule->ip_proto || fib_rule_port_range_set(&rule->sport_range) || - fib_rule_port_range_set(&rule->dport_range); + fib_rule_port_range_set(&rule->dport_range)); } struct fib_rules_ops *fib_rules_register(const struct fib_rules_ops *, |