diff options
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r-- | draft-schanzen-r5n.xml | 27 |
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 |