Hello Yuhui,
an RFC about PIM Bidirectional has been published
http://www.ietf.org/rfc/rfc5015.txt
>>
A packet is
accepted if it arrives on the RPF interface to reach the RPA
(downstream traveling packet) or if the router is the DF on the
interface the packet arrives (upstream traveling packet).
This is what we had discussed in your previous threads on PIM BIDIR.
The objective of PIM BIDIR is to minimize the state overhead when multiple sources
are present.
And to use the ditribution tree instead of the register process when sending
traffic to the RP (RPA = RP address)
This of course may lead to some leakage or waste of bandwidth as you note but
it is a tradeoff between state overhead and forwarding efficiency.
Without PIM BIDIR a distribution tree for each source should be built
with PIM DM or PIM SM (that uses the RP to save resources
using the shared tree first)
Hope to help
Giuseppe