Application Agent should report NACK for bundles that cannot be routed
Currently, AAP SENDBUNDLE
messages always get a SENDCONFIRM
response as long as the bundle could be successfully stored (allocated) by µD3TN. However, if routing fails, the bundle is dropped immediately. In that case we should get a NACK
response.
The issue with implementing this is that agents do not currently get feedback of routing decisions and routing itself is performed asynchronously. Thus, we would need some kind of notification mechanism from the bundle processor to the application agent - something like "custody taken".
Here, a second issue arises: If another bundle is received and locally delivered to the agent in the meantime (before the router can give feedback), the application agent may want to hand out the bundle via RECVBUNDLE
, breaking the expected request-response-pattern on the other side. Also, another AAP command may be received in the meantime and we need to decide what to do with it.
Maybe we need two things:
- a bundle-processor-to-agent feedback mechanism about the routing decisions
- an AAP "v2" version either forcing multiple channels for sending and receiving bundles or uniquely identifying requests and allowing asynchronous operation (raising the overall complexity)