NGI Assure project: Layer-2-Overlay
Implementation details milestone 5
Testing Framework
- Added so called barrier functionality, which is a set of commands to easy implement a barrier. A barrier is some point in time during execution of a test which if reached can trigger some action. For details have a look into commits 34e1c58cb39a649c9a4c551681cedf19807b85f0, ba4d141be09651b452270fc21f062d50bd3f738a and 2c2b2911e1585dc378dbb88d4dd6aaec37b00316.
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.conf | Added topology file for nat upnp test case |
contrib/netjail/netjail_start.sh | Handing 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.conf | Added 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.