next up previous contents index
Next: 29.3.0.0.3 Repair Packets Up: 29.3 Packet Handling: Processing Previous: 29.3.0.0.1 Data Packets

29.3.0.0.2 Request Packets

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.


next up previous contents index
Next: 29.3.0.0.3 Repair Packets Up: 29.3 Packet Handling: Processing Previous: 29.3.0.0.1 Data Packets

2000-08-24