From the supply code of LND, funds are break up in half and retried if no path for the total quantity is discovered:
func (p *paymentSession) RequestRoute(maxAmt, feeLimit lnwire.MilliSatoshi,
activeShards, peak uint32) (*route.Route, error) {
...
// That is the place the magic occurs. If we won't discover a
// route, attempt it for half the quantity.
maxAmt /= 2
...
For regular funds, I perceive the algorithm will break up the cost till it suits a path, ship it, and replace the weights within the graph to keep away from reusing the identical path. Then we will do the identical for the remaining quantity. That is confirmed in this reply.
Nevertheless, for MPP, it appears there’s a set of elements per spherical, that are despatched concurrently. If so, how does MPP outline the quantity of every half earlier than sending the elements?
