Subject: Re: [dtn-users] ION-DTN interoperability issue

From: "Yang, Yueli" <[email-masked]>
Date: Wed, 1 Oct 2014 23:51:24 +0000

Thanks to DZ, resend to all this time.

From: Yang, Yueli [mailto:[email-masked]]
Sent: Wednesday, October 01, 2014 2:36 AM
To: Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]
Subject: RE: [dtn-users] ION-DTN interoperability issue

Hi Somreeta:

We recently successfully validated ION-DTN interoperability with the attached configuration files.

We have two hosts, both running ubuntu 14.04:
"tango" running ION-3.2.1 with the attached tangoion.rc file.
"ballet" running DTN-2.9.0 with the attached balletdtn2.conf file.

Hope this helps your debug of sending from ION node to DTN2 node.

Yueli Yang
Boeing Research & Technology
Seattle DC 9-08.4, 4D13-1.2, MC: 4C-78
Phone - 425-373-7132, FAX: 206-544-6757

From: dtn-users [mailto:[email-masked]] On Behalf Of Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]
Sent: Tuesday, September 30, 2014 9:57 AM
To: Somreeta Pramanik; .
Subject: Re: [dtn-users] ION-DTN interoperability issue

Hello Somreeta,

The ION node is including a Previous Hop Insertion Block (RFC-6259  - Block type 0x05) which the DTN2 node is having a problem parsing.

somreeta dtn% [1411747528.640888 /dtn/bundle/protocol error] error parsing previous hop eid 'dtn://somreetadtn.dtn

[1411747528.640911 /dtn/bundle/protocol error] consume: protocol error handling block 0x5

[1411747528.640922 /dtn/cl/tcp/conn/0x7f7268000940 error] protocol error parsing bundle data segment

The EID looks acceptable to me (dtn://somreetadtn.dtn). You might try turning on debug level logging to see if it provides more info. You may find a problem down in the oasys::URI parsing methods.

Good luck,

DZ

-----Original Message-----
From: dtn-users [mailto:[email-masked]] On Behalf Of Somreeta Pramanik
Sent: Monday, September 29, 2014 1:42 AM
To: .
Subject: [dtn-users] ION-DTN interoperability issue

Dear all,

I am trying with ION-DTN interoperability (DTN daemon is running in one machine and ION is in another one), the message communication from DTN node to ION node is working but the reverse i.e.; message communication from ION node to DTN is not working. Here is the output I am getting and the details of dtn.conf and ion-host.rc.

When I am running dtn

somreeta@somreeta:~/test-bed/dtn-2.9.0$<mailto:somreeta@somreeta:~/test-bed/dtn-2.9.0$> sudo daemon/dtnd -c /home/somreeta/dtn/dtn.conf --init-db [sudo] password for somreeta:

[1411747392.946016 /dtnd notice] random seed is 946013

[1411747392.946071 /dtnd notice] DTN daemon starting up... (pid 2901)

[1411747392.950714 /dtnd notice] initializing persistent data store

[1411747392.982307 /dtnd error] Initializing datastore which already exists.

somreeta@somreeta:~/test-bed/dtn-2.9.0$<mailto:somreeta@somreeta:~/test-bed/dtn-2.9.0$> sudo daemon/dtnd -c /home/somreeta/dtn/dtn.conf

[1411747396.944362 /dtnd notice] random seed is 944360

[1411747396.944403 /dtnd notice] DTN daemon starting up... (pid 2904)

[1411747396.961645 /S10 notice] Lines marked "S10" are log lines added to make parsing

[1411747396.961679 /S10 notice] the logs easier after extended tests. These were added for

[1411747396.961695 /S10 notice] the summer 2010 N4C summer trial and are mainly new lines

[1411747396.961709 /S10 notice] that allow tracing bundles across multiple hops.

[1411747396.961724 /S10 notice] To extract these do the following...

[1411747396.961738 /S10 notice] grep "S10 info" <dtnd-log-files> | grep -v grep | awk '{print $4,$5}' | sort -n

[1411747396.962772 /dtn/bundle/daemon notice] loading bundles from data store

somreeta dtn%

somreeta dtn% [1411747528.640888 /dtn/bundle/protocol error] error parsing previous hop eid 'dtn://somreetadtn.dtn

[1411747528.640911 /dtn/bundle/protocol error] consume: protocol error handling block 0x5

[1411747528.640922 /dtn/cl/tcp/conn/0x7f7268000940 error] protocol error parsing bundle data segment

The configuration for ION is as follows ## begin ionadmin # Initialization command

1 1 ""

# Start ION

s

# Add contacts (1-2 connected for 1 hr, 100 kbps) a contact +1 +3600 1 1 100000 a contact +1 +3600 1 2 100000 a contact +1 +3600 2 1 100000 a contact +1 +3600 2 2 100000 # Assign ranges (for the next hour, 1 second or less OWLT) a range +1 +3600 1 1 1 a range +1 +3600 1 2 1 a range +1 +3600 2 2 1

# Assign production/consumption rates (dummy) m production 100000 m consumption 100000 ## end ionadmin

## begin bpadmin

1

# Add scheme (DTN w/EIDs)

a scheme dtn 'dtn2fw' 'dtn2adminep'

# the scheme will use the "gethostname" command and # automatically create the custodian eid dtn://<hostname>.dtn # NOTE: in this situation, the host was named host1. your # configuration will be different.

# Alert ION which endpoints are on this host a endpoint dtn://somreetadtn.dtn/sink q #a endpoint dtn://ION2.dtn/ping q # add the tcp convergence layer and outducts # note that your IPs will be different a protocol tcp 1400 100 a induct tcp 10.1.1.2:4555 tcpcli #loopback outduct a outduct tcp 10.1.1.2:4555 tcpclo # outduct to dtn2 node a outduct tcp 10.1.1.4:4557 tcpclo s # start daemons ## end bpadmin

## begin ipnadmin

# this may not be necessary

a plan 1 tcp/ 10.1.1.2:4555

a plan 2 tcp/ 10.1.1.4:4557

## end ipnadmin

## begin dtn2admin

# note that the "dtn:" is omitted from the routing plans.

a plan //somreeta.dtn x tcp/ 10.1.1.4:4557 #a plan //ION2.dtn x tcp/ 10.1.1.2:4555

# plans support an * character as a wildcard.

# a default route would look like this

# a plan //* f dtn://dtn2box.dtn

# this will use dtn2box.dtn as the "next hop"

## end dtn2admin

The configuration for DTN is as follows

##

# dtn.conf

#

# Default configuration file for Internet-connected DTN nodes. The # daemon uses a tcl interpreter to parse this file, thus any standard # tcl commands are valid, and all settings are get/set using a single # 'set' functions as: <module> set <var> <val?> #

log /dtnd info "dtnd parsing configuration..."

########################################

#

# Daemon Console Configuration

#

########################################

#

# console set stdio [ true | false ]

#

# If set to false, disable the interactive console on stdin/stdout.

# The default is set to true (unless the dtnd process is run as a # daemon).

#

# console set stdio false

#

# console set addr <port>

# console set port <port>

#

# Settings for the socket based console protocol.

# (this interprets user commands)

#

console set addr 127.0.0.1

console set port 5050

#

# console set prompt <prompt>

#

# Set the prompt string. Helps if running multiple dtnd's # set shorthostname [lindex [split [info hostname] .] 0] console set prompt "$shorthostname dtn% "

########################################

#

# Storage Configuration

#

########################################

#

# storage set type [ berkeleydb | external | memorydb ] # # Set the storage system to be used # storage set type berkeleydb

# the following are for use with external data stores # # The server port to connect to (on localhost) # Note that 62345 has no special significance -- chosen randomly storage set server_port 62345

# The external data store schema location, which can be # found in dtn2/oasys/storage/DS.xsd.

storage set schema /etc/DS.xsd

#

# Do a runtime check for the standard locations for the persistent

# storage directory

#

set dbdir "/home/somreeta/dtn"

foreach dir {/var/dtn /var/tmp/dtn} {

if {[file isdirectory $dir]} {

set dbdir $dir

break

}

}

if {$dbdir == ""} {

puts stderr "Must create /var/dtn or /var/tmp/dtn storage directory"

exit 1

}

#

# storage set payloaddir <dir>

#

# Set the directory to be used for bundle payload files

#

storage set payloaddir $dbdir/bundles

#

# storage set dbname <db>

#

# Set the database name (appended with .db as the filename in berkeley

# db, used as-is for SQL variants

#

storage set dbname DTN

#

# storage set dbdir <dir>

#

#

# When using berkeley db, set the directory to be used for the

# database files and the name of the files and error log.

#

storage set dbdir $dbdir/db

########################################

#

# Routing configuration

#

########################################

#

# Set the algorithm used for dtn routing.

#

# route set type [static | flood | neighborhood | linkstate | external]

#

route set type static

#

# route local_eid <eid>

#

# Set the local administrative id of this node. The default just uses

# the internet hostname plus the appended string ".dtn" to make it

# clear that the hostname isn't really used for DNS lookups.

#

route local_eid "dtn://somreeta.dtn"

#

# External router specific options

#

# route set server_port 8001

# route set hello_interval 30

# route set schema "/etc/router.xsd"

########################################

#

# TCP convergence layer configuration

#

########################################

#

# interface add [name] [CL]

#

# Add an input interface to listen on addr:port for incoming bundles

# from other tcp / udp convergence layers

#

# For IP-based interfaces, interfaces listen on INADDR_ANY port 4556

# by default. These can be overridden by using the local_addr and/or

# local_port arguments.

interface add tcp0 tcp local_port=4557

#interface add udp0 udp

#

# link add <name> <nexthop> <type> <clayer> <args...>

#

# Add a link to a peer node.

#

# For IP-based links (tcp or udp), the nexthop should contain a DNS

# hostname or IP address, followed optionally by a : and a port. If

# the port is not specified, the default of 4556 is used.

#

# e.g. link add link1 dtn.dtnrg.org ONDEMAND tcp

link add link_tcp37 10.1.1.2:4555 ALWAYSON tcp

#

# route add <dest> <link|peer>

#

# Add a route to the given bundle endpoint id pattern <dest> using the

# specified link name or peer endpoint.

#

# e.g. route add dtn://host.domain/* tcp0

route add dtn://somreetadtn.dtn/* link_tcp37

########################################

#

# Service discovery

#

########################################

#

# discovery add <name> <af> <opts...>

# discovery announce <cl_name> <discovery_name> <cl_type> <opts...>

#

# Add a local neighborhood discovery module

#

# e.g. discovery add discovery_bonjour bonjour

########################################

#

# Parameter Tuning

#

########################################

#

# Set the size threshold for the daemon so any bundles smaller than this

# size maintain a shadow copy in memory to minimize disk accesses.

#

# param set payload_mem_threshold 16384

#

# Test option to keep all bundle files in the filesystem, even after the

# bundle is no longer present at the daemon.

#

# param set payload_test_no_remove true

#

# Set the size for which the tcp convergence layer sends partial reception

# acknowledgements. Used with reactive fragmentation

#

# param set tcpcl_partial_ack_len 4096

#

# Set if bundles are automatically deleted after transmission

#

# param set early_deletion true

# (others exist but are not fully represented here)

########################################

#

# Extension Block Configuration

#

########################################

#

# Attach an Age Extension Block to outgoing bundles

#

# block set age_outbound_enabled false

#

# Process the Age Extension Block on incoming bundles

#

# block set age_inbound_processing true

#

# Zero out the Creation Timestamp Time on bundles

#

# block set age_zero_creation_ts_time false

########################################

#

# BPQ caching control

#

########################################

#

# Turn on caching of passing bundles with BPQ blocks

#

# bpq enable

#

log /dtnd info "dtnd configuration parsing complete"

## emacs settings to use tcl-mode by default

## Local Variables: ***

## mode:tcl ***

## End: ***

Pls help so that I can make communication from ION to DTN machine.

Thanks and Regards, Somreeta Pramanik

MS Scholar

IIT Kharagpur

_______________________________________________

dtn-users mailing list

[email-masked]<mailto:[email-masked]>

https://www.irtf.org/mailman/listinfo/dtn-users