• Guillaume Nault's avatar
    ipv6: Define dscp_t and stop taking ECN bits into account in fib6-rules · a410a0cf
    Guillaume Nault authored
    Define a dscp_t type and its appropriate helpers that ensure ECN bits
    are not taken into account when handling DSCP.
    
    Use this new type to replace the tclass field of struct fib6_rule, so
    that fib6-rules don't get influenced by ECN bits anymore.
    
    Before this patch, fib6-rules didn't make any distinction between the
    DSCP and ECN bits. Therefore, rules specifying a DSCP (tos or dsfield
    options in iproute2) stopped working as soon a packets had at least one
    of its ECN bits set (as a work around one could create four rules for
    each DSCP value to match, one for each possible ECN value).
    
    After this patch fib6-rules only compare the DSCP bits. ECN doesn't
    influence the result anymore. Also, fib6-rules now must have the ECN
    bits cleared or they will be rejected.
    Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
    Acked-by: default avatarDavid Ahern <dsahern@kernel.org>
    Reviewed-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    a410a0cf
ipv6.h 35.6 KB