• Petr Machata's avatar
    mlxsw: spectrum_span: Generalize SPAN support · 169b5d95
    Petr Machata authored
    To support mirroring to different device types, the functions that
    partake in configuring the port analyzer need to be extended to admit
    non-trivial SPAN types.
    
    Create a structure where all details of SPAN configuration are kept,
    struct mlxsw_sp_span_parms. Also create struct mlxsw_sp_span_entry_ops
    to keep per-SPAN-type operations.
    
    Instantiate the latter once for MLXSW_REG_MPAT_SPAN_TYPE_LOCAL_ETH, and
    once for a suite of NOP callbacks used for invalidated SPAN entry. Put
    the formet as a sole member of a new array mlxsw_sp_span_entry_types,
    where all known SPAN types are kept. Introduce a new function,
    mlxsw_sp_span_entry_ops(), to look up the right ops suite given a
    netdevice.
    
    Change mlxsw_sp_span_mirror_add() to use both parms and ops structures.
    Change mlxsw_sp_span_entry_get() and mlxsw_sp_span_entry_create() to
    take these as arguments. Modify mlxsw_sp_span_entry_configure() and
    mlxsw_sp_span_entry_deconfigure() to dispatch to ops.
    Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
    Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    169b5d95
spectrum_span.c 14 KB