source : igmp mode : snoop This is IGMP Snooping on VLANs
target : igmp mode : snoopspb This is IGMP Snooping on L2VSNs (VLANs extended over Fabric)
Conceptually both do the same thing. But there is a slight catch.
If you have:
Sender ----> VLAN with snoop -----> Receiver
Sender ----> L2VSN with snoopspb -----> Receiver
Both will work equally.
In the Fabric case it will work even better, as the L2VSN BEBs will act as IGMP Queriers.
In the VLAN with snoop case, technically there is no IGMP Querier, so you would need to activate some pseudo-querier function, which is automatic in some implementations.
But if you have:
Multicast-Router ----> VLAN with snoop ----> Receiver or Sender
Multicast-Router ----> L2VSN with snoopspb ----> Receiver or Sender
Then the 1st case will work, but the second case won't.
Because the Multicast-Router will be the IGMP Querier. And its IGMP Queries will ripple across the IGMP snooped VLAN (whether you have 1 or more switches)
Whereas the problem with L2VSN snoopspb is that the Fabric BEBs terminating the L2VSN service will need to be the IGMP Queriers, and you will have a querier at either end of the Fabric; and no IGMP messages are carried over the L2VSN. So that means any IGMP join from the receiver will never make it to the Multicast-Router, which will thus never send the multicast stream. And in the reverse direction, a Sender emitting a multicast stream, this stream will never get forwarded to the Multicast-Router, unless the Fabric BEB connected to the Multicast-Router receives an IGMP Join for that stream, which of course a Multicart-Router will never do. You can make it work by creating static IGMP entries on the BEB, so that the Sender streams are always sent to the Multicast-Router, and static IGMP entries on the Multicast-Router, so that any streams coming from the router can be made available for Fabric connected receivers.
In general, if you need to interact with external Multicast-Routers, there is a PIM-Gateway + MSDP functionality available, but this will only work in multicast "routedspb" mode, not the "snoopspb" one.