• Toke Høiland-Jørgensen's avatar
    sch_cake: Interpret fwmark parameter as a bitmask · eab2fc82
    Toke Høiland-Jørgensen authored
    We initially interpreted the fwmark parameter as a flag that simply turned
    on the feature, using the whole skb->mark field as the index into the CAKE
    tin_order array. However, it is quite common for different applications to
    use different parts of the mask field for their own purposes, each using a
    different mask.
    
    Support this use of subsets of the mark by interpreting the TCA_CAKE_FWMARK
    parameter as a bitmask to apply to the fwmark field when reading it. The
    result will be right-shifted by the number of unset lower bits of the mask
    before looking up the tin.
    
    In the original commit message we also failed to credit Felix Resch with
    originally suggesting the fwmark feature back in 2017; so the Suggested-By
    in this commit covers the whole fwmark feature.
    
    Fixes: 0b5c7efd ("sch_cake: Permit use of connmarks as tin classifiers")
    Suggested-by: default avatarFelix Resch <fuller@beif.de>
    Signed-off-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    eab2fc82
sch_cake.c 77.6 KB