Am 20.08.2013 11:06, schrieb ssireskin@gmail.com:
Johannes,
I wanted to test these new scheduling features. Here is what I really need from priorities. I want bundle priority to be considered by dtnd on all stages of bundle processing, for example taking bundles out of storage, placing bundles to a routing queue, sending bundles to a convergence layer, sending bundles to underlying transport, etc. Is "scheduling = yes" about this, or it's a completely different feature?
In IBR-DTN priorities are only considered within the storage. Bundles are sorted using the priorities and this results in a strict ordered processing in several other modules, including routing and API delivery. As example: If you put in three bundles with priority bulk, expedited and normal. The expedited bundles will be processed and forwarded first to other nodes. The order in which the bundles are stored does not matter here.
The mechanism enabled by "scheduling = yes" activates advanced scheduling, which allow +/- 128 priority levels. These are not encoded in the bundle primary block. Instead an extension block is necessary to define the priority of each bundle. This mechanism behaves like the basic priorities and just change the ordering of bundles in the storage.
With dtn2 i have seen the following scenario. I have two nodes, link between them is down. I send in a series, without delay 30 bulk, then 2 normal, than 2 expedited bundles. Then immediately I repeat this series two times. Then I turn link up and see what sequence of bundles i get on the receiving node. The sequence is: 8 bulk (b), 1 normal (n), 9b, 1n, 8b, 1e, 1b, 1e, 26b, 1n, 1b, 1n, 1b, 1e, 1b, 1e, 27b, 1e, 4b, 2n, 1e. This looks line priorities practically don't work. I tested with TCP-CL, 10 KByte bundle payload size, 16Kbit/s link.
To mention here is, that the ordering using priorities in IBR-DTN is not strict to the RFC 5050, but the one you noticed in DTN2 might be. The detail is that RFC 5050 only defines priorities within the same destination. If the bundles are addressed to different destinations, then the priorities should not have any effect on the forwarding order. In IBR-DTN, the priorities are considered globally and even if the bundle is addresses to a different destination, the expedited bundle will get forward before the bulk bundles.
Maybe that puts some light into the observations you made.
Kind regards, Johannes Morgenroth