doc: Add some more details on interop. testing

Signed-off-by: Felix Walter <felix.walter@d3tn.com>
This commit is contained in:
Felix Walter 2026-04-21 10:39:59 +02:00
parent c4e2a837a3
commit d44ed9ec9c

View file

@ -97,11 +97,15 @@ make integration-test
The integration tests can also be run against µD3TN combined with the compatible external BDM. This is achieved by specifying the `-d, --external-dispatch` command line argument when invoking µD3TN and starting the BDM service additionally via `aap2-bdm-ud3tn-routing --insecure-config` (inside the Python virtual environment). The `--insecure-config` flag is necessary as some integration tests inject configuration commands as if they were received from an external source.
## Interoperability Tests
## ION Interoperability Tests
µD3TN ships with simple interoperability test scenarios that validate BPv6 and BPv7 interoperability with JPL's ION and are described in the following subsections.
At the end of this section, some hints on doing manual interoperability tests are provided.
!!! note "Interoperability tests with other implementations"
µD3TN also ships with interoperability test scripts interacting with [HDTN](https://gitlab.com/d3tn/ud3tn/-/blob/master/test/run_hdtn_test.sh) and [DTN7-rs](https://gitlab.com/d3tn/ud3tn/-/tree/master/test/dtn7_interoperability), plus corresponding [Docker images](https://gitlab.com/d3tn/ud3tn-docker-images/container_registry). The usage of these scripts and images is equivalent to the ION tests described below.
### Prerequisites
All tests expect an environment with ION and µD3TN (incl. Python dependencies) installed. There are two options to set up all requirements:
@ -143,7 +147,7 @@ All tests expect an environment with ION and µD3TN (incl. Python dependencies)
This test, provided in [`test/ion_interoperability/minimal_forwarding_test`](https://gitlab.com/d3tn/ud3tn/-/blob/master/test/ion_interoperability/minimal_forwarding_test), checks the following aspects:
- forwarding bundles from µD3TN to another instance of µD3TN via an ION instance
- forwarding bundles from µD3TN to another instance of µD3TN via an ION instance using TCPCL
- receiving bundles sent by ION (via `bpsource`) in µD3TN (via `aap-receive`)
- receiving bundles sent by µD3TN (via `aap-send`) in ION (via `bprecvfile`)
@ -160,6 +164,12 @@ When invoked, the script will start ION (via `ionstart -I`) and two µD3TN insta
The ION configuration (`rc`) files can be found in the same directory as `run.sh`, for the `dtn` and `ipn` EID schemes, respectively.
On completion, ION will be shut down using `ionstop` and the µD3TN instances will receive a `SIGTERM`.
### MTCP Minimal Forwarding Test
This test is equivalent to the "Minimal Forwarding Test", but uses the MTCP (ION: STCP) convergence layer. It is located in [`test/ion_interoperability/mtcp_minimal_forwarding_test`](https://gitlab.com/d3tn/ud3tn/-/blob/master/test/ion_interoperability/mtcp_minimal_forwarding_test).
**Note:** To be compatible with ION's STCP (Simple TCP) convergence layer, which implements an earlier version of the MTCP draft, pass the following argument to `make` when building µD3TN: `CFLAGS=-DCLA_MTCP_ION_STCP_COMPATIBILITY=1` (or set this in `config.mk`)
### BIBE Interoperability Test
A second test script checks whether forwarding of a bundle encapsulated using [BIBE](https://datatracker.ietf.org/doc/draft-ietf-dtn-bibect/) works via ION, to validate µD3TN's [BIBE implementation](./Bundle-in-Bundle%20Encapsulation_(BIBE).md).