Dear Johannes,

Thank you for the lead. Yes, you are right. I want to wiretap and get the knowledge of the crossing bundles (on say, an intermediate node having epidemic routing).

I looked up the internet, but I could not get a clear idea on how to use the QueueBundleEvent. Is that a plugin or do I have to register the event in the code directly?
Where is the standard API connection? And what is an extended protocol?

Until now, I understand using the tools and have myself made changes to the Ibrdtn C++ tools and I understand workings of ibrdtnd.conf and reading the neighbors via localhost query. However, was curious where/how you got the 'stream' information? Is it the same way we query for the DTN neighbors (say, opening a socket using a python script)?

Thanks,
Shyam




On Mon, Jan 13, 2014 at 8:20 AM, Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de> wrote:
Hi Shyam,

if I understand you right, you want to wiretap all / specific crossing traffic like wireshark does?

IBR-DTN does not provide such mechanism to standard applications due to security reasons. But with the event API you can listen to QueueBundleEvent and then request that bundle ID using the standard API connection. At this time, there is no protection against reading non-local bundles via the extended protocol.

For the event API you switch into the right handler via "protocol event" and then you get the stream.

IBR-DTN 0.11.0 (build 4a406ca) API 1.0
protocol event
200 SWITCHED TO EVENT
Event: BundleReceivedEvent
Peer: dtn://syrah/test
Local: true
Source: dtn://syrah/test
Timestamp: 442912579
Sequencenumber: 1
Lifetime: 3600
Procflags: 128
Destination: dtn://test/test

Event: QueueBundleEvent
Source: dtn://syrah/test
Timestamp: 442912579
Sequencenumber: 1
Lifetime: 3600
Procflags: 128
Destination: dtn://test/test


Kind regards,
Johannes Morgenroth


Am 11.01.2014 02:57, schrieb Shyam B:
Hi,

This is regarding Epidemic routing and receiving bundles. Using dtntrigger for example, one can receive the bundle targeted to a particular target node.  I.e. When the bundle arrives at the target node, the target node has an immediate knowledge of it (using payload, eid) via script.

Consider the scenario where epidemic routing is used, and an intermediate node receives the bundle meant for a target node. Dtntrigger does not work in this case. My question is, how do I know that intermediate node has received a bundle (programmatically)? DTN daemon has this knowledge of received bundles by the intermediate node but, if an application running on this intermediate node wishes to know that some (external) bundle has been received, how would it know that. It is received into the 'bundles' directory, but I would like something like DTNTrigger for the intermediate node' knowledge! How can I achieve this?

This approach will be very helpful in my aerial application.

Thank you!

--
Best Regards,
Shyam




--
Best Regards,
Shyam