gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[www] branch master updated: add 0.16 news!


From: gnunet
Subject: [www] branch master updated: add 0.16 news!
Date: Sat, 26 Feb 2022 15:21:15 +0100

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository www.

The following commit(s) were added to refs/heads/master by this push:
     new f843324  add 0.16 news!
f843324 is described below

commit f84332478fe0dcd7a52798b023f0c550305cde4a
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Sat Feb 26 15:21:06 2022 +0100

    add 0.16 news!
---
 locale/ar/LC_MESSAGES/messages.po      | 596 ++++++++++++++++++++++++++++++-
 locale/de/LC_MESSAGES/messages.po      | 624 +++++++++++++++++++++++++++++++-
 locale/es/LC_MESSAGES/messages.po      | 630 ++++++++++++++++++++++++++++++++-
 locale/fr/LC_MESSAGES/messages.po      | 618 +++++++++++++++++++++++++++++++-
 locale/hi/LC_MESSAGES/messages.po      | 598 ++++++++++++++++++++++++++++++-
 locale/it/LC_MESSAGES/messages.po      | 618 +++++++++++++++++++++++++++++++-
 locale/ja/LC_MESSAGES/messages.po      | 630 ++++++++++++++++++++++++++++++++-
 locale/ko/LC_MESSAGES/messages.po      | 598 ++++++++++++++++++++++++++++++-
 locale/messages.pot                    | 625 +++++++++++++++++++++++++++++++-
 locale/pt/LC_MESSAGES/messages.po      | 594 ++++++++++++++++++++++++++++++-
 locale/zh_Hant/LC_MESSAGES/messages.po | 620 +++++++++++++++++++++++++++++++-
 template/news/2022-02-0.16.0.html.j2   |  80 +++++
 www.yml                                |   3 +
 13 files changed, 6713 insertions(+), 121 deletions(-)

diff --git a/locale/ar/LC_MESSAGES/messages.po 
b/locale/ar/LC_MESSAGES/messages.po
index 75ad3f1..39e4853 100644
--- a/locale/ar/LC_MESSAGES/messages.po
+++ b/locale/ar/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-05-21 14:59+0000\n"
 "Last-Translator: Shorouk Hassouna <shoroukhassuna@gmail.com>\n"
 "Language-Team: Arabic <http://weblate.taler.net/projects/gnunet/website/ar/";
@@ -446,15 +446,15 @@ msgid ""
 msgstr ""
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
+msgid "Messenger-GTK"
 msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
 
 #: template/applications.html.j2:180
@@ -2719,7 +2719,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 msgid "Configuration"
 msgstr ""
 
@@ -2910,6 +2911,587 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Documentation"
+msgid "Project motivation"
+msgstr "التوثيق"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+msgid "Topology Configuration"
+msgstr ""
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "ارشيف الاخبار:"
diff --git a/locale/de/LC_MESSAGES/messages.po 
b/locale/de/LC_MESSAGES/messages.po
index 709b133..a6b47a4 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-08-30 19:06+0000\n"
 "Last-Translator: Stefan <eintritt@hotmail.com>\n"
 "Language-Team: German <http://weblate.taler.net/projects/gnunet/website/de/";
@@ -542,21 +542,16 @@ msgstr ""
 "Prüfung von Schlüsseln einsetzen."
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
-msgstr "Cadet-GTK"
+msgid "Messenger-GTK"
+msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> ist "
-"eine praktische, aber funktionsreiche grafische Anwendung, die "
-"Nachrichtenübermittlung unter Verwendung des CADET-Subsystem ermöglicht. Es "
-"wurde unter Verwendung von GTK und libhandy für eine konvergente Gestaltung "
-"entwickelt."
 
 #: template/applications.html.j2:180
 msgid "groupchat"
@@ -3870,7 +3865,8 @@ msgstr "Tutorial: GNUnet auf NetBSD 8.0 CURRENT"
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr "Tutorial: GNUnet auf OpenWrt"
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 msgid "Configuration"
 msgstr "Konfiguration"
 
@@ -4121,6 +4117,593 @@ msgstr "Oh mein Gott, ihr habt mir mein Internet kaputt 
gemacht"
 msgid "Videos related to GNUnet"
 msgstr "Videos zu GNUnet"
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Motivation"
+msgid "Project motivation"
+msgstr "Motivation"
+
+#: template/l2o/index.html.j2:13
+#, fuzzy
+#| msgid "GNUnet is a framework"
+msgid "New Test Framework"
+msgstr "GNUnet ist ein Rahmen"
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+#, fuzzy
+#| msgid "GNUnet is a framework"
+msgid "New Test Framwork"
+msgstr "GNUnet ist ein Rahmen"
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Configuration"
+msgid "Topology Configuration"
+msgstr "Konfiguration"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "Nachrichten-Archive"
@@ -4275,6 +4858,21 @@ msgstr ""
 "alle Attribute zu entschlüsseln, zu denen der Nutzer ihm Zugang mittels des "
 "zugehörigen Schlüssels eingeräumt hat."
 
+#~ msgid "Cadet-GTK"
+#~ msgstr "Cadet-GTK"
+
+#~ msgid ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "is a convenient but feature-rich graphical application providing "
+#~ "messaging using the CADET subsystem. It is developed using GTK and "
+#~ "libhandy for a convergent design."
+#~ msgstr ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "ist eine praktische, aber funktionsreiche grafische Anwendung, die "
+#~ "Nachrichtenübermittlung unter Verwendung des CADET-Subsystem ermöglicht. "
+#~ "Es wurde unter Verwendung von GTK und libhandy für eine konvergente "
+#~ "Gestaltung entwickelt."
+
 #~ msgid "The IRC channel"
 #~ msgstr "Der IRC Kanal"
 
diff --git a/locale/es/LC_MESSAGES/messages.po 
b/locale/es/LC_MESSAGES/messages.po
index b55a261..20945ed 100644
--- a/locale/es/LC_MESSAGES/messages.po
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-06-09 05:22+0000\n"
 "Last-Translator: Samira Tamboura <samiratg8@hotmail.com>\n"
 "Language-Team: Spanish <http://weblate.taler.net/projects/gnunet/website/es/";
@@ -555,26 +555,16 @@ msgstr ""
 "verificar claves."
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
-msgstr "Cadet-GTK"
+msgid "Messenger-GTK"
+msgstr ""
 
 #: template/applications.html.j2:162
-#, fuzzy
-#| msgid ""
-#| "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
-#| "is a convenient but feature-rich graphical application providing "
-#| "messaging using especially the CADET subsystem. It is developed using GTK "
-#| "and libhandy for a convergent design."
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a>es "
-"una sencilla aplicación gráfica con abundantes herramientas, que ofrece un "
-"servicio de mensajería usando principalmente el subsistema CADET. Es "
-"desarrollado con GTK y libhandy para un diseño convergente."
 
 #: template/applications.html.j2:180
 #, fuzzy
@@ -3567,7 +3557,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3766,6 +3757,589 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Documentation"
+msgid "Project motivation"
+msgstr "Documentación"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Continuous Integration"
+msgid "Topology Configuration"
+msgstr "Integración continua"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "Archivo IRC:"
@@ -3916,6 +4490,26 @@ msgstr ""
 "directorio descentralizado. Puede desencriptar todos esos atributos que el "
 "usuario le ha autorizado a acceder utilizando la clave respectiva."
 
+#~ msgid "Cadet-GTK"
+#~ msgstr "Cadet-GTK"
+
+#, fuzzy
+#~| msgid ""
+#~| "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~| "is a convenient but feature-rich graphical application providing "
+#~| "messaging using especially the CADET subsystem. It is developed using "
+#~| "GTK and libhandy for a convergent design."
+#~ msgid ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "is a convenient but feature-rich graphical application providing "
+#~ "messaging using the CADET subsystem. It is developed using GTK and "
+#~ "libhandy for a convergent design."
+#~ msgstr ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a>es "
+#~ "una sencilla aplicación gráfica con abundantes herramientas, que ofrece "
+#~ "un servicio de mensajería usando principalmente el subsistema CADET. Es "
+#~ "desarrollado con GTK y libhandy para un diseño convergente."
+
 #~ msgid "The IRC channel"
 #~ msgstr "El canal IRC"
 
diff --git a/locale/fr/LC_MESSAGES/messages.po 
b/locale/fr/LC_MESSAGES/messages.po
index 93f11b3..97f0a5b 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-09-28 14:59+0000\n"
 "Last-Translator: Axelle Dimpre <axelle.dimpre@gmail.com>\n"
 "Language-Team: French <http://weblate.taler.net/projects/gnunet/website/fr/";
@@ -541,20 +541,16 @@ msgstr ""
 "protocoles cryptographiques pour vérifier les clés."
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
-msgstr "Cadet-GTK"
+msgid "Messenger-GTK"
+msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> est "
-"une interface graphique modeste mais riche en caractéristiques qui fournit "
-"des services de messagerie en utilisant notamment le sous-système CADET. Il "
-"est développé avec GTK et libhandy pour un design cohérent."
 
 #: template/applications.html.j2:180
 msgid "groupchat"
@@ -2980,7 +2976,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3178,6 +3175,589 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr "Vidéos en lien avec GNUnet"
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Documentation"
+msgid "Project motivation"
+msgstr "Documentation"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Continuous Integration"
+msgid "Topology Configuration"
+msgstr "Intégration continue"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "Archives des actualités :"
@@ -3302,6 +3882,20 @@ msgid ""
 "authorized it to access using the respective key."
 msgstr ""
 
+#~ msgid "Cadet-GTK"
+#~ msgstr "Cadet-GTK"
+
+#~ msgid ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "is a convenient but feature-rich graphical application providing "
+#~ "messaging using the CADET subsystem. It is developed using GTK and "
+#~ "libhandy for a convergent design."
+#~ msgstr ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "est une interface graphique modeste mais riche en caractéristiques qui "
+#~ "fournit des services de messagerie en utilisant notamment le sous-système "
+#~ "CADET. Il est développé avec GTK et libhandy pour un design cohérent."
+
 #~ msgid "The IRC channel"
 #~ msgstr "La chaîne IRC"
 
diff --git a/locale/hi/LC_MESSAGES/messages.po 
b/locale/hi/LC_MESSAGES/messages.po
index 14b963b..6284af6 100644
--- a/locale/hi/LC_MESSAGES/messages.po
+++ b/locale/hi/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-03-09 18:35+0000\n"
 "Last-Translator: Jigisha Sharma <jigishas38@gmail.com>\n"
 "Language-Team: Hindi <http://weblate.taler.net/projects/gnunet/website/hi/>\n"
@@ -431,15 +431,15 @@ msgid ""
 msgstr ""
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
+msgid "Messenger-GTK"
 msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
 
 #: template/applications.html.j2:180
@@ -2714,7 +2714,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -2907,6 +2908,589 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Documentation"
+msgid "Project motivation"
+msgstr "प्रलेखन"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Continuous Integration"
+msgid "Topology Configuration"
+msgstr "लगातार एकीकरण"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "समाचार पुरालेख:"
diff --git a/locale/it/LC_MESSAGES/messages.po 
b/locale/it/LC_MESSAGES/messages.po
index 65198d6..511b67d 100644
--- a/locale/it/LC_MESSAGES/messages.po
+++ b/locale/it/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-06-19 12:58+0000\n"
 "Last-Translator: Francesca Cipriani <cesca.cipriani@gmail.com>\n"
 "Language-Team: Italian <http://weblate.taler.net/projects/gnunet/website/it/";
@@ -543,20 +543,16 @@ msgstr ""
 "crittografati per verificare le chiavi."
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
-msgstr "Cadet-GTK"
+msgid "Messenger-GTK"
+msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> è "
-"un'applicazione grafica conveniente ma allo stesso tempo ricca di "
-"funzionalità che fornisce messaggistica utilizzando il sottosistema CADET. È "
-"sviluppata con GTK e libhandy per un design convergente."
 
 #: template/applications.html.j2:180
 msgid "groupchat"
@@ -3550,7 +3546,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3749,6 +3746,589 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Motivation"
+msgid "Project motivation"
+msgstr "Motivazione"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Continuous Integration"
+msgid "Topology Configuration"
+msgstr "Integrazione continuativa"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "Archivi delle notizie:"
@@ -3871,6 +4451,20 @@ msgid ""
 "authorized it to access using the respective key."
 msgstr ""
 
+#~ msgid "Cadet-GTK"
+#~ msgstr "Cadet-GTK"
+
+#~ msgid ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "is a convenient but feature-rich graphical application providing "
+#~ "messaging using the CADET subsystem. It is developed using GTK and "
+#~ "libhandy for a convergent design."
+#~ msgstr ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> è "
+#~ "un'applicazione grafica conveniente ma allo stesso tempo ricca di "
+#~ "funzionalità che fornisce messaggistica utilizzando il sottosistema "
+#~ "CADET. È sviluppata con GTK e libhandy per un design convergente."
+
 #~ msgid "The IRC channel"
 #~ msgstr "Canale IRC"
 
diff --git a/locale/ja/LC_MESSAGES/messages.po 
b/locale/ja/LC_MESSAGES/messages.po
index 93287d1..b1605af 100644
--- a/locale/ja/LC_MESSAGES/messages.po
+++ b/locale/ja/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-04-15 10:31+0000\n"
 "Last-Translator: Kanoko Kondo <yves0625@gmail.com>\n"
 "Language-Team: Japanese <http://weblate.taler.net/projects/gnunet/website/ja/";
@@ -529,26 +529,16 @@ msgstr ""
 "し、新たな暗号化プロトコルで鍵を検証します。"
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
-msgstr "Cadet-GTK"
+msgid "Messenger-GTK"
+msgstr ""
 
 #: template/applications.html.j2:162
-#, fuzzy
-#| msgid ""
-#| "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
-#| "is a convenient but feature-rich graphical application providing "
-#| "messaging using especially the CADET subsystem. It is developed using GTK "
-#| "and libhandy for a convergent design."
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> は、"
-"高い利便性と豊富な機能を備えたグラフィカル アプリケーションで、特に CADET サ"
-"ブシステムを使用してメッセージ機能を提供します。GTK と libhandy を利用して開"
-"発されいます。"
 
 #: template/applications.html.j2:180
 msgid "groupchat"
@@ -3227,7 +3217,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3426,6 +3417,589 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Documentation"
+msgid "Project motivation"
+msgstr "資料"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Continuous Integration"
+msgid "Topology Configuration"
+msgstr "継続的なインテグレーション"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "アーカイブ"
@@ -3550,6 +4124,26 @@ msgid ""
 "authorized it to access using the respective key."
 msgstr ""
 
+#~ msgid "Cadet-GTK"
+#~ msgstr "Cadet-GTK"
+
+#, fuzzy
+#~| msgid ""
+#~| "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~| "is a convenient but feature-rich graphical application providing "
+#~| "messaging using especially the CADET subsystem. It is developed using "
+#~| "GTK and libhandy for a convergent design."
+#~ msgid ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "is a convenient but feature-rich graphical application providing "
+#~ "messaging using the CADET subsystem. It is developed using GTK and "
+#~ "libhandy for a convergent design."
+#~ msgstr ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "は、高い利便性と豊富な機能を備えたグラフィカル アプリケーションで、特に "
+#~ "CADET サブシステムを使用してメッセージ機能を提供します。GTK と libhandy を"
+#~ "利用して開発されいます。"
+
 #~ msgid "The IRC channel"
 #~ msgstr "IRC チャネル"
 
diff --git a/locale/ko/LC_MESSAGES/messages.po 
b/locale/ko/LC_MESSAGES/messages.po
index cca2237..f996e70 100644
--- a/locale/ko/LC_MESSAGES/messages.po
+++ b/locale/ko/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-04-11 02:59+0000\n"
 "Last-Translator: Chaewon Park <wonnie0624@gmail.com>\n"
 "Language-Team: Korean <http://weblate.taler.net/projects/gnunet/website/ko/";
@@ -443,15 +443,15 @@ msgid ""
 msgstr ""
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
+msgid "Messenger-GTK"
 msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
 
 #: template/applications.html.j2:180
@@ -2726,7 +2726,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -2919,6 +2920,589 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Documentation"
+msgid "Project motivation"
+msgstr "문서"
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Continuous Integration"
+msgid "Topology Configuration"
+msgstr "지속적 통합"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "뉴스 아카이브:"
diff --git a/locale/messages.pot b/locale/messages.pot
index 976c9f9..38bd716 100644
--- a/locale/messages.pot
+++ b/locale/messages.pot
@@ -1,14 +1,14 @@
 # Translations template for PROJECT.
-# Copyright (C) 2021 ORGANIZATION
+# Copyright (C) 2022 ORGANIZATION
 # This file is distributed under the same license as the PROJECT project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
 #
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -435,15 +435,15 @@ msgid ""
 msgstr ""
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
+msgid "Messenger-GTK"
 msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
-"is a convenient but feature-rich graphical application providing "
-"messaging using the CADET subsystem. It is developed using GTK and "
-"libhandy for a convergent design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> "
+"is a convergent GTK messaging application using the GNUnet Messenger "
+"service. The goal is to provide private and secure communication between "
+"any group of devices."
 msgstr ""
 
 #: template/applications.html.j2:180
@@ -2741,7 +2741,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 msgid "Configuration"
 msgstr ""
 
@@ -2937,6 +2938,612 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+msgid "Project motivation"
+msgstr ""
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established "
+"by <a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with"
+" the ATS subsystem for bandwidth allocation and choosing plugins has "
+"several <a href=\"https://docs.gnunet.org/handbook/gnunet.html";
+"#TRANSPORT_002dNG-Subsystem\">issues</a> with its design. With the "
+"Layer-2-Overlay project we like to implement the <a "
+"href=\"https://docs.gnunet.org/handbook/gnunet.html#Design-goals-of-";
+"TNG\">design goals</a> of the future GNUnet TRANSPORT Next Generation "
+"(TNG) subsystem. One major change in the design is to separate the "
+"protocol plugins into processes (now called communicators) detached from "
+"the main transport service. Three communicators were already implemented "
+"(TCP, UDP and UNIX sockets). The old transport code is hard to maintain, "
+"because it is cluttered with \"manipulation\" support code for TESTBED "
+"(the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code "
+"which is very hard to read to get an idea what the test code is doing. "
+"Therefore the first task (milestone 1) is to implement a new testing "
+"framework which uses network namespaces to make testing of TNG much "
+"easier. Have a look into what is planed for Layer-2-Overlay in the <a "
+"href=\"#milestones\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a "
+"href=\"https://docs.taler.net/developers-manual.html#testing-";
+"library\">GNU Taler testing library</a>. In <a "
+"href=\"#milestone1\">milestone 1</a> we implemented commands to setup the"
+" <a href=\"#netjails\">netjails</a>, the test environment for each peer, "
+"to start a single peers and sending a simple test message. Because some "
+"commands depend on other commands to be finished, and those commands are "
+"asynchronous, we needed additional functionality in the command "
+"interpreter library to block execution until some commands are finished "
+"(e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a "
+"href=\"testng.html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network "
+"characteristics like lossy connections or firewalls. To achieve this we "
+"are working with <a href=\"https://www.man7.org/linux/man-pages/man8/ip-";
+"netns.8.html\">network namespace</a>. We have commands for starting and "
+"stopping network namespaces. Those commands are scripts, which are using "
+"several shell commands to setup the network namespace. A third script "
+"then is responsible for start a GNUnet helper. This helper can load "
+"plugins. Each plugin represents some test case. Per node in the network "
+"namespaces one helper is started, which means on each node is a local "
+"interpreter loop running. For a detailed description have a look into the"
+" <a href=\"testng.html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up "
+"VLANs between network namespaces and a framework to test communication "
+"between peers which are running in those VLANs. Finally a minimal Test "
+"Case will be implemented. Despite the fact that the transport service is "
+"already able to use several communicators (transport protocol "
+"implementations), it will only use the tcp communicator, not the unix "
+"socket nor the udp communicator, which already are in place and working. "
+"<ul> <li>SUID helpers to setup network namespace and starting peers with "
+"network namespace.</li> <li>Basic transport-level operations (get "
+"address, send, receive, connect).</li> <li>Peers connected through test "
+"and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers."
+" The deliverable can be verified through out the specific test cases "
+"running in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of"
+" the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> "
+"<li>Block execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in "
+"the GNUnet continuous integration (CI)). <a "
+"href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which "
+"a peer can be reached can be delivered on handshake or by UDP broadcast. "
+"With this milestone the transport service will be able to use more than "
+"one communicator (pluggable transport). <ul> <li>unidirectional "
+"communication and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a "
+"href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly "
+"connected. Therefore peers have to act as relay. To achieve this I will "
+"implement the distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. "
+"The test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT."
+" The test cases proof that each peer can be reached, even if that peer is"
+" behind a NAT. The test case are measuring the performance. This "
+"measurement is used to compare with the outcome of the next milestone. "
+"This result of this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control,"
+" quality of service optimizations) which will select the optimal "
+"transport protocol for a given situation. I will analyze potential "
+"performance gains by integrating libraries of the interpeer project. If "
+"the effort of integrating interpeer presumably would lead to better "
+"performance than other optimizations of the same amount of work, this "
+"integration is done. I will finish the project with a performance "
+"analysis to optimize the selection logic. <ul> <li>Queue management. "
+"<li>Interpeer project synergy <ol> <li>Analysis of the interpeer project "
+"in regard to integrate it into GNUnet.</li> <li>Optional integration into"
+" GNUnet, if it can be done at all and in a reasonable amount of "
+"work.</li> </ol> <li>Commands for performance measurement(s).</li> "
+"<li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again "
+"one outcome of this milestone will be a stable release. Documentation of "
+"the interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_api_cmd_simple_send.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Binary for starting the "
+"simple send test. Obsolete in current code base!</td> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/netjail_start.sh</td><td width=\"60%\" style"
+"=\"vertical-align: top;\">Script to setup the netjail topology. Will be "
+"execute by the following command. </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_netjail_start.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Command to create the netjail setup.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_exec.sh</td><td width=\"60%\" style"
+"=\"vertical-align: top;\">Script to execute a local test interpreter per "
+"node. Will be execute by the following command.</td> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_netjail_start_testsystem.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Command to start the helper "
+"processes.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Command to stop the helper "
+"processes.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_stop.sh</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Script to stop the netjail "
+"topology.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Command to stop the test setup.</td> <tr> "
+"<td></td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style"
+"=\"vertical-align: top;\">Helper to start the local interpreter "
+"loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style"
+"=\"vertical-align: "
+"top;\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Plugin which creates the "
+"cmds for the simple send test case.</td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Command to create a local test "
+"system.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style"
+"=\"vertical-align: "
+"top;\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\""
+" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/transport_api_cmd_connecting_peers.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\"> Command to connect two "
+"peers.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td>src/transport/transport_api_cmd_send_simple.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Command to send a simple message from one "
+"peer to another.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\""
+" style=\"vertical-align: top;\">Command to destroy the local test "
+"system.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style"
+"=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command "
+"to send a message to the master loop, if the local loop has "
+"finished.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_api2_tcp_node1.conf</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Configuration for the first "
+"node running during the simple send test case.</td> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_api2_tcp_node2.conf</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Configuration for the second"
+" node running during the simple send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Introduced scripts to start the tests. The"
+" script checks, if a kernel parameter is set to allow unprivileged users "
+"to create network namespaces. The script than starts the following "
+"gerneric binary in a network namespace.</td> <tr> <td></td><td> </td> "
+"</tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_start_with_config.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">A generic binary to start a "
+"test case which will be configured by a configuration file.</td> </tr> "
+"<tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: "
+"top;\">Script which reads the topology from a file for the use in the "
+"other netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">All already existing "
+"commands.</td><td width=\"60%\" style=\"vertical-align: top;\">All "
+"commands changed to work with the topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_send_peer_ready.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Command to send a message to"
+" the master loop if a peer has started in local loop.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_local_test_prepared.c</td><td "
+"width=\"60%\" style=\"vertical-align: top;\">Command to send a message to"
+" the master loop if a peer is ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: "
+"top;\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\""
+" style=\"vertical-align: top;\">Command now uses a configuration template"
+" for the peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td"
+" width=\"40%\" style=\"vertical-align: "
+"top;\">test_transport_simple_send_topo.conf</td><td width=\"60%\" style"
+"=\"vertical-align: top;\">Topology configuration file for the simple send"
+" test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with "
+"new tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_udp_backchannel.sh</td><td "
+"width=\"55%\" style=\"vertical-align: top;\">Added script to start the "
+"udp backchannel test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_simple_send_broadcast.sh</td><td "
+"width=\"55%\" style=\"vertical-align: top;\">Added script for the UDB "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_simple_send_string.sh</td><td "
+"width=\"55%\" style=\"vertical-align: top;\">Added script as an example "
+"to start a test with inline topology configuration string.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">All commands</td><td width=\"55%\" style=\"vertical-align: "
+"top;\">Changed code to handle strings with topology information.</td> "
+"</tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style"
+"=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"55%\" style=\"vertical-align: top;\">Changed the netjail start "
+"script to configure port forwarding for specific protocols (tcp, "
+"udp).</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_*.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Moved to contrib/netjail "
+"directory</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td"
+" width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_plugin_cmd_udp_backchannel.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"backchannel test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr>"
+" <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/testing/testing_api_cmd_block_until_external_trigger.cc</td><td"
+" width=\"40%\" style=\"vertical-align: top;\">Command to block the local "
+"loop until triggered by a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td"
+" width=\"40%\" style=\"vertical-align: top;\">Topology configuration for "
+"the broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">test_transport_udp_backchannel_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Topology configuration file for the udp "
+"backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-";
+"netns.8.html\">network namespaces</a>, being isolated from each other to "
+"test how GNUnet nodes with limited connectivity behave, and how the new "
+"transport next generation implementation can help to circumvent the "
+"connectivity obstacles. The network namespaces are span a network with "
+"globally known nodes and several subnets separated from each other via a "
+"single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This "
+"script takes three arguments. The first is either the name of a "
+"configuration for the test setup topology or a string containing the "
+"topology information. The second is the process id of the test. The third"
+" is a flag if the first parameter contains the name of the configuration "
+"file or the topology string.</li> <li>netjail_exec.sh: A script to run "
+"some command in a specific namespace. This script takes eight arguments. "
+"The first is the index of a node in a namespace for which we like to "
+"execute a command. The second is the index of the namespace of the node. "
+"The third is the command to execute, the fourth is the number of subnets,"
+" the fifth the number of nodes in each subnet, the sixth is the "
+"identifier used by the <a href=\"https://www.man7.org/linux/man-";
+"pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth is a flag is"
+" the topology information is given via a topology file of a string "
+"containing the topology information..</li> <li>netjail_stop.sh: A script "
+"which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a"
+" generic test binary (test_transport_start_with_config) which will start "
+"the above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using "
+"the command unshare. Using unshare one can create a namespace with its "
+"own user namespace, where creating network namespaces is allowed. "
+"Precondition to do this with unshare, is to set the "
+"kernel.unprivileged_userns_clone kernel parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng "
+"testing framework a special command is used: gnunet-cmds-helper This "
+"commands itself is of a special kind named helper processes which "
+"communicates via GNUNET_MessageHeaders on stdin/stdout with the process "
+"that started the helper. The gnunet-cmds-helper is used to load testcase "
+"plugins. Those plugins are implementations of an api which is used to "
+"start different test cases. Those plugins are dynamically loaded by "
+"gnunet-cmds-helper. Each plugin defines the commands which are running in"
+" a local interpreter loop started by the helper on that specific network "
+"namespace node. The plugins are also responsible for the communication "
+"via the helper with the master interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net";
+"/developers-manual.html#testing-library\">GNU Taler testing library</a> "
+"was extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. "
+"By default the continuation function of GNUNET_TESTING_AsyncContext is "
+"the interpreter_next function of the interpreter loop (blocking "
+"asynchronous command) which will be executed calling "
+"GNUNET_TESTING_async_finish, when the asynchronous task finished, but "
+"also can be any other function to be executed when the asynchronous task "
+"is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+msgid "Topology Configuration"
+msgstr ""
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary "
+"for starting netjail based tests.</br></br> Both method can be examined "
+"in two example test scripts</br></br> "
+"test_transport_send_simple.sh</br></br> and</br></br> "
+"test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating "
+"key/value(s) pairs and the chars '{' and '}' for grouping several "
+"key/value pairs as value and '|' to separate a group of values from the "
+"key/value(s) pair identifying a line.</br></br> Keys are</br></br> <table"
+" width=\"100%\"> <tr> <td width=\"10%\" style=\"vertical-align: "
+"top;\">M</td><td width=\"90%\" style=\"vertical-align: top;\">The number "
+"of natted subnets in the topology.</td> </tr> <tr> <td></td><td> </td> "
+"</tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">N</td><td "
+"width=\"90%\" style=\"vertical-align: top;\">The number of nodes in each "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">X</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">The Number of globally known (not natted) nodes.</td> </tr>"
+" <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-"
+"align: top;\">K</td><td width=\"90%\" style=\"vertical-align: top;\"> A "
+"globally known (not natted) node. The number value identifies the "
+"node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">T</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: "
+"top;\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of"
+" a subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">P</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">A subnet node with two key values, the "
+"first one for identifying the subnet and the second for identifying the "
+"node in the subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">connect</td><td "
+"width=\"90%\" style=\"vertical-align: top;\">Can be one of several "
+"grouped values of the P, K or R key. Configuring a connection to another "
+"node. </br></br> The value of the connect key is a node key (P or K) with"
+" two resp. one number value identifying the node, and an additional value"
+" configuring a protocol. </br></br> If the connect key is used in a line "
+"configuring a node it is used to configure a connection, which will "
+"result in the node identified by the line P or K key will try to connect "
+"nodes also identified with the P or K key via the configured "
+"protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td "
+"width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value of "
+"the R key. The value of the tcp_port can be 0 or 1, if a port forwarding "
+"to the first (index 1) node of a subnet is not or is configured for the "
+"tcp protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">udp_port</td><td "
+"width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value of "
+"the R key. The value of the tcp_port can be 0 or 1, if a port forwarding "
+"to the first (index 1) node of a subnet is not or is configured for the "
+"udp protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">plugin</td><td width=\"90%\""
+" style=\"vertical-align: top;\">Can be a grouped value of the P or K key."
+" The value is the name of a plugin which will run on that peer instead of"
+" the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr ""
diff --git a/locale/pt/LC_MESSAGES/messages.po 
b/locale/pt/LC_MESSAGES/messages.po
index 2505bff..9e47361 100644
--- a/locale/pt/LC_MESSAGES/messages.po
+++ b/locale/pt/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -429,15 +429,15 @@ msgid ""
 msgstr ""
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
+msgid "Messenger-GTK"
 msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
 
 #: template/applications.html.j2:180
@@ -2682,7 +2682,8 @@ msgstr ""
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr ""
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 msgid "Configuration"
 msgstr ""
 
@@ -2871,6 +2872,585 @@ msgstr ""
 msgid "Videos related to GNUnet"
 msgstr ""
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+msgid "Project motivation"
+msgstr ""
+
+#: template/l2o/index.html.j2:13
+msgid "New Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+msgid "New Test Framwork"
+msgstr ""
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+msgid "Topology Configuration"
+msgstr ""
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr ""
diff --git a/locale/zh_Hant/LC_MESSAGES/messages.po 
b/locale/zh_Hant/LC_MESSAGES/messages.po
index 3477ff2..afe6613 100644
--- a/locale/zh_Hant/LC_MESSAGES/messages.po
+++ b/locale/zh_Hant/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-29 13:55+0200\n"
+"POT-Creation-Date: 2022-02-25 20:18+0100\n"
 "PO-Revision-Date: 2021-08-24 08:59+0000\n"
 "Last-Translator: Ting-Yi Fu <futingyi0215@gmail.com>\n"
 "Language-Team: Chinese (Traditional) <http://weblate.taler.net/projects/";
@@ -494,19 +494,16 @@ msgstr ""
 "新的加密協議來驗證密鑰。"
 
 #: template/applications.html.j2:160
-msgid "Cadet-GTK"
-msgstr "學員GTK (Cadet-GTK)"
+msgid "Messenger-GTK"
+msgstr ""
 
 #: template/applications.html.j2:162
 msgid ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> is a "
-"convenient but feature-rich graphical application providing messaging using "
-"the CADET subsystem. It is developed using GTK and libhandy for a convergent "
-"design."
+"<a href=\"https://git.gnunet.org/messenger-gtk.git/\";>Messenger-GTK</a> is a "
+"convergent GTK messaging application using the GNUnet Messenger service. The "
+"goal is to provide private and secure communication between any group of "
+"devices."
 msgstr ""
-"<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> 是一"
-"種方便而功能豐富的圖形應用程序,Cadet-GTK 尤其使用 CADET 子系統提供消息傳遞。"
-"其使用 GTK 和 libhandy 開發的以收斂設計。"
 
 #: template/applications.html.j2:180
 msgid "groupchat"
@@ -3369,7 +3366,8 @@ msgstr "教學:NetBSD 8.0 當前上的 GNUnet"
 msgid "Tutorial: GNUnet on OpenWrt"
 msgstr "教學:OpenWrt 上的 GNUnet"
 
-#: template/install-on-openwrt.html.j2:47
+#: template/install-on-openwrt.html.j2:47 template/l2o/mile1.html.j2:113
+#: template/l2o/mile2.html.j2:63 template/l2o/mile3.html.j2:92
 msgid "Configuration"
 msgstr "配置"
 
@@ -3600,6 +3598,593 @@ msgstr "天哪,你們打破了我的網際網路"
 msgid "Videos related to GNUnet"
 msgstr "與 GNUnet 相關的影片"
 
+#: template/l2o/index.html.j2:6 template/l2o/mile1.html.j2:6
+#: template/l2o/mile2.html.j2:6 template/l2o/mile3.html.j2:6
+#: template/l2o/testng.html.j2:6
+msgid "NGI Assure project: Layer-2-Overlay"
+msgstr ""
+
+#: template/l2o/index.html.j2:12 template/l2o/index.html.j2:34
+#, fuzzy
+#| msgid "Motivation"
+msgid "Project motivation"
+msgstr "動機"
+
+#: template/l2o/index.html.j2:13
+#, fuzzy
+#| msgid "GNUnet is a framework"
+msgid "New Test Framework"
+msgstr "GNUnet 是一個框架"
+
+#: template/l2o/index.html.j2:14 template/l2o/index.html.j2:74
+msgid "Milestones"
+msgstr ""
+
+#: template/l2o/index.html.j2:15
+msgid "Milestone 1"
+msgstr ""
+
+#: template/l2o/index.html.j2:16
+msgid "Milestone 2"
+msgstr ""
+
+#: template/l2o/index.html.j2:17
+msgid "Milestone 3"
+msgstr ""
+
+#: template/l2o/index.html.j2:18
+msgid "Milestone 4"
+msgstr ""
+
+#: template/l2o/index.html.j2:19
+msgid "Milestone 5"
+msgstr ""
+
+#: template/l2o/index.html.j2:20
+msgid "Milestone 6"
+msgstr ""
+
+#: template/l2o/index.html.j2:27
+msgid ""
+"This project was funded through the NGI Assure Fund, a fund established by "
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:39
+msgid ""
+"The <a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-";
+"Subsystem\">current</a> GNUnet TRANSPORT architecture with its pluggable "
+"transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with "
+"the ATS subsystem for bandwidth allocation and choosing plugins has several "
+"<a href=\"https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-";
+"Subsystem\">issues</a> with its design. With the Layer-2-Overlay project we "
+"like to implement the <a href=\"https://docs.gnunet.org/handbook/gnunet.";
+"html#Design-goals-of-TNG\">design goals</a> of the future GNUnet TRANSPORT "
+"Next Generation (TNG) subsystem. One major change in the design is to "
+"separate the protocol plugins into processes (now called communicators) "
+"detached from the main transport service. Three communicators were already "
+"implemented (TCP, UDP and UNIX sockets). The old transport code is hard to "
+"maintain, because it is cluttered with \"manipulation\" support code for "
+"TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, "
+"especially with TESTBED which has its own design flaws, and test code which "
+"is very hard to read to get an idea what the test code is doing. Therefore "
+"the first task (milestone 1) is to implement a new testing framework which "
+"uses network namespaces to make testing of TNG much easier. Have a look into "
+"what is planed for Layer-2-Overlay in the <a href=\"#milestones"
+"\">milestones</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:50
+#, fuzzy
+#| msgid "GNUnet is a framework"
+msgid "New Test Framwork"
+msgstr "GNUnet 是一個框架"
+
+#: template/l2o/index.html.j2:54
+msgid "Command Style Pattern"
+msgstr ""
+
+#: template/l2o/index.html.j2:58
+msgid ""
+"The new style of writing tests in GNUnet is borrowed from the <a href="
+"\"https://docs.taler.net/developers-manual.html#testing-library\";>GNU Taler "
+"testing library</a>. In <a href=\"#milestone1\">milestone 1</a> we "
+"implemented commands to setup the <a href=\"#netjails\">netjails</a>, the "
+"test environment for each peer, to start a single peers and sending a simple "
+"test message. Because some commands depend on other commands to be finished, "
+"and those commands are asynchronous, we needed additional functionality in "
+"the command interpreter library to block execution until some commands are "
+"finished (e.g. all peers needs to be running, before peers starting to send "
+"messages). For a detailed description have a look into the <a href=\"testng."
+"html\">testing ng documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:64
+msgid "Netjails"
+msgstr ""
+
+#: template/l2o/index.html.j2:68
+msgid ""
+"To do extensive testing of the new transport implementation one needs to "
+"simulate various network topologies to enable faking network characteristics "
+"like lossy connections or firewalls. To achieve this we are working with <a "
+"href=\"https://www.man7.org/linux/man-pages/man8/ip-netns.8.html\";>network "
+"namespace</a>. We have commands for starting and stopping network "
+"namespaces. Those commands are scripts, which are using several shell "
+"commands to setup the network namespace. A third script then is responsible "
+"for start a GNUnet helper. This helper can load plugins. Each plugin "
+"represents some test case. Per node in the network namespaces one helper is "
+"started, which means on each node is a local interpreter loop running. For a "
+"detailed description have a look into the <a href=\"testng.html\">testing ng "
+"documentation</a>."
+msgstr ""
+
+#: template/l2o/index.html.j2:78
+msgid "Milestone 1 Test Infrastructure and minimal Test Case"
+msgstr ""
+
+#: template/l2o/index.html.j2:81
+msgid ""
+"The first subtask consists of implementing a framework for setting up VLANs "
+"between network namespaces and a framework to test communication between "
+"peers which are running in those VLANs. Finally a minimal Test Case will be "
+"implemented. Despite the fact that the transport service is already able to "
+"use several communicators (transport protocol implementations), it will only "
+"use the tcp communicator, not the unix socket nor the udp communicator, "
+"which already are in place and working. <ul> <li>SUID helpers to setup "
+"network namespace and starting peers with network namespace.</li> <li>Basic "
+"transport-level operations (get address, send, receive, connect).</li> "
+"<li>Peers connected through test and transfer data.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:93
+msgid ""
+"First MVP which uses the TCP communicator to send messages between peers. "
+"The deliverable can be verified through out the specific test cases running "
+"in the GNUnet CI. <a href=\"mile1.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:101
+msgid "Milestone 2 Enhancing Test Framework"
+msgstr ""
+
+#: template/l2o/index.html.j2:104
+msgid ""
+"To test more complex functionality we need to enhance the capabilities of "
+"the testing framework. Hooks for performance measurement will be "
+"implemented. <ul> <li>Enhancing transport-level operations.</li> <li>Block "
+"execution of commands at a peer. (Barriers).</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:114
+msgid ""
+"Outcome of this deliverable are advanced test case (again verifiable in the "
+"GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:122
+msgid "Milestone 3 UDP integration"
+msgstr ""
+
+#: template/l2o/index.html.j2:125
+msgid ""
+"With this subtask I will implement enhanced L2O features like using "
+"unidirectional transport protocols with backchannels. Addresses by which a "
+"peer can be reached can be delivered on handshake or by UDP broadcast. With "
+"this milestone the transport service will be able to use more than one "
+"communicator (pluggable transport). <ul> <li>unidirectional communication "
+"and backchannels.</li> <li>UDP broadcast.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:135
+msgid ""
+"The CI contains test case which uses the UDP protocol to message between "
+"peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
+msgstr ""
+
+#: template/l2o/index.html.j2:143
+msgid "Milestone 4 Distance Vector"
+msgstr ""
+
+#: template/l2o/index.html.j2:146
+msgid ""
+"In this subtask I will enhance connectivity to peers not directly connected. "
+"Therefore peers have to act as relay. To achieve this I will implement the "
+"distance vector protocol."
+msgstr ""
+
+#: template/l2o/index.html.j2:152
+msgid ""
+"The CI contains test cases with a setup of peers not connected directly. The "
+"test cases proof that each peer can reach any other peer."
+msgstr ""
+
+#: template/l2o/index.html.j2:158
+msgid "Milestone 5 NAT Traversal"
+msgstr ""
+
+#: template/l2o/index.html.j2:161
+msgid ""
+"This subtask will make peers behind NAT reachable. Two simple traversal "
+"methods will be implemented. <ul> <li>NAT traversal via UpnPC.</li> "
+"<li>Autonomous NAT Traversal using fake ICMP messages.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:171
+msgid ""
+"The CI contains test case with a peer setup containing peer behind a NAT. "
+"The test cases proof that each peer can be reached, even if that peer is "
+"behind a NAT. The test case are measuring the performance. This measurement "
+"is used to compare with the outcome of the next milestone. This result of "
+"this milestone will be a first stable release."
+msgstr ""
+
+#: template/l2o/index.html.j2:178
+msgid "Milestone 6 Optimization"
+msgstr ""
+
+#: template/l2o/index.html.j2:181
+msgid ""
+"In this subtask I will implement algorithms (flow and congestion control, "
+"quality of service optimizations) which will select the optimal transport "
+"protocol for a given situation. I will analyze potential performance gains "
+"by integrating libraries of the interpeer project. If the effort of "
+"integrating interpeer presumably would lead to better performance than other "
+"optimizations of the same amount of work, this integration is done. I will "
+"finish the project with a performance analysis to optimize the selection "
+"logic. <ul> <li>Queue management. <li>Interpeer project synergy <ol> "
+"<li>Analysis of the interpeer project in regard to integrate it into GNUnet."
+"</li> <li>Optional integration into GNUnet, if it can be done at all and in "
+"a reasonable amount of work.</li> </ol> <li>Commands for performance "
+"measurement(s).</li> <li>Performance analysis.</li> </ul>"
+msgstr ""
+
+#: template/l2o/index.html.j2:201
+msgid ""
+"The test cases in the CI are measuring the performance gains. This "
+"measurement can be compared with the measurement of milestone 5. Again one "
+"outcome of this milestone will be a stable release. Documentation of the "
+"interpeer project analysis."
+msgstr ""
+
+#: template/l2o/mile1.html.j2:12 template/l2o/mile2.html.j2:12
+#: template/l2o/mile3.html.j2:12 template/l2o/testng.html.j2:12
+msgid "Project main page"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:20 template/l2o/mile2.html.j2:20
+#: template/l2o/mile3.html.j2:29
+msgid "Master Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api_cmd_simple_send.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Binary for starting the simple send test. "
+"Obsolete in current code base!</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Script to setup the "
+"netjail topology. Will be execute by the following command. </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to create the netjail setup.</td> <tr> <td></td><td> </"
+"td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"netjail_exec.sh</td><td width=\"60%\" style=\"vertical-align: top;\">Script "
+"to execute a local test interpreter per node. Will be execute by the "
+"following command.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_netjail_start_testsystem.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to start the helper processes.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop the helper processes.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/netjail_stop.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Script to stop the netjail topology.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_netjail_stop.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to stop the test setup.</td> <tr> <td></"
+"td><td> </td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
+#: template/l2o/mile3.html.j2:66
+msgid "Local Loop"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:67
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/gnunet-cmds-helper.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Helper to start the local interpreter loop.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Plugin which creates the cmds for the "
+"simple send test case.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing_api_cmd_system_create.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to create a local test system.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_start_peer.c</td><td width="
+"\"60%\" style=\"vertical-align: top;\">Command to start a peer.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"60%\" "
+"style=\"vertical-align: top;\"> Command to connect two peers.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td>src/transport/"
+"transport_api_cmd_send_simple.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a simple message from one peer to another.</"
+"td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_stop_peer.c</td><td width=\"60%"
+"\" style=\"vertical-align: top;\">Command to stop a peer.</td> <tr> <td></"
+"td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_system_destroy.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to destroy the local test system.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send "
+"a message to the master loop, if the local loop has finished.</td> <tr> </"
+"table>"
+msgstr ""
+
+#: template/l2o/mile1.html.j2:115
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_api2_tcp_node1.conf</td><td width=\"60%\" "
+"style=\"vertical-align: top;\">Configuration for the first node running "
+"during the simple send test case.</td> <tr> <td></td><td> </td> </tr> <tr> "
+"<td width=\"40%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_api2_tcp_node2.conf</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Configuration for the second node running during the simple "
+"send test case.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:22
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send.sh</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Introduced scripts to start the tests. The script "
+"checks, if a kernel parameter is set to allow unprivileged users to create "
+"network namespaces. The script than starts the following gerneric binary in "
+"a network namespace.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_start_with_config.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">A generic binary to start a test case which will be configured "
+"by a configuration file.</td> </tr> <tr> <td width=\"40%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Added code to read netjail topology from a file.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/topo.sh</td><td width=\"60%\" style=\"vertical-align: top;"
+"\">Script which reads the topology from a file for the use in the other "
+"netjail scripts.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%\" "
+"style=\"vertical-align: top;\">All already existing commands.</td><td width="
+"\"60%\" style=\"vertical-align: top;\">All commands changed to work with the "
+"topology data.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:50
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/testing/testing_api_cmd_send_peer_ready.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command to send a message to the master loop if a "
+"peer has started in local loop.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"40%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_local_test_prepared.c</td><td width=\"60%\" style=\"vertical-"
+"align: top;\">Command to send a message to the master loop if a peer is "
+"ready to shutdown.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile2.html.j2:65
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"40%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_start_peer.c</td><td width=\"60%\" style="
+"\"vertical-align: top;\">Command now uses a configuration template for the "
+"peer configuration.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"40%"
+"\" style=\"vertical-align: top;\">test_transport_simple_send_topo.conf</"
+"td><td width=\"60%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the simple send test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:20
+msgid "Bug fixing"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:22
+msgid ""
+"Some bugs in the tng service and communicator code which were found with new "
+"tests were fixed."
+msgstr ""
+
+#: template/l2o/mile3.html.j2:31
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_udp_backchannel.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the udp backchannel "
+"test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/transport/test_transport_simple_send_broadcast."
+"sh</td><td width=\"55%\" style=\"vertical-align: top;\">Added script for the "
+"UDB broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_string.sh</td><td width=\"55%\" style=\"vertical-"
+"align: top;\">Added script as an example to start a test with inline "
+"topology configuration string.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">All commands</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Changed code to handle strings with "
+"topology information.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/testing/netjail_start.sh</"
+"td><td width=\"55%\" style=\"vertical-align: top;\">Changed the netjail "
+"start script to configure port forwarding for specific protocols (tcp, udp)."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style="
+"\"vertical-align: top;\">src/testing/netjail_*.sh</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Moved to contrib/netjail directory</td> </tr> "
+"</table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:68
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">New plugin for the udp "
+"broadcast test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_udp_backchannel.c</td><td width=\"40%\" style="
+"\"vertical-align: top;\">New plugin for the udp backchannel test case.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/transport/transport_api_cmd_backchannel_check.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Command to check for a udp "
+"backchannel specific log entry.</td> </tr> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: top;\">src/testing/"
+"testing_api_cmd_block_until_external_trigger.cc</td><td width=\"40%\" style="
+"\"vertical-align: top;\">Command to block the local loop until triggered by "
+"a external signal.</td> </tr> </table>"
+msgstr ""
+
+#: template/l2o/mile3.html.j2:94
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Topology configuration for the "
+"broadcast test.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">test_transport_udp_backchannel_topo.conf</"
+"td><td width=\"40%\" style=\"vertical-align: top;\">Topology configuration "
+"file for the udp backchannel test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/testng.html.j2:20
+msgid "Netjail setup and execution"
+msgstr ""
+
+#: template/l2o/testng.html.j2:22
+msgid ""
+"Netjail is the GNUnet naming for having several <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">network namespaces</a>, being "
+"isolated from each other to test how GNUnet nodes with limited connectivity "
+"behave, and how the new transport next generation implementation can help to "
+"circumvent the connectivity obstacles. The network namespaces are span a "
+"network with globally known nodes and several subnets separated from each "
+"other via a single router. We have three scripts for the test setup: <ul> "
+"<li>netjail_start.sh: A script to setup the network namespaces. This script "
+"takes three arguments. The first is either the name of a configuration for "
+"the test setup topology or a string containing the topology information. The "
+"second is the process id of the test. The third is a flag if the first "
+"parameter contains the name of the configuration file or the topology string."
+"</li> <li>netjail_exec.sh: A script to run some command in a specific "
+"namespace. This script takes eight arguments. The first is the index of a "
+"node in a namespace for which we like to execute a command. The second is "
+"the index of the namespace of the node. The third is the command to execute, "
+"the fourth is the number of subnets, the fifth the number of nodes in each "
+"subnet, the sixth is the identifier used by the <a href=\"https://www.man7.";
+"org/linux/man-pages/man8/ip-netns.8.html\">ip-netns</a> command, the sixth "
+"is a flag is the topology information is given via a topology file of a "
+"string containing the topology information..</li> <li>netjail_stop.sh: A "
+"script which remove all the network namespace setup by netjail_start.sh. The "
+"arguments are the same as those for netjail_start.sh.</li> </ul> The is a "
+"generic test binary (test_transport_start_with_config) which will start the "
+"above mentioned scripts. Because creating network namespaces is only "
+"permitted for privileged users the generic test binary is not start "
+"directly, but via scripts. This script starts the generic binary using the "
+"command unshare. Using unshare one can create a namespace with its own user "
+"namespace, where creating network namespaces is allowed. Precondition to do "
+"this with unshare, is to set the kernel.unprivileged_userns_clone kernel "
+"parameter."
+msgstr ""
+
+#: template/l2o/testng.html.j2:38
+msgid "CMD helper and testcase plugins"
+msgstr ""
+
+#: template/l2o/testng.html.j2:42
+msgid ""
+"Although netjail_exec.sh can execute an arbitrary command in the ng testing "
+"framework a special command is used: gnunet-cmds-helper This commands itself "
+"is of a special kind named helper processes which communicates via "
+"GNUNET_MessageHeaders on stdin/stdout with the process that started the "
+"helper. The gnunet-cmds-helper is used to load testcase plugins. Those "
+"plugins are implementations of an api which is used to start different test "
+"cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each "
+"plugin defines the commands which are running in a local interpreter loop "
+"started by the helper on that specific network namespace node. The plugins "
+"are also responsible for the communication via the helper with the master "
+"interpreter loop."
+msgstr ""
+
+#: template/l2o/testng.html.j2:48
+msgid "Command Pattern"
+msgstr ""
+
+#: template/l2o/testng.html.j2:52
+msgid ""
+"The testing framework borrowed from the <a href=\"https://docs.taler.net/";
+"developers-manual.html#testing-library\">GNU Taler testing library</a> was "
+"extended to handle asychronous commands. Therefore a struct "
+"GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By "
+"default the continuation function of GNUNET_TESTING_AsyncContext is the "
+"interpreter_next function of the interpreter loop (blocking asynchronous "
+"command) which will be executed calling GNUNET_TESTING_async_finish, when "
+"the asynchronous task finished, but also can be any other function to be "
+"executed when the asynchronous task is non blocking."
+msgstr ""
+
+#: template/l2o/testng.html.j2:57
+#, fuzzy
+#| msgid "Configuration"
+msgid "Topology Configuration"
+msgstr "配置"
+
+#: template/l2o/testng.html.j2:61
+msgid ""
+"The topology of the netjail setup can be configured via a configuration "
+"file, or with a configuration string handed over to the generic binary for "
+"starting netjail based tests.</br></br> Both method can be examined in two "
+"example test scripts</br></br> test_transport_send_simple.sh</br></br> and</"
+"br></br> test_transport_send_simple_string.sh</br></br> The Syntax of the "
+"configuration is as follows.</br></br> The configuration string is "
+"structured by lines and the delimiter ':' used for seperating key/value(s) "
+"pairs and the chars '{' and '}' for grouping several key/value pairs as "
+"value and '|' to separate a group of values from the key/value(s) pair "
+"identifying a line.</br></br> Keys are</br></br> <table width=\"100%\"> <tr> "
+"<td width=\"10%\" style=\"vertical-align: top;\">M</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">The number of natted subnets in the topology."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">N</td><td width=\"90%\" style=\"vertical-align: top;"
+"\">The number of nodes in each subnet.</td> </tr> <tr> <td></td><td> </td> </"
+"tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">X</td><td width="
+"\"90%\" style=\"vertical-align: top;\">The Number of globally known (not "
+"natted) nodes.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%"
+"\" style=\"vertical-align: top;\">K</td><td width=\"90%\" style=\"vertical-"
+"align: top;\"> A globally known (not natted) node. The number value "
+"identifies the node.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">T</td><td width=\"90%\" style="
+"\"vertical-align: top;\">The default test plugin to execute.</td> </tr> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;"
+"\">R</td><td width=\"90%\" style=\"vertical-align: top;\">A router of a "
+"subnet.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" "
+"style=\"vertical-align: top;\">P</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">A subnet node with two key values, the first one for "
+"identifying the subnet and the second for identifying the node in the subnet."
+"</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">connect</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be one of several grouped values of the P, K or R key. "
+"Configuring a connection to another node. </br></br> The value of the "
+"connect key is a node key (P or K) with two resp. one number value "
+"identifying the node, and an additional value configuring a protocol. </br></"
+"br> If the connect key is used in a line configuring a node it is used to "
+"configure a connection, which will result in the node identified by the line "
+"P or K key will try to connect nodes also identified with the P or K key via "
+"the configured protocol.</td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"10%\" style=\"vertical-align: top;\">tcp_port</td><td width=\"90%\" "
+"style=\"vertical-align: top;\">Can be a grouped value of the R key. The "
+"value of the tcp_port can be 0 or 1, if a port forwarding to the first "
+"(index 1) node of a subnet is not or is configured for the tcp protocol.</"
+"td> </tr> <tr> <td></td><td> </td> </tr> <tr> <td width=\"10%\" style="
+"\"vertical-align: top;\">udp_port</td><td width=\"90%\" style=\"vertical-"
+"align: top;\">Can be a grouped value of the R key. The value of the tcp_port "
+"can be 0 or 1, if a port forwarding to the first (index 1) node of a subnet "
+"is not or is configured for the udp protocol.</td> </tr> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"10%\" style=\"vertical-align: top;\">plugin</"
+"td><td width=\"90%\" style=\"vertical-align: top;\">Can be a grouped value "
+"of the P or K key. The value is the name of a plugin which will run on that "
+"peer instead of the default plugin defined by key K.</td> </tr> </table>"
+msgstr ""
+
 #: template/news/index.html.j2:45
 msgid "News archives:"
 msgstr "新聞檔案:"
@@ -3731,6 +4316,19 @@ msgstr ""
 "依賴方從分散的目錄中檢索加密的身份數據。它能夠使用相應的密鑰解密所有用戶已授"
 "權訪問的屬性。"
 
+#~ msgid "Cadet-GTK"
+#~ msgstr "學員GTK (Cadet-GTK)"
+
+#~ msgid ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> "
+#~ "is a convenient but feature-rich graphical application providing "
+#~ "messaging using the CADET subsystem. It is developed using GTK and "
+#~ "libhandy for a convergent design."
+#~ msgstr ""
+#~ "<a href=\"https://gitlab.com/gnunet-messenger/cadet-gtk\";>Cadet-GTK</a> 是"
+#~ "一種方便而功能豐富的圖形應用程序,Cadet-GTK 尤其使用 CADET 子系統提供消息"
+#~ "傳遞。其使用 GTK 和 libhandy 開發的以收斂設計。"
+
 #~ msgid "The IRC channel"
 #~ msgstr "IRC頻道"
 
diff --git a/template/news/2022-02-0.16.0.html.j2 
b/template/news/2022-02-0.16.0.html.j2
new file mode 100644
index 0000000..aaa5530
--- /dev/null
+++ b/template/news/2022-02-0.16.0.html.j2
@@ -0,0 +1,80 @@
+{% extends "common/news.j2" %}
+{% block body_content %}
+  <h1>GNUnet 0.16.0 released</h1>
+<p>
+  We are pleased to announce the release of GNUnet 0.16.0.
+<br>
+  This is a new major release. It breaks protocol compatibility with the 
0.15.x versions.
+  Please be aware that Git master is thus henceforth (and has been for a
+  while) <b>INCOMPATIBLE</b> with
+  the 0.15.x GNUnet network, and interactions between old and new peers
+  will result in issues.  0.15.x peers will be able to communicate with Git
+  master or 0.16.x peers, but some services - in particular GNS - will not be 
compatible.<br/>
+  In terms of usability, users should be aware that there are still
+  <b>a number of known open issues</b> in particular with respect to ease
+  of use, but also some critical privacy issues especially for mobile users.
+  Also, the nascent network is tiny and thus unlikely to
+  provide good anonymity or extensive amounts of interesting information.
+  As a result, the 0.16.0 release is still <b>only suitable for early adopters
+  with some reasonable pain tolerance</b>.
+</p>
+<h4>Download links</h4>
+<ul>
+  <li><a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.0.tar.gz";>gnunet-0.16.0.tar.gz</a>
 (<a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.0.tar.gz.sig";>signature</a>)</li>
+  <li><a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.15.0.tar.gz";>gnunet-gtk-0.16.0.tar.gz</a>
 (<a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.16.0.tar.gz.sig";>signature</a>)</li>
+  <li><a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.15.0.tar.gz";>gnunet-fuse-0.16.0.tar.gz</a>
 (<a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.16.0.tar.gz.sig";>signature</a>)</li>
+</ul>
+<p>
+  The GPG key used to sign is: <a 
href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A";>3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
+</p>
+<p>
+  Note that due to mirror synchronization, not all links might be functional
+  early after the release. For direct access try
+  <a href="http://ftp.gnu.org/gnu/gnunet/";>http://ftp.gnu.org/gnu/gnunet/</a>
+</p>
+<h4>Noteworthy changes in 0.16.0 (since 0.15.3)</h4>
+<ul>
+  <li><tt>GNS</tt>:
+      <ul>
+        <li>New record flag: CRITICAL. For records that must be processed 
otherwise resolution must fail. <a 
href="https://bugs.gnunet.org/view.php?id=7169";>#7169</a></li>
+        <li>Deletion of records and reduction of expiration times is now 
properly handled with respect to monotonically increasing expiratin times. <a 
href="https://bugs.gnunet.org/view.php?id=7170";>#7170</a></li>
+        <li>VPN tunnel establishment is moved out of the GNS resolver to be 
handled by applications (such as the DNS2GNS service). <a 
href="https://bugs.gnunet.org/view.php?id=7171";>#7171</a></li>
+        <li>Introduces new record type REDIRECT which replaces the previous 
(ab)use of CNAME records. <a 
href="https://bugs.gnunet.org/view.php?id=7172";>#7172</a></li>
+        <li>The specification has been updated to reflect the changes. <a 
href="https://lsd.gnunet.org/lsd0001";>LSD0001</a></li>
+
+      </ul>
+  </li>
+  <li><tt>DHT</tt>:
+    <ul>
+      <li>Routes can now be signed. <a 
href="https://bugs.gnunet.org/view.php?id=4164";>#4164</a></li>
+      <li>Changed distance metric to a more traditional XOR. <a 
href="https://bugs.gnunet.org/view.php?id=7136";>#7136</a></li>
+        <li>The specification has been updated to reflect the changes. <a 
href="https://lsd.gnunet.org/lsd0004";>LSD0004</a></li>
+    </ul>
+  </li>
+  <li><tt>RECLAIM</tt>: Added some preliminary support for Decentralized 
Identifier (DID) and Verifiable Credentials (VCs).</li>
+  <li><tt>UTIL</tt>: Add Clause-Schnorr blind signatures. For use in <a 
href="https://taler.net/en/news/2022-02.html";>Taler</a>.</li>
+  <li><tt>BUILD</tt>: Building from git now requires <tt>recutils</tt>. The 
bootstrap will generate up-to-date header files from <a 
href="https://gana.gnunet.org";>GANA</a>.</li>
+</ul>
+<p>
+  A detailed list of changes can be found in the <a 
href="https://git.gnunet.org/gnunet.git/tree/ChangeLog";>ChangeLog</a> and
+  the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13";>bug 
tracker</a>.
+</p>
+<h4>Known Issues</h4>
+<ul>
+  <li>There are known major design issues in the TRANSPORT, ATS and CORE 
subsystems which will need to be addressed in the future to achieve acceptable 
usability, performance and security.</li>
+  <li>There are known moderate implementation limitations in CADET that 
negatively impact performance.</li>
+  <li>There are known moderate design issues in FS that also impact usability 
and performance.</li>
+  <li>There are minor implementation limitations in SET that create 
unnecessary attack surface for availability.</li>
+  <li>The RPS subsystem remains experimental.</li>
+  <li>Some high-level tests in the test-suite fail non-deterministically due 
to the low-level TRANSPORT issues.</li>
+</ul>
+<p>
+  In addition to this list, you may also want to consult our bug tracker at <a 
href="https://bugs.gnunet.org/";>bugs.gnunet.org</a> which lists about 190 more 
specific issues.
+</p>
+
+<h4>Thanks</h4>
+<p>
+  This release was the work of many people. The following people contributed 
code and were thus easily identified:
+  Christian Grothoff, Tristan Schwieren, Alessio Vanni, Florian Dold, 
Thien-Thi Nguyen, t3sserakt, Lucien Heuzeveldt, Gian Demarmels, madmurphy, 
TheJackiMonster and Martin Schanzenbach.
+</p>
+{% endblock body_content %}
diff --git a/www.yml b/www.yml
index d49a9f5..c44a752 100644
--- a/www.yml
+++ b/www.yml
@@ -29,6 +29,9 @@ meetingnotes:
   2019: 2019-12-27
   2020: 2020-12-30
 newsposts:
+  - page: 2022-02-0.16.0.html
+    date: 2022-02-25
+    title: GNUnet 0.16.0
   - page: 2021-12-GNSSpecISE.html
     date: 2021-12-28
     title: GNS Technical Specification Call for Reviews

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]