On receiving a request,
[sender, msgid]recv_rqst../ns-2/srm.ccSRMAgent::recv_rqst
will check whether it needs to schedule requests for other missing data.
If it has received this request
before it was aware that the source had generated this data message
(, the sequence number of the request is higher than
the last known sequence number of data from this source),
then the agent can infer that it is missing this, as well as data
from the last known sequence number onwards;
it schedules requests for all of the missing data and returns.
On the other hand, if the sequence number of the request is less
than the last known sequence number from the source,
then the agent can be in one of three states:
(1) it does not have this data, and has a request pending for it,
(2) it has the data, and has seen an earlier request,
upon which it has a repair pending for it, or
(3) it has the data, and it should instantiate a repair.
All of these error recovery mechanisms are done in OTcl;
[]recv_rqst invokes the instance procedure
[sender, msgid,
requester]recv-rqst../ns-2/srm.tclAgent/SRM::recv-rqst
for further processing.
Tom Henderson
2014-12-17