[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[www] branch master updated: - updated L2O NGI project page with milesto
From: |
gnunet |
Subject: |
[www] branch master updated: - updated L2O NGI project page with milestones 4 info, and added EBNF for the configuration syntax. |
Date: |
Mon, 10 Oct 2022 21:12:31 +0200 |
This is an automated email from the git hooks/post-receive script.
t3sserakt pushed a commit to branch master
in repository www.
The following commit(s) were added to refs/heads/master by this push:
new 4b749f2 - updated L2O NGI project page with milestones 4 info, and
added EBNF for the configuration syntax.
4b749f2 is described below
commit 4b749f2dde3c05df25354535688d803e3b2057b5
Author: t3sserakt <t3ss@posteo.de>
AuthorDate: Mon Oct 10 21:12:17 2022 +0200
- updated L2O NGI project page with milestones 4 info, and added EBNF for
the configuration syntax.
---
template/l2o/index.html.j2 | 79 +++++++++++++--------------
template/l2o/mile4.html.j2 | 107 +++++++++++++++++++++++++++++++++++++
template/l2o/testng.html.j2 | 126 ++++++++++++++------------------------------
3 files changed, 188 insertions(+), 124 deletions(-)
diff --git a/template/l2o/index.html.j2 b/template/l2o/index.html.j2
index 2c529f5..751ab5b 100644
--- a/template/l2o/index.html.j2
+++ b/template/l2o/index.html.j2
@@ -25,16 +25,16 @@
<section>
<p>
{% trans %}
- This project was funded through the NGI Assure Fund, a fund
established by <a href="https://nlnet.nl/project/GNUnet-L2/">NLnet</a>.
+ This project was funded through the NGI Assure Fund, a fund
established by <a href="https://nlnet.nl/project/GNUnet-L2/">NLnet</a>.</br>
{% endtrans %}
</p>
</section>
- <h2><a name="idea" class="subnav-anchor"></a>{{ _("Project motivation")
}}</h2>
+ <h2><a name="idea" class="subnav-anchor"></a>{{ _("Project motivation")
}}</h2></br>
<section>
- <h4>The GNUnet transport subsystem</h4>
+ <h4>The GNUnet transport subsystem</h4></br>
<p>
{% trans %}
The <a
href="https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-Subsystem">current</a>
GNUnet TRANSPORT architecture with its pluggable transport mechanism (TCP,
UDP, HTTP(S) and other protocols) together with the ATS subsystem for bandwidth
allocation and choosing plugins has several <a
href="https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-Subsystem">issues</a>
with its design.
@@ -44,38 +44,38 @@
One major change in the design is to separate the protocol plugins
into processes (now called communicators) detached from the main transport
service. Three communicators were already implemented (TCP, UDP and UNIX
sockets).
The old transport code is hard to maintain, because it is cluttered
with "manipulation" support code for TESTBED (the actual testing framework).
Testing TRANSPORT is a hard task, especially with TESTBED which has its own
design flaws, and test code which is very hard to read to get an idea what the
test code is doing. Therefore the first task (milestone 1) is to implement a
new testing framework which uses network namespaces to make testing of TNG much
easier. Have a look into what is [...]
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h2><a name="testframework" class="subnav-anchor"></a>{{ _("New Test
Framwork") }}</h2>
+ <h2><a name="testframework" class="subnav-anchor"></a>{{ _("New Test
Framwork") }}</h2></br>
- <p>The new testing framework consists of two major parts. First the
command style pattern borrowed from the GNU Taler project, second a network
namespace setup, to have a suitable test setup for testing several network
topologies with lossy connections, firewalls, etc..</p>
+ <p>The new testing framework consists of two major parts. First the
command style pattern borrowed from the GNU Taler project, second a network
namespace setup, to have a suitable test setup for testing several network
topologies with lossy connections, firewalls, etc..</p></br>
- <h3><a name="cmd" class="subnav-anchor"></a>{{ _("Command Style
Pattern") }}</h3>
+ <h3><a name="cmd" class="subnav-anchor"></a>{{ _("Command Style
Pattern") }}</h3></br>
<section>
<p>
{% trans %}
The new style of writing tests in GNUnet is borrowed from the <a
href="https://docs.taler.net/developers-manual.html#testing-library">GNU Taler
testing library</a>. In <a href="#milestone1">milestone 1</a> we implemented
commands to setup the <a href="#netjails">netjails</a>, the test environment
for each peer, to start a single peers and sending a simple test message.
Because some commands depend on other commands to be finished, and those
commands are asynchronous, we needed additio [...]
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h3><a name="netjails" class="subnav-anchor"></a>{{ _("Netjails") }}</h3>
+ <h3><a name="netjails" class="subnav-anchor"></a>{{ _("Netjails")
}}</h3></br>
<section>
<p>
{% trans %}
To do extensive testing of the new transport implementation
one needs to simulate various network topologies to enable faking network
characteristics like lossy connections or firewalls. To achieve this we are
working with <a
href="https://www.man7.org/linux/man-pages/man8/ip-netns.8.html">network
namespace</a>. We have commands for starting and stopping network namespaces.
Those commands are scripts, which are using several shell commands to setup the
network namespace. A [...]
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h2><a name="milestones" class="subnav-anchor"></a>{{ _("Milestones")
}}</h2>
+ <h2><a name="milestones" class="subnav-anchor"></a>{{ _("Milestones")
}}</h2></br>
- <p>The next milestone to be reached is milestone 4.</p>
+ <p>The next milestone to be reached is milestone 5.</p></br>
- <h3><a name="milestone1" class="subnav-anchor"></a>{{ _("Milestone 1
Test Infrastructure and minimal Test Case") }}</h3>
+ <h3><a name="milestone1" class="subnav-anchor"></a>{{ _("Milestone 1
Test Infrastructure and minimal Test Case") }}</h3></br>
<section>
<p>
{% trans %}
@@ -85,20 +85,20 @@
<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>
+ </ul></br>
{% endtrans %}
</p>
- <h4>Deliverable</h4>
+ <h4>Deliverable</h4></br>
<p>
{% trans %}
First MVP which uses the TCP communicator to send messages between
peers. The deliverable can be verified through out the specific test cases
running in the GNUnet CI.
<a href="mile1.html">Details</a>
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h3><a name="milestone2" class="subnav-anchor"></a>{{ _("Milestone 2
Enhancing Test Framework") }}</h3>
+ <h3><a name="milestone2" class="subnav-anchor"></a>{{ _("Milestone 2
Enhancing Test Framework") }}</h3></br>
<section>
<p>
{% trans %}
@@ -108,18 +108,18 @@
<li>Block execution of commands at a peer. (Barriers).</li>
</ul>
{% endtrans %}
- </p>
- <h4>Deliverable</h4>
+ </p></br>
+ <h4>Deliverable</h4></br>
<p>
{% trans %}
- Outcome of this deliverable are advanced test case (again verifiable
in the GNUnet continuous integration (CI)).
+ Outcome of this deliverable are advanced test cases (again verifiable
in the GNUnet continuous integration (CI)).
<a href="mile2.html">Details</a>
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h3><a name="milestone3" class="subnav-anchor"></a>{{ _("Milestone 3 UDP
integration") }}</h3>
+ <h3><a name="milestone3" class="subnav-anchor"></a>{{ _("Milestone 3 UDP
integration") }}</h3></br>
<section>
<p>
{% trans %}
@@ -129,33 +129,34 @@
<li>UDP broadcast.</li>
</ul>
{% endtrans %}
- </p>
+ </p></br>
<h4>Deliverable</h4>
<p>
{% trans %}
- The CI contains test case which uses the UDP protocol to message
between peers and to learn about “foreign” peers.
+ 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>
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h3><a name="milestone4" class="subnav-anchor"></a>{{ _("Milestone 4
Distance Vector") }}</h3>
+ <h3><a name="milestone4" class="subnav-anchor"></a>{{ _("Milestone 4
Distance Vector") }}</h3></br>
<section>
<p>
{% trans %}
- 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.
+ In this subtask I will enhance connectivity to peers not directly
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 lea [...]
{% endtrans %}
- </p>
- <h4>Deliverable</h4>
+ </p></br>
+ <h4>Deliverable</h4></br>
<p>
{% trans %}
- 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 CI contains test cases with a setup of peers not connected
directly. 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>
{% endtrans %}
- </p>
+ </p></br>
</section>
- <h3><a name="milestone5" class="subnav-anchor"></a>{{ _("Milestone 5 NAT
Traversal") }}</h3>
+ <h3><a name="milestone5" class="subnav-anchor"></a>{{ _("Milestone 5 NAT
Traversal") }}</h3><br/>
<section>
<p>
{% trans %}
@@ -165,17 +166,17 @@
<li>Autonomous NAT Traversal using fake ICMP messages.</li>
</ul>
{% endtrans %}
- </p>
- <h4>Deliverable</h4>
+ </p><br/>
+ <h4>Deliverable</h4><br/>
<p>
{% trans %}
The CI contains test case with a peer setup containing peer behind a
NAT. The test cases
proof that each peer can be reached, even if that peer is behind a NAT.
The test case are measuring the performance. This measurement is used to
compare with the outcome of the next milestone. This result of this milestone
will be a first stable release.
{% endtrans %}
- </p>
+ </p><br/>
</section>
- <h3><a name="milestone6" class="subnav-anchor"></a>{{ _("Milestone 6
Optimization") }}</h3>
+ <h3><a name="milestone6" class="subnav-anchor"></a>{{ _("Milestone 6
Optimization") }}</h3><br/>
<section>
<p>
{% trans %}
@@ -195,15 +196,15 @@ I will finish the project with a performance analysis to
optimize the selection
<li>Performance analysis.</li>
</ul>
{% endtrans %}
- </p>
- <h4>Deliverable</h4>
+ </p><br/>
+ <h4>Deliverable</h4><br/>
<p>
{% trans %}
The test cases in the CI are measuring the performance gains.
This measurement can be compared with the measurement of milestone 5. Again one
outcome of this milestone will be a stable release.
Documentation of the interpeer project analysis.
{% endtrans %}
- </p>
+ </p><br/>
</section>
diff --git a/template/l2o/mile4.html.j2 b/template/l2o/mile4.html.j2
new file mode 100644
index 0000000..5e7d3a1
--- /dev/null
+++ b/template/l2o/mile4.html.j2
@@ -0,0 +1,107 @@
+{% extends "common/base.j2" %}
+{% block body_content %}
+<article class="container">
+
+ <header>
+ <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
+ </header>
+
+ <div class="row">
+ <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu
for better orientation -->
+ <nav class="nav subnav position-fixed flex-column border-right"
style="position:fixed">
+ <a class="nav-link" href="index.html#idea">{{ _("Project main page")
}}</a>
+ </nav>
+ </div>
+ <div class="col">
+
+ <h2>Implementation details milestone 4</h2><br/>
+
+ <section>
+ <h4><a name="netjail" class="subnav-anchor"></a>{{ _("TNG Service")
}}</h4><br/>
+ <p>
+ {% trans %}
+ <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>
+ {% endtrans %}
+ </p>
+ <p>
+ Even more details in commits fc99f54070e04c043c14f2244f85833ecf6b00c4,
95a1edacccd9b3bf769a144a12d41946d0ac25dc and
247230d737e3e4709392148bfabbde25871b6914
+ </p>
+ </section>
+
+ <section>
+ <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Master Loop")
}}</h4>
+ <p>
+ {% trans %}
+ <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>
+ {% endtrans %}
+ </p>
+ <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Local Loop")
}}</h4>
+ <p>
+ {% trans %}
+ <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>
+ {% endtrans %}
+ </p>
+ <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Configuration")
}}</h4>
+ <p>
+ {% trans %}
+ <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>
+ {% endtrans %}
+ </p>
+ </section>
+
+
+ </div>
+ </div>
+
+</article>
+{% endblock body_content %}
\ No newline at end of file
diff --git a/template/l2o/testng.html.j2 b/template/l2o/testng.html.j2
index 08f0119..5b56746 100644
--- a/template/l2o/testng.html.j2
+++ b/template/l2o/testng.html.j2
@@ -14,10 +14,10 @@
</div>
<div class="col">
- <h2>The next generation testing framework</h2>
+ <h2>The next generation testing framework</h2><br/>
<section>
- <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Netjail setup
and execution") }}</h4>
+ <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Netjail setup
and execution") }}</h4><br/>
<p>
{% trans %}
Netjail is the GNUnet naming for having several <a
href="https://www.man7.org/linux/man-pages/man8/ip-netns.8.html">network
namespaces</a>, being isolated from each other to test how GNUnet nodes with
limited connectivity behave, and how the new transport next generation
implementation can help to circumvent the connectivity obstacles. The network
namespaces are span a network with globally known nodes and several subnets
separated from each other via a single router.
@@ -32,10 +32,10 @@
The is a generic test binary (test_transport_start_with_config)
which will start the above mentioned scripts. Because creating network
namespaces is only permitted for privileged users the generic test binary is
not start directly, but via scripts. This script starts the generic binary
using the command unshare. Using unshare one can create a namespace with its
own user namespace, where creating network namespaces is allowed. Precondition
to do this with unshare, is to set the kerne [...]
{% endtrans %}
- </p>
+ </p><br/>
</section>
- <h4><a name="cmdhelper" class="subnav-anchor"></a>{{ _("CMD helper and
testcase plugins") }}</h4>
+ <h4><a name="cmdhelper" class="subnav-anchor"></a>{{ _("CMD helper and
testcase plugins") }}</h4><br/>
<section>
<p>
@@ -43,18 +43,18 @@
Although netjail_exec.sh can execute an arbitrary command in the ng
testing framework a special command is used: gnunet-cmds-helper
This commands itself is of a special kind named helper processes
which communicates via GNUNET_MessageHeaders on stdin/stdout with the process
that started the helper. The gnunet-cmds-helper is used to load testcase
plugins. Those plugins are implementations of an api which is used to start
different test cases. Those plugins are dynamically loaded by
gnunet-cmds-helper. Each plugin defines the commands which are running in a
local interpreter loop started by the helper on that specif [...]
{% endtrans %}
- </p>
+ </p><br/>
</section>
- <h4><a name="cmdpattern" class="subnav-anchor"></a>{{ _("Command
Pattern") }}</h4>
+ <h4><a name="cmdpattern" class="subnav-anchor"></a>{{ _("Command
Pattern") }}</h4><br/>
<section>
<p>
{% trans %}
The testing framework borrowed from the <a
href="https://docs.taler.net/developers-manual.html#testing-library">GNU Taler
testing library</a> was extended to handle asychronous commands. Therefore a
struct GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command.
By default the continuation function of GNUNET_TESTING_AsyncContext is the
interpreter_next function of the interpreter loop (blocking asynchronous
command) which will be executed calling GNUNET_TESTING_async_fi [...]
{% endtrans %}
- </p>
+ </p><br/>
</section>
- <h4><a name="cmdpattern" class="subnav-anchor"></a>{{ _("Topology
Configuration") }}</h4>
+ <h4><a name="cmdpattern" class="subnav-anchor"></a>{{ _("Topology
Configuration") }}</h4><br/>
<section>
<p>
@@ -71,83 +71,39 @@ test_transport_send_simple_string.sh</br></br>
The Syntax of the configuration is as follows.</br></br>
-The configuration string is structured by lines and the delimiter ':' used for
seperating key/value(s) pairs and the chars '{' and '}' for grouping several
key/value pairs as value and '|' to separate a group of values from the
key/value(s) pair identifying a line.</br></br>
-
-Keys are</br></br>
-
-<table width="100%">
- <tr>
- <td width="10%" style="vertical-align: top;">M</td><td
width="90%" style="vertical-align: top;">The number of natted subnets in the
topology.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align: top;">N</td><td
width="90%" style="vertical-align: top;">The number of nodes in each
subnet.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align: top;">X</td><td
width="90%" style="vertical-align: top;">The Number of globally known (not
natted) nodes.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align: top;">K</td><td
width="90%" style="vertical-align: top;"> A globally known (not natted) node.
The number value identifies the node.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align: top;">T</td><td
width="90%" style="vertical-align: top;">The default test plugin to
execute.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align: top;">R</td><td
width="90%" style="vertical-align: top;">A router of a subnet.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align: top;">P</td><td
width="90%" style="vertical-align: top;">A subnet node with two key values, the
first one for identifying the subnet and the second for identifying the node in
the subnet.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align:
top;">connect</td><td width="90%" style="vertical-align: top;">Can be one of
several grouped values of the P, K or R key. Configuring a connection to
another node. </br></br>
-
- The value of the connect key is a node key (P or K) with two resp.
one number value identifying the node, and an additional value
- configuring a protocol. </br></br>
-
- If the connect key is used in a line configuring a node it is used
to configure a connection, which will result in the node identified by the
- line P or K key will try to connect nodes also identified with the
P or K key via the configured protocol.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align:
top;">tcp_port</td><td width="90%" style="vertical-align: top;">Can be a
grouped value of the R key. The value of the tcp_port can be 0 or 1, if a port
forwarding to the first (index 1) node of a subnet is not or is configured for
the
- tcp protocol.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align:
top;">udp_port</td><td width="90%" style="vertical-align: top;">Can be a
grouped value of the R key. The value of the tcp_port can be 0 or 1, if a port
forwarding to the first (index 1) node of a subnet is not or is configured for
the
- udp protocol.</td>
- </tr>
- <tr>
- <td></td><td> </td>
- </tr>
- <tr>
- <td width="10%" style="vertical-align:
top;">plugin</td><td width="90%" style="vertical-align: top;">Can be a grouped
value of the P or K key. The value is the name of a plugin which will run on
that peer instead of the default plugin defined by key K.</td>
- </tr>
- </table>
+The configuration string is structured by lines and the delimiter ':' used for
seperating key/value(s) pairs and the chars '{' and '}' for grouping several
key/value pairs as value and '|' to separate a group of values from the
key/value(s) pair identifying a line. 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/>
{% endtrans %}
</p>
</section>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [www] branch master updated: - updated L2O NGI project page with milestones 4 info, and added EBNF for the configuration syntax.,
gnunet <=