Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

All of these cases should end up calling lnet_finalize() API with the proper return code. lnet_finalize() will be the funnel where all these events shall be processed in a consistent manner. When the message is completed via lnet_complete_msg_locked(), the error is checked and the proper behavior as described above is executed.

Resend Window

The resend window is the peer_timeout, after which the peer is considered down.

A message is resent after the LND transmit deadline expires, or on failure return code. Both these paths are handled in the same manner, since a transmit deadline triggers a call to lnet_finalize(). Both inline and aysnchronous errors also endup in lnet_finalize().

 

Locking

MD is always protected by the lnet_res_lock, which is CPT specific.

Other data structures such as the_lnet.ln_msg_containers, peer_ni, local ni, etc are protected by the lnet_net_lock

The MD should be kept intact during the resend procedure. If there is a failure to resend then the MD should be released and message memory freed.TBD

O2IBLND

Overview

There are two types of events to account for:

...