summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schanzenbach <schanzen@gnunet.org>2022-12-25 22:08:55 +0900
committerMartin Schanzenbach <schanzen@gnunet.org>2022-12-25 22:08:55 +0900
commit4b01724fec786415ce232a0a8b18dc27b06c1902 (patch)
treeeae1d9e1796d1ed59e6be3226205d052f3ef8199
parent227017efad24f685c47c42d0d098e3316e983862 (diff)
downloadlsd0004-4b01724fec786415ce232a0a8b18dc27b06c1902.tar.gz
lsd0004-4b01724fec786415ce232a0a8b18dc27b06c1902.zip
More on connectivity management
-rw-r--r--draft-schanzen-r5n.xml27
1 files changed, 22 insertions, 5 deletions
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index 60c5967..9495cbf 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -563,13 +563,10 @@ Connectivity | |Underlay| |Underlay|
563 information about its current set of neighbors. 563 information about its current set of neighbors.
564 Upon receiving a connection notification from the Underlay through 564 Upon receiving a connection notification from the Underlay through
565 <tt>PEER_CONNECTED</tt>, information on the new neighbor 565 <tt>PEER_CONNECTED</tt>, information on the new neighbor
566 <bcp14>MUST</bcp14> be added. 566 <bcp14>MUST</bcp14> be added to the routing table.
567 Similarly when a disconnect is indicated by the Underlay through 567 Similarly when a disconnect is indicated by the Underlay through
568 <tt>PEER_DISCONNECTED</tt> messages for all addresses of the peer it 568 <tt>PEER_DISCONNECTED</tt> messages for all addresses of the peer it
569 <bcp14>MUST</bcp14> be removed. 569 <bcp14>MUST</bcp14> be removed from the routing table.
570 The implementation <bcp14>MAY</bcp14> try to re-establish connection
571 to the peer by issuing <tt>TRY_CONNECT</tt> requests on the Underlay
572 using valid HELLO caches.
573 </t> 570 </t>
574 <t> 571 <t>
575 In order to achieve O(log n) routing performance, 572 In order to achieve O(log n) routing performance,
@@ -601,6 +598,8 @@ Connectivity | |Underlay| |Underlay|
601 <tt>PEER_CONNECTED</tt>), or the application/end-user providing at 598 <tt>PEER_CONNECTED</tt>), or the application/end-user providing at
602 least one working HELLO which is then in turn used to call <tt>TRY_CONNECT</tt> 599 least one working HELLO which is then in turn used to call <tt>TRY_CONNECT</tt>
603 on the Underlay. 600 on the Underlay.
601 This is commonly achieved through the configuration of hardcoded bootstrap peers
602 or bootstrap servers either for the Underlay or the R<sup>5</sup>N implementation.
604 While details on how the first connection is established <bcp14>MAY</bcp14> 603 While details on how the first connection is established <bcp14>MAY</bcp14>
605 depend on the specific implementation, this <bcp14>SHOULD</bcp14> usually be done 604 depend on the specific implementation, this <bcp14>SHOULD</bcp14> usually be done
606 by an out-of-band exchange of the information from a HELLO block. 605 by an out-of-band exchange of the information from a HELLO block.
@@ -627,6 +626,11 @@ Connectivity | |Underlay| |Underlay|
627 largest number of neighbors. The eviction strategy <bcp14>MUST</bcp14> be 626 largest number of neighbors. The eviction strategy <bcp14>MUST</bcp14> be
628 to drop the shortest-lived connections first. 627 to drop the shortest-lived connections first.
629 </t> 628 </t>
629 <t>
630 The implementation <bcp14>MAY</bcp14> cache valid HELLOs of disconnected
631 peers outside of the routing table and sporadically or periodically try to (re-)establish connection
632 to the peer by issuing <tt>TRY_CONNECT</tt> requests on the Underlay.
633 </t>
630 </section> 634 </section>
631 <section anchor="find_peer"> 635 <section anchor="find_peer">
632 <name>Peer Discovery</name> 636 <name>Peer Discovery</name>
@@ -1315,6 +1319,10 @@ BEGIN
1315 <li> 1319 <li>
1316 The HELLO information is cached in the routing table until it expires, 1320 The HELLO information is cached in the routing table until it expires,
1317 the peer is removed from the routing table, or the information is replaced by another message from the peer. 1321 the peer is removed from the routing table, or the information is replaced by another message from the peer.
1322 <!-- FIXME same problem as for HELLO blocks: We do not need to TRY_CONNECT here because we already have
1323 a connection, obviously. But we may want to TRY_CONNECT on the new addresses? Adding for now -->
1324 The implementation <bcp14>MAY</bcp14> instruct the Underlay to connect to all now available addresses
1325 using <tt>TRY_CONNECT</tt> in order to make the underlay aware of alternative addresses for this connection.
1318 </li> 1326 </li>
1319 <li> 1327 <li>
1320 <!-- We need a statement like this here. Should they? Can they? What if they are (not)? --> 1328 <!-- We need a statement like this here. Should they? Can they? What if they are (not)? -->
@@ -1545,6 +1553,15 @@ BEGIN
1545 the local peer <bcp14>MUST</bcp14> try to establish a connection 1553 the local peer <bcp14>MUST</bcp14> try to establish a connection
1546 to the peer indicated in the HELLO block using the address information 1554 to the peer indicated in the HELLO block using the address information
1547 from the HELLO block and the Underlay function <tt>TRY_CONNECT</tt>. 1555 from the HELLO block and the Underlay function <tt>TRY_CONNECT</tt>.
1556 <!-- FIXME: The above behaviour has a catch: If the implementation only connects to one
1557 address from the hello using TRY_CONNECT, the Underlay also knows only about that connection
1558 If that failes and PEER_DISCONNECT is called, this neighbor is dead.
1559 We could say here that the implementation SHOULD instruct to connect to ALL
1560 addresses or risk flaky connections. The choice of address is also unclear.
1561 R5N does not really know what the Underlay supports (maybe more than provided in
1562 own addresses) - Added this for now: -->
1563 The implementation <bcp14>MAY</bcp14> instruct the Underlay to connect to all provided addresses
1564 using <tt>TRY_CONNECT</tt> in order to make the underlay aware of multiple addresses for this connection.
1548 If a connection is established, the signal <tt>PEER_CONNECTED</tt> will cause 1565 If a connection is established, the signal <tt>PEER_CONNECTED</tt> will cause
1549 the peer to be added to the respective k-bucket of the routing table. 1566 the peer to be added to the respective k-bucket of the routing table.
1550 Note that the k-bucket <bcp14>MUST</bcp14> be determined by the 1567 Note that the k-bucket <bcp14>MUST</bcp14> be determined by the