Re: [ibr-dtn] [Ibr-dtn] static connection to two different nodes with same EID
Hello André,
your scenario is not possible this way. Each DTN node must have a unique singleton EID to work. Configuring the same EID twice only adds a second path to the same node. The daemon would only utilize one path at the same time.
If you want to exploit multi-cast or group EIDs, then you simply register your application to a group EID and send your bundles to that group. You should read the dtnsend / dtnrecv help texts for details.
Group routing is implemented similar to flooding and depends on the dynamic routing protocol you configured. "flooding", "epidemic" and "prophet" are routing schemes which support group routing. All of them work slightly different.
In future, please direct those questions to the mailing-list instead of directly to me. That way other experts get a change to answer your questions.
Kind regards, Johannes Morgenroth
Am 02.06.2014 15:39, schrieb André Sá:
Hello Johannes,
I am using prophet routing protocol and I would like to send a bundle from one node to two nodes identified with the same EID. I have read that in case of multicast or anycast, a single EID may point to more than one node, but each node must have a singleton endpoint.
I have configured the following static connections:
static1_address = 213.22.19.16 static1_port = 4556 static1_uri = dtn://cloudFutureCities.dtn static1_proto = tcp static1_immediately = yes static1_global = yes
static2_address = 213.22.19.17 static2_port = 4556 static2_uri = dtn://cloudFutureCities.dtn static2_proto = tcp static2_immediately = yes static2_global = yes
I also tried dtn://cloudFutureCities.dtn/nodeB uri instead of dtn://cloudFutureCities.dtn in both connections, but in both situations it only connects to the node configured in static1. Have I to configure the connections using the singleton eid?
Kind regards,
André Sá
Dear all,
Instead of using the dtnrecv command, is it possible to get the packets sent to a particular group EID, through the ibr-dtn API?
Kind regards, André Sá
On Jun 2, 2014, at 3:00 PM, Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de wrote:
Hello André,
your scenario is not possible this way. Each DTN node must have a unique singleton EID to work. Configuring the same EID twice only adds a second path to the same node. The daemon would only utilize one path at the same time.
If you want to exploit multi-cast or group EIDs, then you simply register your application to a group EID and send your bundles to that group. You should read the dtnsend / dtnrecv help texts for details.
Group routing is implemented similar to flooding and depends on the dynamic routing protocol you configured. "flooding", "epidemic" and "prophet" are routing schemes which support group routing. All of them work slightly different.
In future, please direct those questions to the mailing-list instead of directly to me. That way other experts get a change to answer your questions.
Kind regards, Johannes Morgenroth
Am 02.06.2014 15:39, schrieb André Sá:
Hello Johannes,
I am using prophet routing protocol and I would like to send a bundle from one node to two nodes identified with the same EID. I have read that in case of multicast or anycast, a single EID may point to more than one node, but each node must have a singleton endpoint.
I have configured the following static connections:
static1_address = 213.22.19.16 static1_port = 4556 static1_uri = dtn://cloudFutureCities.dtn static1_proto = tcp static1_immediately = yes static1_global = yes
static2_address = 213.22.19.17 static2_port = 4556 static2_uri = dtn://cloudFutureCities.dtn static2_proto = tcp static2_immediately = yes static2_global = yes
I also tried dtn://cloudFutureCities.dtn/nodeB uri instead of dtn://cloudFutureCities.dtn in both connections, but in both situations it only connects to the node configured in static1. Have I to configure the connections using the singleton eid?
Kind regards,
André Sá
While I do not know the specifics, I know the answer is yes :) But there would be different ways to achieve this
1. It is possible to link programs to ibrdtn, so basically look a the dtnrecv source code and what it does when given the "-g" parameter. Then, build your own stuff.
2. It is possible to use the (TCP) API Port, if you want a less closely coupled system. The Java API relies on that, so you might get an idea how to do this from the JAVA API source code: https://github.com/ibrdtn/ibrdtn/tree/master/java
3. If you just want this because you intend to "process" incoming group bundles take a look at the easy dtntrigger solution
dtntrigger -g dtn://mygroup notImportant myNiceLittleScript.sh
(here "notImportant" is the appname to listen to as in dtn://myEID/appname, i.e. when using dtntrigger without the -g parameter, but since it is mandatory parameter, we need to add something here... however the group really is called only dtn://mygroup in this example.)
"myNiceLittleScript.sh" can be any executable and will be called with parameters "Source eid" and "path to received payload". The executable should delete the received payload file after it is finished and it is not neded anymore (dtntrigger will not do any cleanup)
Sebastian
Am 09.06.2014 um 18:18 schrieb André Sá ee12256@fe.up.pt:
Dear all,
Instead of using the dtnrecv command, is it possible to get the packets sent to a particular group EID, through the ibr-dtn API?
Kind regards, André Sá
On Jun 2, 2014, at 3:00 PM, Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de wrote:
Hello André,
your scenario is not possible this way. Each DTN node must have a unique singleton EID to work. Configuring the same EID twice only adds a second path to the same node. The daemon would only utilize one path at the same time.
If you want to exploit multi-cast or group EIDs, then you simply register your application to a group EID and send your bundles to that group. You should read the dtnsend / dtnrecv help texts for details.
Group routing is implemented similar to flooding and depends on the dynamic routing protocol you configured. "flooding", "epidemic" and "prophet" are routing schemes which support group routing. All of them work slightly different.
In future, please direct those questions to the mailing-list instead of directly to me. That way other experts get a change to answer your questions.
Kind regards, Johannes Morgenroth
Am 02.06.2014 15:39, schrieb André Sá:
Hello Johannes,
I am using prophet routing protocol and I would like to send a bundle from one node to two nodes identified with the same EID. I have read that in case of multicast or anycast, a single EID may point to more than one node, but each node must have a singleton endpoint.
I have configured the following static connections:
static1_address = 213.22.19.16 static1_port = 4556 static1_uri = dtn://cloudFutureCities.dtn static1_proto = tcp static1_immediately = yes static1_global = yes
static2_address = 213.22.19.17 static2_port = 4556 static2_uri = dtn://cloudFutureCities.dtn static2_proto = tcp static2_immediately = yes static2_global = yes
I also tried dtn://cloudFutureCities.dtn/nodeB uri instead of dtn://cloudFutureCities.dtn in both connections, but in both situations it only connects to the node configured in static1. Have I to configure the connections using the singleton eid?
Kind regards,
André Sá
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://mail.ibr.cs.tu-bs.de/listinfo/ibr-dtn.
Thank you for your answer Sebastian. I am using the (TCP) API Port. The JAVA API code uses the "protocol streaming" mode, whereas I am using the "protocol extended" mode. Is there any command I can use in protocol extended mode, to get bundles sent to a group EID?
Kind regards André Sá
On Jun 9, 2014, at 6:19 PM, Sebastian Schildt schildt@ibr.cs.tu-bs.de wrote:
While I do not know the specifics, I know the answer is yes :) But there would be different ways to achieve this
It is possible to link programs to ibrdtn, so basically look a the dtnrecv source code and what it does when given the "-g" parameter. Then, build your own stuff.
It is possible to use the (TCP) API Port, if you want a less closely coupled system. The Java API relies on that, so you might get an idea how to do this from the JAVA API source code: https://github.com/ibrdtn/ibrdtn/tree/master/java
If you just want this because you intend to "process" incoming group bundles take a look at the easy dtntrigger solution
dtntrigger -g dtn://mygroup notImportant myNiceLittleScript.sh
(here "notImportant" is the appname to listen to as in dtn://myEID/appname, i.e. when using dtntrigger without the -g parameter, but since it is mandatory parameter, we need to add something here... however the group really is called only dtn://mygroup in this example.)
"myNiceLittleScript.sh" can be any executable and will be called with parameters "Source eid" and "path to received payload". The executable should delete the received payload file after it is finished and it is not neded anymore (dtntrigger will not do any cleanup)
Sebastian
Am 09.06.2014 um 18:18 schrieb André Sá ee12256@fe.up.pt:
Dear all,
Instead of using the dtnrecv command, is it possible to get the packets sent to a particular group EID, through the ibr-dtn API?
Kind regards, André Sá
On Jun 2, 2014, at 3:00 PM, Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de wrote:
Hello André,
your scenario is not possible this way. Each DTN node must have a unique singleton EID to work. Configuring the same EID twice only adds a second path to the same node. The daemon would only utilize one path at the same time.
If you want to exploit multi-cast or group EIDs, then you simply register your application to a group EID and send your bundles to that group. You should read the dtnsend / dtnrecv help texts for details.
Group routing is implemented similar to flooding and depends on the dynamic routing protocol you configured. "flooding", "epidemic" and "prophet" are routing schemes which support group routing. All of them work slightly different.
In future, please direct those questions to the mailing-list instead of directly to me. That way other experts get a change to answer your questions.
Kind regards, Johannes Morgenroth
Am 02.06.2014 15:39, schrieb André Sá:
Hello Johannes,
I am using prophet routing protocol and I would like to send a bundle from one node to two nodes identified with the same EID. I have read that in case of multicast or anycast, a single EID may point to more than one node, but each node must have a singleton endpoint.
I have configured the following static connections:
static1_address = 213.22.19.16 static1_port = 4556 static1_uri = dtn://cloudFutureCities.dtn static1_proto = tcp static1_immediately = yes static1_global = yes
static2_address = 213.22.19.17 static2_port = 4556 static2_uri = dtn://cloudFutureCities.dtn static2_proto = tcp static2_immediately = yes static2_global = yes
I also tried dtn://cloudFutureCities.dtn/nodeB uri instead of dtn://cloudFutureCities.dtn in both connections, but in both situations it only connects to the node configured in static1. Have I to configure the connections using the singleton eid?
Kind regards,
André Sá
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://mail.ibr.cs.tu-bs.de/listinfo/ibr-dtn.
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://mail.ibr.cs.tu-bs.de/listinfo/ibr-dtn.
Am 10.06.2014 18:23, schrieb André Sá:
Thank you for your answer Sebastian. I am using the (TCP) API Port. The JAVA API code uses the "protocol streaming" mode, whereas I am using the "protocol extended" mode. Is there any command I can use in protocol extended mode, to get bundles sent to a group EID?
As documented here... https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/apidoc/0.12/api.pdf
Use "registration add" to subscribe to endpoints. This command also accepts group EIDs.
Regards, Johannes
Thank you Johannes. Now it works.
Kind regards, André Sá
On Jun 11, 2014, at 10:05 AM, Johannes Morgenroth morgenroth@ibr.cs.tu-bs.de wrote:
Am 10.06.2014 18:23, schrieb André Sá:
Thank you for your answer Sebastian. I am using the (TCP) API Port. The JAVA API code uses the "protocol streaming" mode, whereas I am using the "protocol extended" mode. Is there any command I can use in protocol extended mode, to get bundles sent to a group EID?
As documented here... https://www.ibr.cs.tu-bs.de/projects/ibr-dtn/apidoc/0.12/api.pdf
Use "registration add" to subscribe to endpoints. This command also accepts group EIDs.
Regards, Johannes
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://mail.ibr.cs.tu-bs.de/listinfo/ibr-dtn.
participants (3)
-
André Sá
-
Johannes Morgenroth
-
Sebastian Schildt