Subject: [dtn-users] LTP Convergence Layer - Help needed!

From: Nik Ansell <[email-masked]>
Date: Thu, 3 Dec 2015 21:22:46 +0400

Hi,

I have successfully setup a 3 node UDPCL and TCPCL topology and am able to
send bundles OK.

Next I installed LTPLib and rebuilt DTN2, ensuring that ./configure found
the location of LTPlib OK.

I have updates the config files to use ltp, but for some reason no bundles
seem to be sent or queued!

If anyone could shed any light on a possible problem I will be forever in
their debt, as bundles just seem to disappear!

My testing so far has been starting dtnd on all 3 nodes, then running the
dtnsend command twice to send 2 test bundles from node 1 to node 3.
"dtnsend -s dtn://tx.dtn/a -d dtn://rx.dtn/g -t m -p "hello""

I run dtnrecv on node 3:
"dtnrecv dtn://rx.dtn/g -q -o F#####.bin"

"bundle list" on nodes 1,2&3" returns zero bundles, so none are in the
queue.
"bundle stats" on node 1 returns:

Bundle Statistics: 0 pending -- 0 custody -- -- bpq --  bpq -- 2 received
-- 0 delivered -- 0 generated -- 2 transmitted -- 0 expired -- 0 duplicate
-- 2 deleted -- 0 injected

"link dump link_ltp1" on node 1 returns:

Current link:

Link link_ltp1:

clayer: ltp

type: ALWAYSON

state: OPEN

deleted: false

nexthop: mx:4556

remote eid: dtn:none

mtu: 1400

min_retry_interval: 5

max_retry_interval: 600

idle_close_time: 0

potential_downtime: 30

prevhop_hdr: false

reincarnated: true

used in fwdlog: true

local_addr: 255.255.255.255 local_port: 4556

remote_addr: 10.0.0.2 remote_port: 4556

mtu: 1400

Red/Green balance: all red

ION mode: false

Config files:

Node1
interface add udp0 udp
interface add ltp0 ltp local_addr=$shorthostname

# Create link to MX
link add link_ltp1 mx:4556 ALWAYSON ltp mtu=1400 local_port=4556
remote_port=4556 remote_addr=10.0.0.2

# Add route to RX via MX
route add dtn://rx.dtn/* link_ltp1

Node2:
interface add udp0 udp
interface add ltp0 ltp local_addr=$shorthostname

# Create link to TX
link add link_ltp2 tx:4556 ALWAYSON ltp local_port=4556 remote_port=4556
mtu=1400 remote_addr=10.0.0.1

# Create link to RX
link add link_ltp3 rx:4556 ALWAYSON ltp local_port=4556 remote_port=4556
mtu=140 remote_addr=10.0.0.3

# Add route to TX
route add dtn://tx.dtn/* link_ltp2

# Add route to RX
route add dtn://rx.dtn/* link_ltp3

Node3:
interface add udp0 udp
interface add ltp0 ltp local_addr=$shorthostname

# Create link to MK
link add link_ltp1 mx:4556 ALWAYSON ltp local_port=4556 remote_port=4556
remote_addr=10.0.0.2

# Add route to TX via MX
route add dtn://tx.dtn/* link_ltp1

Kind Regards,
Nik

---

From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <[email-masked]>
Date: Thu, 3 Dec 2015 18:04:49 +0000

Hi Nik,
interface add ltp0 ltp local_addr=$shorthostname is probably listening on port 1113 by default and your LTP links are transmitting to port 4556.
I recommend changing the LTP links to use the IANA assigned port 1113. (The UDP interface is listening on 4556 by default).
Hope that gets you going,
DZ

From: dtn-users [mailto:[email-masked]] On Behalf Of Nik Ansell
Sent: Thursday, December 03, 2015 11:23 AM
To: [email-masked]
Subject: [dtn-users] LTP Convergence Layer - Help needed!

Hi,

I have successfully setup a 3 node UDPCL and TCPCL topology and am able to send bundles OK.

Next I installed LTPLib and rebuilt DTN2, ensuring that ./configure found the location of LTPlib OK.

I have updates the config files to use ltp, but for some reason no bundles seem to be sent or queued!

If anyone could shed any light on a possible problem I will be forever in their debt, as bundles just seem to disappear!

My testing so far has been starting dtnd on all 3 nodes, then running the dtnsend command twice to send 2 test bundles from node 1 to node 3.
"dtnsend -s dtn://tx.dtn/a -d dtn://rx.dtn/g -t m -p "hello""

I run dtnrecv on node 3:

"bundle list" on nodes 1,2&3" returns zero bundles, so none are in the queue.
"bundle stats" on node 1 returns:
Bundle Statistics: 0 pending -- 0 custody -- -- bpq --  bpq -- 2 received -- 0 delivered -- 0 generated -- 2 transmitted -- 0 expired -- 0 duplicate -- 2 deleted -- 0 injected
"link dump link_ltp1" on node 1 returns:
Current link:
Link link_ltp1:
clayer: ltp
type: ALWAYSON
state: OPEN
deleted: false
nexthop: mx:4556
remote eid: dtn:none
mtu: 1400
min_retry_interval: 5
max_retry_interval: 600
idle_close_time: 0
potential_downtime: 30
prevhop_hdr: false
reincarnated: true
used in fwdlog: true
            local_addr: 255.255.255.255 local_port: 4556
            remote_addr: 10.0.0.2 remote_port: 4556
            mtu: 1400
            Red/Green balance: all red
            ION mode: false

Config files:

Node1
interface add udp0 udp

#          Create link to MX
link add link_ltp1 mx:4556 ALWAYSON ltp mtu=1400 local_port=4556 remote_port=4556 remote_addr=10.0.0.2

#          Add route to RX via MX

Node2:
interface add udp0 udp

#          Create link to TX
link add link_ltp2 tx:4556 ALWAYSON ltp local_port=4556 remote_port=4556 mtu=1400 remote_addr=10.0.0.1

#          Create link to RX
link add link_ltp3 rx:4556 ALWAYSON ltp local_port=4556 remote_port=4556 mtu=140 remote_addr=10.0.0.3

#          Add route to TX

#          Add route to RX

Node3:
interface add udp0 udp

#          Create link to MK
link add link_ltp1 mx:4556 ALWAYSON ltp local_port=4556 remote_port=4556 remote_addr=10.0.0.2

#          Add route to TX via MX

Kind Regards,
Nik

---

From: Nik Ansell <[email-masked]>
Date: Thu, 3 Dec 2015 22:04:52 +0400

Slight update...

A wireshark capture on node 2, showed the LTP segments being sent from node
1 to node 2 then being cancelled (LTP Segment 60 Cancel segment", but
nothing being sent from node 2 to node 3....

I then tested a 2-node LTPCL topology and this worked OK.

I suspect this problem is something to do with the LTPlib "Router"
functionality not being fully implemented in DTN2. However if someone could
confirm or shed any more light on the subject, this would be helpful,
thanks.

Kind Regards,
Nik

---

From: Nik Ansell <[email-masked]>
Date: Thu, 3 Dec 2015 22:08:02 +0400

Hi David,

Thank you for your kind reply, you are 100% correct.
The very helpful "Interface list" command told me that it was indeed
listening on port 1113.  So I updated my config files to use port 1113 but
it still didn't work.

I did however manage to get a 2 node setup working using port 1113, as per
my previous update.

Do you know of any else I can do to troubleshoot the 3node setup?

Kind Regards,
Nik

On Thu, Dec 3, 2015 at 10:04 PM, Zoller, David A. (MSFC-EO50)[HOSC SERVICES
CONTRACT] <[email-masked]> wrote:

> Hi Nik,
>
> interface add ltp0 ltp local_addr=$shorthostname is probably listening on
> port 1113 by default and your LTP links are transmitting to port 4556.
>
> I recommend changing the LTP links to use the IANA assigned port 1113.
> (The UDP interface is listening on 4556 by default).
>
> *From:* dtn-users [mailto:[email-masked]] *On Behalf Of *Nik
> Ansell
> *Sent:* Thursday, December 03, 2015 11:23 AM
> *To:* [email-masked]
> *Subject:* [dtn-users] LTP Convergence Layer - Help needed!
>
>
>
> Hi,
>
>
>

---

From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <[email-masked]>
Date: Thu, 3 Dec 2015 18:39:19 +0000

Hi Nik,
It has been a good while since I worked with the LTPLib and I never tried a setup like your node2, but, your configs look reasonable to me.
I suggest getting the second 2 node setup from “2 to 3” (assuming you did the “1 to 2” connection) working standalone and then combine the #2 configs.
--
You can try removing the local port from the links – I think by default the LTPLib uses a dynamic port for each session and specifying it might interfere.

You also might try setting the option   ion_mode=true  on both the interface and link add statements to see if that changes the behavior. That kind of negates the dynamic port usage.
Best regards,
DZ

From: Nik Ansell [mailto:[email-masked]]
Sent: Thursday, December 03, 2015 12:08 PM
To: Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]
Cc: [email-masked]
Subject: Re: [dtn-users] LTP Convergence Layer - Help needed!

Hi David,

Thank you for your kind reply, you are 100% correct.
The very helpful "Interface list" command told me that it was indeed listening on port 1113.  So I updated my config files to use port 1113 but it still didn't work.

I did however manage to get a 2 node setup working using port 1113, as per my previous update.

Kind Regards,
Nik

On Thu, Dec 3, 2015 at 10:04 PM, Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT] <[email-masked]<mailto:[email-masked]>> wrote:
Hi Nik,
interface add ltp0 ltp local_addr=$shorthostname is probably listening on port 1113 by default and your LTP links are transmitting to port 4556.
I recommend changing the LTP links to use the IANA assigned port 1113. (The UDP interface is listening on 4556 by default).
Hope that gets you going,
DZ

From: dtn-users [mailto:[email-masked]<mailto:[email-masked]>] On Behalf Of Nik Ansell
Sent: Thursday, December 03, 2015 11:23 AM
To: [email-masked]<mailto:[email-masked]>
Subject: [dtn-users] LTP Convergence Layer - Help needed!

Hi,

I run dtnrecv on node 3:

Config files:

Node1
interface add udp0 udp

#          Create link to MX

#          Add route to RX via MX

Node2:
interface add udp0 udp

#          Create link to TX

#          Create link to RX

#          Add route to TX

#          Add route to RX

Node3:
interface add udp0 udp

#          Create link to MK

#          Add route to TX via MX

Kind Regards,
Nik

---

From: Nik Ansell <[email-masked]>
Date: Mon, 21 Dec 2015 23:52:18 +0400

Hello All,

After a break, I have restarted testing and noticed some strange behaviour
from LTPlib.
It will send one bundle, but then fail to send any further bundles.

After some investigation using wireshark, it appears to pick a random
source port, so when the receiving node sends an acknowledgement back, it
sends it to the source port, which fails to arrive because the sending node
is not listening on that port.
Does anyone have any idea how I can workaround this problem?
Interface and link statements from the config files are below.

I have tried without the local_port statements, but without this nothing
works. I have also tried with and without the ion_mode=true statements with
no success.
I have also attempted to add a udp interface, but this does not seem to
work either.

tx:
interface add ltp0 ltp local_addr=$shorthostname ion_mode=true
link add link_ltp_rx2node rx:1113 ALWAYSON ltp local_port=1113
remote_port=1113 mtu=1400 ion_mode=true

rx:
interface add ltp0 ltp local_addr=$shorthostname ion_mode=true
link add link_ltp_tx2node tx:1113 ALWAYSON ltp local_port=1113
remote_port=1113 mtu=1400 ion_mode=true

Any help will be very gratefully received!!

Kind Regards,
Nik

On Thu, Dec 3, 2015 at 10:39 PM, Zoller, David A. (MSFC-EO50)[HOSC SERVICES
CONTRACT] <[email-masked]> wrote:

> Hi Nik,
>
> It has been a good while since I worked with the LTPLib and I never tried
> a setup like your node2, but, your configs look reasonable to me.
>
> I suggest getting the second 2 node setup from “2 to 3” (assuming you did
> the “1 to 2” connection) working standalone and then combine the #2 configs.
>
> --
>
> You can try removing the local port from the links – I think by default
> the LTPLib uses a dynamic port for each session and specifying it might
> interfere.
>
>
>
> You also might try setting the option   ion_mode=true  on both the
> interface and link add statements to see if that changes the behavior. That
> kind of negates the dynamic port usage.
>
> Best regards,
>
> DZ
>
>
>
> *From:* Nik Ansell [mailto:[email-masked]]
> *Sent:* Thursday, December 03, 2015 12:08 PM
> *To:* Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]
> *Cc:* [email-masked]
> *Subject:* Re: [dtn-users] LTP Convergence Layer - Help needed!
>
>
>
> Hi David,
>
>
>
> On Thu, Dec 3, 2015 at 10:04 PM, Zoller, David A. (MSFC-EO50)[HOSC
> SERVICES CONTRACT] <[email-masked]> wrote:
>
> Hi Nik,
>