• Petr Machata's avatar
    mlxsw: spectrum_qdisc: Track permissible actions per binding · 099bf89d
    Petr Machata authored
    One block can be bound to several qevents. The qevent type that the block
    is bound to determines which actions make sense in a given context. In the
    particular case of mlxsw, trap cannot be offloaded on a RED mark qevent,
    because the trap contract specifies that the packet is dropped in the HW
    datapath, and the HW trigger that the action is offloaded to is always
    forwarding the packet (in addition to marking in).
    
    Therefore keep track of which actions are permissible at each binding
    block. When an attempt is made to bind a certain action at a binding point
    where it is not supported, bounce the request.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    099bf89d
spectrum_qdisc.c 57.5 KB