From: Ido Schimmel <ido...@idosch.org> Date: Tue, 14 Jul 2020 17:20:53 +0300
> From: Ido Schimmel <ido...@mellanox.com> > > A future patch set will add the ability to trap packets that were > dropped due to buffer related reasons (e.g., early drop). Internally > this is implemented by mirroring these packets towards the CPU port. > This patch set adds the required infrastructure to enable such > mirroring. > > Patches #1-#2 extend two registers needed for above mentioned > functionality. > > Patches #3-#6 gradually add support for setting the mirroring target of > a SPAN (mirroring) agent as the CPU port. This is only supported from > Spectrum-2 onwards, so an error is returned for Spectrum-1. > > Patches #7-#8 add the ability to set a policer on a SPAN agent. This is > required because unlike regularly trapped packets, a policer cannot be > set on the trap group with which the mirroring trap is associated. > > Patches #9-#12 parse the mirror reason field from the Completion Queue > Element (CQE). Unlike other trapped packets, the trap identifier of > mirrored packets only indicates that the packet was mirrored, but not > why. The reason (e.g., tail drop) is encoded in the mirror reason field. > > Patch #13 utilizes the mirror reason field in order to lookup the > matching Rx listener. This allows us to maintain the abstraction that an > Rx listener is mapped to a single trap reason. Without taking the mirror > reason into account we would need to register a single Rx listener for > all mirrored packets. Series applied, thanks Ido.