In Spectrum, there is a macro to arrange the traps list.
This macro is useful for everyone who is using rx traps.
Create a similar macro in core.h for creating the generic listener struct
for rx traps.
Signed-off-by: Nogah Frankel <nogahf@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        bool is_event;
 };
 
+#define MLXSW_RXL(_func, _trap_id, _action, _unreg_action)             \
+       {                                                               \
+               .trap_id = MLXSW_TRAP_ID_##_trap_id,                    \
+               .u.rx_listener =                                        \
+               {                                                       \
+                       .func = _func,                                  \
+                       .local_port = MLXSW_PORT_DONT_CARE,             \
+                       .trap_id = MLXSW_TRAP_ID_##_trap_id,            \
+               },                                                      \
+               .action = MLXSW_REG_HPKT_ACTION_##_action,              \
+               .unreg_action = MLXSW_REG_HPKT_ACTION_##_unreg_action,  \
+               .is_event = false,                                      \
+       }
+
 int mlxsw_core_rx_listener_register(struct mlxsw_core *mlxsw_core,
                                    const struct mlxsw_rx_listener *rxl,
                                    void *priv);