diff options
author | David S. Miller <davem@davemloft.net> | 2022-04-22 13:06:03 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-04-22 13:06:03 +0100 |
commit | fb799dd49a25625db05af51dd141371f6f64d3d1 (patch) | |
tree | aa3ca5138109769f191846bf2102a23d473dbfc0 /drivers/net/ethernet/qlogic | |
parent | cb1e6bf42bce63158884ab83fb171b518693c771 (diff) | |
parent | b1ad41384866aafadf24c6b0f7e7701c86bdddc2 (diff) |
Merge branch 'ipv6-RT_ONLINK-remove-prep'
Guillaume Nault says:
====================
ipv4: First steps toward removing RTO_ONLINK
RTO_ONLINK is a flag that allows to reduce the scope of route lookups.
It's stored in a normally unused bit of the ->flowi4_tos field, in
struct flowi4. However it has several problems:
* This bit is also used by ECN. Although ECN bits are supposed to be
cleared before doing a route lookup, it happened that some code
paths didn't properly sanitise their ->flowi4_tos. So this mechanism
is fragile and we had bugs in the past where ECN bits slipped in and
could end up being erroneously interpreted as RTO_ONLINK.
* A dscp_t type was recently introduced to ensure ECN bits are cleared
during route lookups. ->flowi4_tos is the most important structure
field to convert, but RTO_ONLINK prevents such conversion, as dscp_t
mandates that ECN bits (where RTO_ONLINK is stored) be zero.
Therefore we need to stop using RTO_ONLINK altogether. Fortunately
RTO_ONLINK isn't a necessity. Instead of passing a flag in ->flowi4_tos
to tell the route lookup function to restrict the scope, we can simply
initialise the scope correctly.
Patch 1 does some preparatory work: it stops resetting ->flowi4_scope
automatically before a route lookup, thus allowing callers to set their
desired scope without having to rely on the RTO_ONLINK flag.
Patch 2-3 convert a few code paths to avoid relying on RTO_ONLINK.
More conversions will have to take place before we can eventually
remove this flag.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic')
0 files changed, 0 insertions, 0 deletions