tcpdump on bridge interface (virbr) does not receive any packets destined for one of its addresses

Solution 1:

tcpdump operates at the link level by opening a packet socket[1]. It sits right beneath the interface, so it intercepts inbound packets off the hardware and outbound packets from an interface. When you send a packet to that interface in the kernel, the packet has reached its destination and is not sent out via the interface. For the curious, here is the relevant code[2].

[1] http://man7.org/linux/man-pages/man7/packet.7.html
[2] https://github.com/the-tcpdump-group/libpcap/blob/master/pcap-linux.c#L3281