gnunet-svn
[Top][All Lists]
Advanced

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

[www] branch master updated: add 0.18 news item


From: gnunet
Subject: [www] branch master updated: add 0.18 news item
Date: Thu, 27 Oct 2022 07:02:22 +0200

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 d1bf6cb  add 0.18 news item
d1bf6cb is described below

commit d1bf6cb5c6c81c88b3907070740ffd0ecb32650f
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Thu Oct 27 14:02:15 2022 +0900

    add 0.18 news item
---
 locale/ar/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/de/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/es/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/fr/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/hi/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/it/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/ja/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/ko/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/messages.pot                    | 197 +++++++++++++++++++++------------
 locale/pt/LC_MESSAGES/messages.po      | 193 +++++++++++++++++++++-----------
 locale/zh_Hant/LC_MESSAGES/messages.po | 193 +++++++++++++++++++++-----------
 template/news/2022-10-0.18.0.html.j2   |  93 ++++++++++++++++
 www.yml                                |   3 +
 13 files changed, 1485 insertions(+), 738 deletions(-)

diff --git a/locale/ar/LC_MESSAGES/messages.po 
b/locale/ar/LC_MESSAGES/messages.po
index 4ed7565..a0dca49 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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/";
@@ -2715,6 +2715,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 msgid "Configuration"
 msgstr ""
 
@@ -2746,11 +2747,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -2908,7 +2911,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -2953,7 +2956,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3038,7 +3041,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3062,7 +3065,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3082,7 +3085,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3093,28 +3096,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3123,11 +3133,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3143,7 +3153,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3152,12 +3162,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3193,7 +3204,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3352,6 +3363,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3442,50 +3515,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/de/LC_MESSAGES/messages.po 
b/locale/de/LC_MESSAGES/messages.po
index 6fb9686..3c2e823 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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/";
@@ -3864,6 +3864,7 @@ msgstr "Tutorial: GNUnet auf OpenWrt"
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 msgid "Configuration"
 msgstr "Konfiguration"
 
@@ -3925,11 +3926,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -4139,7 +4142,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -4186,7 +4189,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -4273,7 +4276,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -4297,7 +4300,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -4317,7 +4320,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -4328,28 +4331,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -4358,11 +4368,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -4378,7 +4388,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -4387,12 +4397,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -4428,7 +4439,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -4587,6 +4598,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -4679,50 +4752,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/es/LC_MESSAGES/messages.po 
b/locale/es/LC_MESSAGES/messages.po
index 25dbfb8..d593d98 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\n"
 "PO-Revision-Date: 2022-08-17 22:14+0000\n"
 "Last-Translator: Lucía López <lulopezcabrera@gmail.com>\n"
 "Language-Team: Spanish <https://weblate.taler.net/projects/gnunet/website/es/";
@@ -3548,6 +3548,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3581,11 +3582,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -3748,7 +3751,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -3793,7 +3796,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3878,7 +3881,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3902,7 +3905,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3922,7 +3925,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3933,28 +3936,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3963,11 +3973,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3983,7 +3993,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3992,12 +4002,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -4033,7 +4044,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -4192,6 +4203,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -4284,50 +4357,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/fr/LC_MESSAGES/messages.po 
b/locale/fr/LC_MESSAGES/messages.po
index ad4c338..d336e59 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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/";
@@ -2974,6 +2974,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3007,11 +3008,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -3174,7 +3177,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -3219,7 +3222,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3304,7 +3307,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3328,7 +3331,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3348,7 +3351,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3359,28 +3362,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3389,11 +3399,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3409,7 +3419,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3418,12 +3428,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3459,7 +3470,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3618,6 +3629,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3710,50 +3783,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/hi/LC_MESSAGES/messages.po 
b/locale/hi/LC_MESSAGES/messages.po
index fc6ae37..a3cc148 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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"
@@ -2710,6 +2710,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -2743,11 +2744,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -2905,7 +2908,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -2950,7 +2953,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3035,7 +3038,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3059,7 +3062,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3079,7 +3082,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3090,28 +3093,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3120,11 +3130,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3140,7 +3150,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3149,12 +3159,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3190,7 +3201,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3349,6 +3360,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3441,50 +3514,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/it/LC_MESSAGES/messages.po 
b/locale/it/LC_MESSAGES/messages.po
index 5892e45..7e9f75a 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\n"
 "PO-Revision-Date: 2022-03-27 11:53+0000\n"
 "Last-Translator: Roberto Pellegrino <speekix@gmail.com>\n"
 "Language-Team: Italian <http://weblate.taler.net/projects/gnunet/website/it/";
@@ -3572,6 +3572,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3605,11 +3606,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -3771,7 +3774,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -3816,7 +3819,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3901,7 +3904,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3925,7 +3928,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3945,7 +3948,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3956,28 +3959,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3986,11 +3996,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -4006,7 +4016,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -4015,12 +4025,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -4056,7 +4067,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -4215,6 +4226,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -4307,50 +4380,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/ja/LC_MESSAGES/messages.po 
b/locale/ja/LC_MESSAGES/messages.po
index 40ca4bb..81b1164 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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/";
@@ -3210,6 +3210,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -3243,11 +3244,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -3409,7 +3412,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -3454,7 +3457,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3539,7 +3542,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3563,7 +3566,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3583,7 +3586,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3594,28 +3597,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3624,11 +3634,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3644,7 +3654,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3653,12 +3663,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3694,7 +3705,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3853,6 +3864,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3945,50 +4018,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/ko/LC_MESSAGES/messages.po 
b/locale/ko/LC_MESSAGES/messages.po
index 98c4975..56b419f 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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/";
@@ -2722,6 +2722,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 #, fuzzy
 #| msgid "Continuous Integration"
 msgid "Configuration"
@@ -2755,11 +2756,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -2917,7 +2920,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -2962,7 +2965,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3047,7 +3050,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3071,7 +3074,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3091,7 +3094,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3102,28 +3105,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3132,11 +3142,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3152,7 +3162,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3161,12 +3171,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3202,7 +3213,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3361,6 +3372,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3453,50 +3526,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/messages.pot b/locale/messages.pot
index acbaf7c..cc5afdc 100644
--- a/locale/messages.pot
+++ b/locale/messages.pot
@@ -8,14 +8,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.10.1\n"
+"Generated-By: Babel 2.10.3\n"
 
 #: common/base.j2:5 common/news.j2:5
 msgid "GNUnet"
@@ -2731,6 +2731,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 msgid "Configuration"
 msgstr ""
 
@@ -2764,8 +2765,10 @@ msgid ""
 " <li><a href=\"https://aur.archlinux.org/packages/gnunet/\";>Arch "
 "(AUR)</a></li> <li><a "
 "href=\"https://packages.debian.org/search?keywords=gnunet\";>Debian</a></li>"
-" <li> Fedora (copr): <code class=\"block\"> # dnf copr enable "
-"schanzen/gnunet </code> </li> <li><a "
+" <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/gnunet/\";>Fedora"
+" (copr)</a>: <code class=\"block\"> # dnf copr enable schanzen/gnunet "
+"</code> </li> <li><a "
 "href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
 "href=\"https://github.com/Homebrew/homebrew-";
 "core/blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a "
@@ -2927,7 +2930,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -2970,7 +2973,7 @@ 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>."
+"by <a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3058,7 +3061,7 @@ msgid ""
 "<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>"
+"and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3082,7 +3085,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in "
+"Outcome of this deliverable are advanced test cases (again verifiable in "
 "the GNUnet continuous integration (CI)). <a "
 "href=\"mile2.html\">Details</a>"
 msgstr ""
@@ -3103,8 +3106,8 @@ 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 "
+"The CI contains test cases which uses the UDP protocol to message between"
+" peers and to learn about “foreign” peers. <a "
 "href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3115,28 +3118,35 @@ 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."
+"connected. Therefore peers have to act as relay. To achieve this there is"
+" the distance vector protocol. The DV algorithm sends out so called learn"
+" messages to other peers. If those learn messages are coming back to the "
+"initiating peer via some other peer and the path does not return to any "
+"other peer we have a circle path. If there are bidirectional connections "
+"between peers somewhere in the DV path and the learn message comes back "
+"to a peer we call it inverse path."
 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."
+"The test cases proof that each peer can reach any other peer. We have "
+"test cases for the circle path and for the inverse path. <a "
+"href=\"mile4.html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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"
@@ -3145,11 +3155,11 @@ msgid ""
 "This result of this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control,"
 " quality of service optimizations) which will select the optimal "
@@ -3166,7 +3176,7 @@ msgid ""
 "<li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 msgid ""
 "The test cases in the CI are measuring the performance gains. This "
 "measurement can be compared with the measurement of milestone 5. Again "
@@ -3175,12 +3185,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3219,7 +3230,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3389,6 +3400,69 @@ msgid ""
 "backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual "
+"link is missing.</li> <li>Fixed bugs in fragmentation logic.</li> "
+"<li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs in flow "
+"control logic.</li> <li>Fixed Bug with lifetime of DV learn message. "
+"(Validation against replay attack still missing.)</li> <li>Fixed Bug in "
+"rekeying logic of the TCP communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td "
+"width=\"55%\" style=\"vertical-align: top;\">Added script to start the "
+"inverse distance vector test case.</td> <tr> <td></td><td> </td> </tr> "
+"<tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_simple_send_dv_circle.sh</td><td "
+"width=\"55%\" style=\"vertical-align: top;\">Added script to start the "
+"circle distance vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/transport_api_cmd_connecting_peers.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Added logic to handle "
+"counting additonal connection per peer.</td> <tr> <td></td><td> </td> "
+"</tr> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_plugin_cmd_simple_send_dv.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Added plugin which creates "
+"the commands for the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td"
+" width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">src/transport/test_transport_distance_vector_circle_topo.conf</td><td"
+" width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"circle path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: "
+"top;\">src/testing/netjail_start.sh</td><td width=\"40%\" style"
+"=\"vertical-align: top;\">Enhanced port forwarding configuration to "
+"restrict port forwarding to specific source IPs.</td> <tr> <td></td><td> "
+"</td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: "
+"top;\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Make specific nodes configurable as source node for IP "
+"forwarding.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/testing.c</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Helper methods to retrieve "
+"the number of additional connections globally and per peer, and which "
+"peer is allowed as source for IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3483,52 +3557,39 @@ msgid ""
 "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>"
+"key/value(s) pair identifying a line. Below you find the EBNF of the "
+"configuration syntax.</br></br> config = line, {line} ;<br/><br/> line = "
+"( \"M:\", NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( "
+"\"X:\", NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\","
+" GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) "
+";<br/><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = "
+"\"libgnunet_test_transport_plugin_cmd_\", PluginName ;<br/><br/> "
+"GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/><br/> KValue = "
+"EstablishConnectionToPeerViaProtocol ;<br/><br/> IndexOfSubnetRouter = "
+"Zero | NaturalNumber ;<br/><br/> RValue = \"{\", ProtocolPortToOpen, "
+"\":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", SubnetIndex, \":\","
+" NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" "
+";<br/><br/> NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> "
+"PluginName = Letter , { ( Letter | \"_\" ) } ;<br/><br/> "
+"IndexOfGlobalNode = Zero | NaturalNumber ;<br/><br/> "
+"EstablishConnectionToPeerViaProtocol = \"{\" \"connect\", \":\" "
+"EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/> "
+"ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On "
+"| Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> "
+"NodeIndexInSubnet = NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" "
+"| Numeral ;<br/><br/> Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | "
+"\"6\" | \"7\" | \"8\" | \"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | "
+"\"Z\" | \"a\" | ... | \"z\";<br/><br/> "
+"EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off ="
+" 0 ;<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" "
+";<br/><br/> off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/pt/LC_MESSAGES/messages.po 
b/locale/pt/LC_MESSAGES/messages.po
index 50bbcd5..edd2fb0 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -2678,6 +2678,7 @@ msgstr ""
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 msgid "Configuration"
 msgstr ""
 
@@ -2709,11 +2710,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -2869,7 +2872,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -2912,7 +2915,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -2997,7 +3000,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3021,7 +3024,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3041,7 +3044,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3052,28 +3055,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3082,11 +3092,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3102,7 +3112,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3111,12 +3121,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3152,7 +3163,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -3311,6 +3322,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -3401,50 +3474,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/locale/zh_Hant/LC_MESSAGES/messages.po 
b/locale/zh_Hant/LC_MESSAGES/messages.po
index 3db182a..e47db94 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: 2022-09-04 12:45+0200\n"
+"POT-Creation-Date: 2022-10-24 23:15+0900\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/";
@@ -3364,6 +3364,7 @@ msgstr "教學:OpenWrt 上的 GNUnet"
 
 #: 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
+#: template/l2o/mile4.html.j2:70
 msgid "Configuration"
 msgstr "配置"
 
@@ -3422,11 +3423,13 @@ msgid ""
 "at least: <ul> <li><a href=\"https://pkgs.alpinelinux.org/package/edge/";
 "community/x86_64/gnunet\">Alpine</a></li> <li><a href=\"https://aur.";
 "archlinux.org/packages/gnunet/\">Arch (AUR)</a></li> <li><a href=\"https://";
-"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> Fedora "
-"(copr): <code class=\"block\"> # dnf copr enable schanzen/gnunet </code> </"
-"li> <li><a href=\"https://guix.gnu.org/en/packages/G/\";>Guix</a></li> <li><a "
-"href=\"https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.";
-"rb\">Homebrew</a></li> <li><a href=\"https://search.nixos.org/packages?";
+"packages.debian.org/search?keywords=gnunet\">Debian</a></li> <li> <a "
+"href=\"https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/";
+"gnunet/\">Fedora (copr)</a>: <code class=\"block\"> # dnf copr enable "
+"schanzen/gnunet </code> </li> <li><a href=\"https://guix.gnu.org/en/packages/";
+"G/\">Guix</a></li> <li><a href=\"https://github.com/Homebrew/homebrew-core/";
+"blob/master/Formula/gnunet.rb\">Homebrew</a></li> <li><a href=\"https://";
+"search.nixos.org/packages?"
 "from=0&size=50&sort=relevance&query=gnunet\">NixOS</a></li> <li><a "
 "href=\"install-on-openwrt.html\">OpenWrt</a></li> </ul> If GNUnet is "
 "available for your Operating System and it is missing, send us feedback so "
@@ -3620,7 +3623,7 @@ 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
+#: template/l2o/mile4.html.j2:6 template/l2o/testng.html.j2:6
 msgid "NGI Assure project: Layer-2-Overlay"
 msgstr ""
 
@@ -3667,7 +3670,7 @@ 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>."
+"<a href=\"https://nlnet.nl/project/GNUnet-L2/\";>NLnet</a>.</br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:39
@@ -3754,7 +3757,7 @@ msgid ""
 "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>"
+"<li>Peers connected through test and transfer data.</li> </ul></br>"
 msgstr ""
 
 #: template/l2o/index.html.j2:93
@@ -3778,7 +3781,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:114
 msgid ""
-"Outcome of this deliverable are advanced test case (again verifiable in the "
+"Outcome of this deliverable are advanced test cases (again verifiable in the "
 "GNUnet continuous integration (CI)). <a href=\"mile2.html\">Details</a>"
 msgstr ""
 
@@ -3798,7 +3801,7 @@ msgstr ""
 
 #: template/l2o/index.html.j2:135
 msgid ""
-"The CI contains test case which uses the UDP protocol to message between "
+"The CI contains test cases which uses the UDP protocol to message between "
 "peers and to learn about “foreign” peers. <a href=\"mile3.html\">Details</a>"
 msgstr ""
 
@@ -3809,28 +3812,35 @@ 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."
+"Therefore peers have to act as relay. To achieve this there is the distance "
+"vector protocol. The DV algorithm sends out so called learn messages to "
+"other peers. If those learn messages are coming back to the initiating peer "
+"via some other peer and the path does not return to any other peer we have a "
+"circle path. If there are bidirectional connections between peers somewhere "
+"in the DV path and the learn message comes back to a peer we call it inverse "
+"path."
 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."
+"test cases proof that each peer can reach any other peer. We have test cases "
+"for the circle path and for the inverse path. <a href=\"mile4."
+"html\">Details</a>"
 msgstr ""
 
-#: template/l2o/index.html.j2:158
+#: template/l2o/index.html.j2:159
 msgid "Milestone 5 NAT Traversal"
 msgstr ""
 
-#: template/l2o/index.html.j2:161
+#: template/l2o/index.html.j2:162
 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
+#: template/l2o/index.html.j2:172
 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 "
@@ -3839,11 +3849,11 @@ msgid ""
 "this milestone will be a first stable release."
 msgstr ""
 
-#: template/l2o/index.html.j2:178
+#: template/l2o/index.html.j2:179
 msgid "Milestone 6 Optimization"
 msgstr ""
 
-#: template/l2o/index.html.j2:181
+#: template/l2o/index.html.j2:182
 msgid ""
 "In this subtask I will implement algorithms (flow and congestion control, "
 "quality of service optimizations) which will select the optimal transport "
@@ -3859,7 +3869,7 @@ msgid ""
 "measurement(s).</li> <li>Performance analysis.</li> </ul>"
 msgstr ""
 
-#: template/l2o/index.html.j2:201
+#: template/l2o/index.html.j2:202
 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 "
@@ -3868,12 +3878,13 @@ msgid ""
 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
+#: template/l2o/mile3.html.j2:12 template/l2o/mile4.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
+#: template/l2o/mile3.html.j2:29 template/l2o/mile4.html.j2:40
 msgid "Master Loop"
 msgstr ""
 
@@ -3909,7 +3920,7 @@ msgid ""
 msgstr ""
 
 #: template/l2o/mile1.html.j2:65 template/l2o/mile2.html.j2:48
-#: template/l2o/mile3.html.j2:66
+#: template/l2o/mile3.html.j2:66 template/l2o/mile4.html.j2:55
 msgid "Local Loop"
 msgstr ""
 
@@ -4068,6 +4079,68 @@ msgid ""
 "file for the udp backchannel test case.</td> <tr> </table>"
 msgstr ""
 
+#: template/l2o/mile4.html.j2:20
+msgid "TNG Service"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:22
+msgid ""
+"<ul> <li>Added caching for Core messages, if confirmed virtual link is "
+"missing.</li> <li>Addd caching for DV forwarding, if confirmed virtual link "
+"is missing.</li> <li>Fixed bugs in fragmentation logic.</li> <li>Fixed bugs "
+"in fragmentation logic.</li> <li>Fixed bugs in flow control logic.</li> "
+"<li>Fixed Bug with lifetime of DV learn message. (Validation against replay "
+"attack still missing.)</li> <li>Fixed Bug in rekeying logic of the TCP "
+"communicator</li> </ul>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:42
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width=\"55%"
+"\" style=\"vertical-align: top;\">Added script to start the inverse distance "
+"vector test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/transport/"
+"test_transport_simple_send_dv_circle.sh</td><td width=\"55%\" "
+"style=\"vertical-align: top;\">Added script to start the circle distance "
+"vector test case.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:57
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/transport_api_cmd_connecting_peers.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added logic to handle counting additonal "
+"connection per peer.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%"
+"\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_plugin_cmd_simple_send_dv.c</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Added plugin which creates the commands for "
+"the distance vector test cases.</td> <tr> </table>"
+msgstr ""
+
+#: template/l2o/mile4.html.j2:72
+msgid ""
+"<table width=\"100%\"> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Configuration for the DV "
+"inverse path test case.</td> <tr> <td></td><td> </td> </tr> <tr> <td "
+"width=\"60%\" style=\"vertical-align: top;\">src/transport/"
+"test_transport_distance_vector_circle_topo.conf</td><td width=\"40%\" "
+"style=\"vertical-align: top;\">Configuration for the DV circle path test "
+"case.</td> <tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" "
+"style=\"vertical-align: top;\">src/testing/netjail_start.sh</td><td "
+"width=\"40%\" style=\"vertical-align: top;\">Enhanced port forwarding "
+"configuration to restrict port forwarding to specific source IPs.</td> <tr> "
+"<td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-align: top;"
+"\">contrib/netjail/topo.sh</td><td width=\"40%\" style=\"vertical-align: top;"
+"\">Make specific nodes configurable as source node for IP forwarding.</td> "
+"<tr> <td></td><td> </td> </tr> <tr> <td width=\"60%\" style=\"vertical-"
+"align: top;\">src/testing/testing.c</td><td width=\"40%\" style=\"vertical-"
+"align: top;\">Helper methods to retrieve the number of additional "
+"connections globally and per peer, and which peer is allowed as source for "
+"IP forwarding.</td> <tr> </table>"
+msgstr ""
+
 #: template/l2o/testng.html.j2:20
 msgid "Netjail setup and execution"
 msgstr ""
@@ -4160,50 +4233,36 @@ msgid ""
 "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>"
+"identifying a line. Below you find the EBNF of the configuration syntax.</"
+"br></br> config = line, {line} ;<br/><br/> line = ( \"M:\", "
+"NumberOfNodesPerSubnet ) | ( \"N:\", NumberOfSubnets ) | ( \"X:\", "
+"NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( \"T:\", "
+"GlobalPluginName ) | ( GlobalPeer, \"|\", KValue ) | ( \"R:\", "
+"IndexOfSubnetRouter, \"|\", RValue ) | ( SubnetPeer, \"|\", PValue ) ;<br/"
+"><br/> NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/> "
+"NumberOfSubnets = NaturalNumber ;<br/><br/> NumberOfGlobalNodes = "
+"NaturalNumber ;<br/><br/> NumberOfAdditionalConnections = \"AC:\", "
+"NaturalNumber GlobalPluginName = \"libgnunet_test_transport_plugin_cmd_\", "
+"PluginName ;<br/><br/> GlobalPeer = \"K\", \":\", IndexOfGlobalNode ;<br/"
+"><br/> KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/> "
+"IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/> RValue = \"{\", "
+"ProtocolPortToOpen, \":\", switch, \"}\" ;<br/><br/> SubnetPeer = \"P:\", "
+"SubnetIndex, \":\", NodeIndexInSubnet ;<br/><br/> PValue = "
+"EstablishConnectionToPeerViaProtocol, \"|\", { \"{\", "
+"NumberOfAdditionalConnections, \"}\" } ;<br/><br/> Zero = \"0\" ;<br/><br/> "
+"NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/> PluginName = "
+"Letter , { ( Letter | \"_\" ) } ;<br/><br/> IndexOfGlobalNode = Zero | "
+"NaturalNumber ;<br/><br/> EstablishConnectionToPeerViaProtocol = \"{\" "
+"\"connect\", \":\" EstablishConnectionToPeerViaProtocolValue \"}\" ;<br/><br/"
+"> ProtocolPortToOpen = \"tcp_port\" | \"udp_port\" ;<br/><br/> switch = On | "
+"Off ;<br/><br/> SubnetIndex = NaturalNumber ;<br/><br/> NodeIndexInSubnet = "
+"NaturalNumber ;<br/><br/> NumeralWithoutZero = \"0\" | Numeral ;<br/><br/> "
+"Numeral = \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"7\" | \"8\" | "
+"\"9\" ;<br/><br/> Letter = \"A\" | \"B\" | ... | \"Z\" | \"a\" | ... | \"z\";"
+"<br/><br/> EstablishConnectionToPeerViaProtocolValue = \"{\", ( GlobalPeer | "
+"SubnetPeer ), \":\", Protocol, \"}\" ;<br/><br/> On = 1 ;<br/><br/> Off = 0 ;"
+"<br/><br/> Protocol = \"tcp\" | \"udp\" ;<br/><br/> on = \"1\" ;<br/><br/> "
+"off = \"0\" ;<br/><br/>"
 msgstr ""
 
 #: template/news/index.html.j2:45
diff --git a/template/news/2022-10-0.18.0.html.j2 
b/template/news/2022-10-0.18.0.html.j2
new file mode 100644
index 0000000..662f35f
--- /dev/null
+++ b/template/news/2022-10-0.18.0.html.j2
@@ -0,0 +1,93 @@
+{% extends "common/news.j2" %}
+{% block body_content %}
+  <h1>GNUnet 0.18.0 released</h1>
+<p>
+  We are pleased to announce the release of GNUnet 0.18.0.
+  <br/>
+  GNUnet is an alternative network stack for building secure, decentralized and
+  privacy-preserving distributed applications.
+  Our goal is to replace the old insecure Internet protocol stack.
+  Starting from an application for secure publication of files, it has grown to
+  include all kinds of basic protocol components and applications towards the
+  creation of a GNU internet.
+</p>
+<p>
+  This is a new major release. It breaks protocol compatibility with the 
0.17.x versions.
+  Please be aware that Git master is thus henceforth (and has been for a
+  while) <b>INCOMPATIBLE</b> with
+  the 0.17.x GNUnet network, and interactions between old and new peers
+  will result in issues.  0.17.x peers will be able to communicate with Git
+  master or 0.18.x peers, but some services - in particular the DHT - 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.17.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.18.0.tar.gz";>gnunet-0.18.0.tar.gz</a>
 (<a 
href="http://ftpmirror.gnu.org/gnunet/gnunet-0.18.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.18.0 (since 0.17.6)</h4>
+<ul>
+  <li><tt>UTIL</tt>: Added <tt>enum GNUNET_ErrorCode</tt> for better error 
handling throughout the API.</li>
+  <li><tt>NAMESTORE</tt>:
+      <ul>
+        <li>Moved namecache updates out of namestore and into zonemaster. This 
fixes issues from version 0.17.6 with respect to premature namestore monitor 
update messages and zone propagation. [<a 
href="https://bugs.gnunet.org/view.php?id=7378";>#7378</a>]</li>
+        <li>Added a new API for bulk imports: 
<tt>GNUNET_NAMESTORE_records_store2</tt>. The API can be combined with the 
transactional API in order to significantly improve namestore performance for 
lage zones. For postgres databases, storing records is around 20x faster than 
the old API. [<a href="https://bugs.gnunet.org/view.php?id=7379";>#7379</a>]</li>
+        <li>New database setup utility <tt>gnunet-namestore-dbtool</tt>. 
Databases can be initialized and reset using this new CLI. Currently, database 
plugins still allow to initialize databases automatically as well by setting 
<tt>INIT_ON_CONNECT</tt> (Default: YES).  [<a 
href="https://bugs.gnunet.org/view.php?id=7204";>#7204</a>]</li>
+        <li>There are new APIs for zone iterations and monitoring which 
support filtering of records using <tt>GNUNET_GNSRECORD_Filter</tt>. By 
default, maintenance records such as <tt>TOMBSTONE</tt>s are filtered. [<a 
href="https://bugs.gnunet.org/view.php?id=7193";>#7193</a>]</li>
+        <li>New zonefile import utility <tt>gnunet-namestore-zonefile</tt> 
that for DNS zone files. [<a 
href="https://bugs.gnunet.org/view.php?id=7396";>#7396</a>]</li>
+        <li>Make use of new <tt>enum GNUNET_ErrorCode</tt> in C and REST API. 
[<a href="https://bugs.gnunet.org/view.php?id=7399";>#7399</a>]</li>
+        <li>Included handling of orphaned GNS records. Records are orphaned of 
Egos are (accidentally) deleted which makes operations on records difficult but 
at the same time existing records are still published. [<a 
href="https://bugs.gnunet.org/view.php?id=7401";>#7401</a>, <a 
href="https://bugs.gnunet.org/view.php?id=7402";>#7402</a>]</li>
+        <li>Updated the <a 
href="https://docs.gnunet.org/developers/subsystems/namestore/namestore.html";>C 
API documentation</a> to reflect the above changes.</li>
+        <li>Updated the <a href="https://docs.gnunet.org/users/gns.html";>user 
documentation</a> to reflect the above changes and included various tutorials 
on zone management.</li>
+        <li>Updated the <a 
href="https://docs.gnunet.org/developers/rest/namestore.html";>REST API and its 
documentation</a> to reflect the above changes.</li>
+      </ul>
+  </li>
+  <li><tt>ZONEMASTER</tt>: Zonemaster now uses worker threads for record 
signing.</li>
+  <li><tt>DHT</tt>:
+    <ul>
+      <li>The specification has been updated to reflect the changes. <a 
href="https://lsd.gnunet.org/lsd0004";>LSD0004</a></li>
+    </ul>
+  </li>
+  <li><tt>BUILD</tt>:
+    <ul>
+      <li>Fix mysql/mariadb detection (again). [<a 
href="https://bugs.gnunet.org/view.php?id=7356";>#7356</a>]</li>
+    </ul>
+  </li>
+  <li><tt>PACKAGING</tt>: Revamped the <a 
href="https://git.gnunet.org/gnunet-rpm.git/";>RPM package</a> available through 
<a href="https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/";>Fedora 
COPR</a> and <a 
href="https://bugzilla.redhat.com/show_bug.cgi?id=2094246";>submitted it</a>.
+</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, madmurphy, Willow Liquorice, 
t3sserakt, TheJackiMonster and Martin Schanzenbach.
+</p>
+{% endblock body_content %}
diff --git a/www.yml b/www.yml
index d2ef1a6..50b1913 100644
--- a/www.yml
+++ b/www.yml
@@ -29,6 +29,9 @@ meetingnotes:
   2019: 2019-12-27
   2020: 2020-12-30
 newsposts:
+  - page: 2022-10-0.18.0.html
+    date: 2022-10-27
+    title: GNUnet 0.18.0
   - page: 2022-09-0.17.6.html
     date: 2022-09-26
     title: GNUnet 0.17.6

-- 
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]