NGI Assure project: Layer-2-Overlay

Implementation details milestone 5


Testing Framework


TNG Service


  • Added nat reversal code to tcp communicator. Prepared udp communicator.
  • Added tcp icmp nat hole punching test case script, and fixed bugs occuring during shutdown.
    • src/transport/test_transport_nat_icmp_tcp.sh
  • Added performance test case.
    • src/transport/test_transport_plugin_cmd_simple_send_performance.c
    • src/transport/test_transport_simple_send_performance.sh
    • src/transport/test_transport_simple_send_performance_topo.conf
    • src/transport/transport_api_cmd_send_simple_performance.c
  • Fixed bug happening during check for pending validation requests after nat reversal.
  • Fixed bug of QueueEntry deleted too early.
  • Fixed bug about missing synchronisation between client and service queue in Transport Core API.
  • Fixed bug of not sending the changed window size, which takes into account the used and lost data.

Even more details in commits fc99f54070e04c043c14f2244f85833ecf6b00c4, 95a1edacccd9b3bf769a144a12d41946d0ac25dc and 247230d737e3e4709392148bfabbde25871b6914

Configuration

  • Added configuration to be able to start executables on a router node
    • contrib/netjail/netjail_core.sh
    • contrib/netjail/netjail_start.sh
    • contrib/netjail/topo.sh

src/transport/test_transport_nat_upnp_topo.confAdded topology file for nat upnp test case
contrib/netjail/netjail_start.shHanding over the global number of the router node to the script running on that node. (8e1bf27b11)

  • miniupnpd only works with public IP addresses. (c524f91a6)
    • contrib/netjail/netjail_start.sh
    • src/testing/gnunet-cmds-helper.c
    • src/testing/testing.c
  • Changed the format of the interface names to make miniupnpd happy. (4aec035ea)
    • contrib/netjail/netjail_core.sh
    • src/testing/testing_api_cmd_netjail_start_cmds_helper.c
  • Cleanup after scripts which were running on netjail nodes. (9d6ace0b9)
    • contrib/netjail/netjail_stop.sh

src/transport/test_transport_nat_icmp_tcp_topo.confAdded topology file for tcp icmp nat hole punching test case.

  • Added code to configure connection attempts to natted peers. (6de2cb8f7a)
    • src/testing/testing.c
    • src/transport/transport_api_cmd_connecting_peers.c
  • Added code in the netjail scripts to enable router nodes to forward icmp requests and response. (a21cb1820)
    • contrib/netjail/netjail_core.sh
    • contrib/netjail/netjail_start.sh

Performance Measurement

The outcome of the performance measurement was ~24 MByte/s for packets with size of 65000 bytes. To follow up on this measurement one has to get the mean time the packets of 65000 bytes needed to reach another peer, to calculate the data rate, by doing

grep "mean time traveled" 1b8b9ebe2_test.out|tail -1

on the log file 1b8b9ebe2_test.out of the performance test case. For this measurement the TNG layer was using tcp only, because there was an unfixed bug, if running tcp and udp in parallel.

API Documentation

Documentation of the new TNG Api.