Example Test Procedures
Sanity/Self Checks "aka: Talking to yourself"
The following code is based on the Example Node Configurations
Code:
#!/bin/env sh echo "Running Sanity Checks" bpdriver 100 dtn://user-laptop.dtn/temp dtn://user-laptop.dtn/echo 6000 bpsink dtn://user-laptop.dtn/store & sleep 1 echo "Hello" | bpsource dtn://user-laptop.dtn/store sleep 2 kill `pidof bpsink` dtnping -c 5 dtn://user-laptop.dtn/ping dtnping -c 5 dtn://unit017.dtn/ping dtnping -c 5 -e 1000000000 dtn://unit017.dtn/ping dtnrecv dtn://user-laptop.dtn/store & sleep 1 dtnsend -s dtn://user-laptop.dtn/temp -d dtn://user-laptop.dtn/store -t d dtnsend -s dtn://user-laptop.dtn/temp -d dtn://user-laptop.dtn/store -t m -p "Hello" sleep 2 kill `pidof dtnrecv`
OUTPUT
0 Stopping bpdriver. Time: 1 seconds. Data size: 600000 bytes in 100 bundles. Throughput: 600000 bytes per second. : : Stopping bpsource. source_eid [dtn://user-laptop.dtn/ping.3549] dtn_register succeeded, regid 24 PING [dtn://user-laptop.dtn/ping] (expiration 30)... 20 bytes from [dtn://user-laptop.dtn/ping]: 'dtnping!' seqno=0, time=16 ms 20 bytes from [dtn://user-laptop.dtn/ping]: 'dtnping!' seqno=1, time=11 ms 20 bytes from [dtn://user-laptop.dtn/ping]: 'dtnping!' seqno=2, time=4 ms 20 bytes from [dtn://user-laptop.dtn/ping]: 'dtnping!' seqno=3, time=3 ms 20 bytes from [dtn://user-laptop.dtn/ping]: 'dtnping!' seqno=4, time=4 ms source_eid [dtn://user-laptop.dtn/ping.3551] dtn_register succeeded, regid 25 PING [dtn://unit017.dtn/ping] (expiration 30)... bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=0, time=30007 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=1, time=30005 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=2, time=30004 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=3, time=30005 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=4, time=30003 ms source_eid [dtn://user-laptop.dtn/ping.3804] dtn_register succeeded, regid 26 PING [dtn://unit017.dtn/ping] (expiration 1000000000)... bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=0, time=1 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=1, time=4 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=2, time=4 ms bundle deleted at [dtn://user-laptop.dtn] (lifetime expired): seqno=3, time=4 ms error getting ping reply: -1 (invalid argument) dtnrecv (pid 3807) starting up find registration succeeded, regid 0 register succeeded, regid 27 looping forever to receive bundles dtn_recv [dtn://user-laptop.dtn/store]... 0 extension blocks from [dtn://user-laptop.dtn/temp]: transit time=0 ms 0 metadata blocks from [dtn://user-laptop.dtn/temp]: transit time=0 ms 25 payload bytes from [dtn://user-laptop.dtn/temp]: transit time=0 ms 0000000 5475 6520 4a75 6c20 3238 2031 323a 3130 | Tue Jul 28 12:10 0000010 3a31 3420 3230 3039 0a | :14 2009. dtn_recv [dtn://user-laptop.dtn/store]... 0 extension blocks from [dtn://user-laptop.dtn/temp]: transit time=0 ms 0 metadata blocks from [dtn://user-laptop.dtn/temp]: transit time=0 ms 5 payload bytes from [dtn://user-laptop.dtn/temp]: transit time=0 ms 0000000 4865 6c6c 6f | Hello dtn_recv [dtn://user-laptop.dtn/store]...
Implementation Test Procedures
ION -> ION
- Use bpsource and bpsink
$ echo "Hello World from GRC at" `date` | bpsource "dtn://aplsci.dtn/a"
: : Stopping bpsource.
$
$ bpsink "dtn://aplsci.dtn/a"
ION event: Payload delivered.
payload length is 51.
'Hello World from GRC at Fri May 8 16:45:56 EDT 2009'
ION event: Reception interrupted.
- Use bpecho and bpdriver
$ # We previously ran bpecho $ # bpecho "dtn://apl.dtn/echo" & $ $ bpdriver 10 "dtn://apl.dtn/a" "dtn://apl.dtn/echo" 1500 ..........0 Stopping bpdriver. Time: 0 seconds. Data size: 15000 bytes in 10 bundles. Interval is too short to measure rate.
DTN2 -> DTN2
- Use dtnsend and dtnrecv
$ dtnsend -s "dtn://msfc.dtn/b" -d "dtn://msfc.dtn/a" -t m -p "Hello World" $ $ dtnrecv "dtn://msfc.dtn/a" dtnrecv (pid 26303) starting up find registration succeeded, regid 0 register succeeded, regid 12 looping forever to receive bundles dtn_recv [dtn://msfc.dtn/a]... 0 extension blocks from [dtn://msfc.dtn/b]: transit time=0 ms 0 metadata blocks from [dtn://msfc.dtn/b]: transit time=0 ms 11 payload bytes from [dtn://msfc.dtn/b]: transit time=0 ms 0000000 4865 6c6c 6f20 576f 726c 64 | Hello World dtn_recv [dtn://msfc.dtn/a]...
- Use dtnping
$ dtnping "dtn://msfc.dtn/ping" source_eid [dtn://msfc.dtn/ping.26307] dtn_register succeeded, regid 13 PING [dtn://msfc.dtn/ping] (expiration 30)... 20 bytes from [dtn://msfc.dtn/ping]: 'dtnping!' seqno=0, time=45 ms 20 bytes from [dtn://msfc.dtn/ping]: 'dtnping!' seqno=1, time=168 ms 20 bytes from [dtn://msfc.dtn/ping]: 'dtnping!' seqno=2, time=98 ms 20 bytes from [dtn://msfc.dtn/ping]: 'dtnping!' seqno=3, time=139 ms
DTN2 -> ION
On the sending DTN2 node:
dtnsend -s "dtn://msfc.dtn/a" -d "dtn://aplsci.dtn/a" -t m -p "Hello World"
On the receiving ION node:
$ bpsink "dtn://aplsci.dtn/a"
ION event: Payload delivered.
payload length is 11.
'Hello World'
ION -> DTN2
On the sending ION node:
echo "Hello World" | bpsource "dtn://msfc.dtn/a"
On the receiving DTN2 node:
$ dtnrecv "dtn://msfc.dtn/a" dtnrecv (pid 26295) starting up find registration succeeded, regid 0 register succeeded, regid 11 looping forever to receive bundles dtn_recv [dtn://msfc.dtn/a]... 0 extension blocks from [dtn:none]: transit time=0 ms 0 metadata blocks from [dtn:none]: transit time=0 ms 11 payload bytes from [dtn:none]: transit time=0 ms 0000000 4865 6c6c 6f20 576f 726c 64 | Hello World dtn_recv [dtn://msfc.dtn/a]...