summaryrefslogtreecommitdiff
path: root/draft-schanzen-r5n.xml
diff options
context:
space:
mode:
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r--draft-schanzen-r5n.xml60
1 files changed, 21 insertions, 39 deletions
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index c4eda07..14487b2 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -1214,23 +1214,10 @@ BEGIN
1214 <section anchor="p2p_hello" numbered="true" toc="default"> 1214 <section anchor="p2p_hello" numbered="true" toc="default">
1215 <name>HelloMessage</name> 1215 <name>HelloMessage</name>
1216 <t> 1216 <t>
1217 <!-- FIXME: While it is discussed here how to hangle HelloMessages
1218 nowhere in the draft is a HelloMessage created at the
1219 initiator so it is completely irrelevant atm -->
1220 When the Underlay notifies the implementation of added or removed 1217 When the Underlay notifies the implementation of added or removed
1221 addresses through <tt>ADDRESS_ADDED</tt> and <tt>ADDRESS_DELETED</tt> 1218 addresses through <tt>ADDRESS_ADDED</tt> and <tt>ADDRESS_DELETED</tt>
1222 it <bcp14>MAY</bcp14> disseminate those changes to neighbors using 1219 it <bcp14>MAY</bcp14> disseminate those changes to neighbors using
1223 <tt>HelloMessage</tt>s. 1220 <tt>HelloMessage</tt>s.
1224 <!-- FIXME yesyes this is blabla and obvious when reading the processing section.
1225 In contrast to a <tt>HELLO</tt> block, a
1226 <tt>HelloMessage</tt> does not contain the ID of
1227 the peer the address information is about: in a
1228 <tt>HelloMessage</tt>, the address information is always
1229 about the sender.
1230 Since the Underlay is responsible to determine the
1231 peer ID of the sender for all messages, it would thus be
1232 redundant to also include the peer ID in the
1233 <tt>HelloMessage</tt>.-->
1234 <!-- FIXME: Are hello messages should or must? 1221 <!-- FIXME: Are hello messages should or must?
1235 Only recommended not, if so, what if that is not done? 1222 Only recommended not, if so, what if that is not done?
1236 --> 1223 -->
@@ -1657,7 +1644,7 @@ BEGIN
1657 <dt>PEER_BF</dt> 1644 <dt>PEER_BF</dt>
1658 <dd> 1645 <dd>
1659 A peer Bloom filter to stop circular routes (see <xref target="routing_bloomfilter"/>). 1646 A peer Bloom filter to stop circular routes (see <xref target="routing_bloomfilter"/>).
1660 Set by the initiator to include itself. <!-- Is that so? --> 1647 Set by the initiator to include itself. <!-- FIXME Is that so? -->
1661 Modified by processing peers to include their own peer address. 1648 Modified by processing peers to include their own peer address.
1662 </dd> 1649 </dd>
1663 <dt>QUERY_HASH</dt> 1650 <dt>QUERY_HASH</dt>
@@ -1740,36 +1727,31 @@ BEGIN
1740 steps: 1727 steps:
1741 </t> 1728 </t>
1742 <ol type="%c)"> 1729 <ol type="%c)">
1743 <!-- FIXME: It is not clear that this is a fallthrough statement --> 1730 <!-- FIXME it seems to me as if some blocks need to be "synthesized", e.g.
1744 <!-- FIXME: Are <tt>HELLO</tt> blocks according to the spec stored in block storage but never looked for? --> 1731 HELLOs from HelloMessages... this needs to be specified.-->
1745 <li> 1732 <li>
1746 If <tt>BTYPE</tt> indicates a request for a <tt>HELLO</tt> block or 1733 If the <tt>BTYPE</tt> does not indicate a request for a <tt>HELLO</tt> block or
1747 <tt>ANY</tt>, 1734 <tt>ANY</tt>,
1748 the peer <bcp14>MUST</bcp14> consult its own <tt>HELLO</tt> as well as 1735 the implementation <bcp14>MUST</bcp14> only consider blocks in the local block storage.
1749 the HELLOs it has cached for the 1736 Otherwise, the implementation <bcp14>MUST</bcp14> only consider its own <tt>HELLO</tt> and
1750 peers in its routing table instead of the local block 1737 the <tt>HELLO</tt>s it has cached for the peers in its routing table as blocks.
1751 storage (while continuing to respect flags like
1752 <tt>DemultiplexEverywhere</tt>
1753 and <tt>FindApproximate</tt>).
1754 </li> 1738 </li>
1755 <li> 1739 <li>
1756 If <tt>FLAGS</tt> indicate a <tt>FindApproximate</tt> request, 1740 If <tt>FLAGS</tt> indicate a <tt>FindApproximate</tt> request,
1757 the peer <bcp14>SHOULD</bcp14> try to respond with the closest block it 1741 the peer <bcp14>SHOULD</bcp14> try to respond with the closest block (smallest value
1758 has that is not filtered by the 1742 of <tt>GetDistance(QUERY_HASH, BLOCK_KEY)</tt>) it
1759 <tt>RESULT_BF</tt>. 1743 can find that is not filtered by the <tt>RESULT_BF</tt>.
1760 </li> 1744 Otherwise, the peer <bcp14>MUST</bcp14> respond if it has a valid block
1761 <li> 1745 with a <tt>BLOCK_KEY</tt> that matches the <tt>QUERY_HASH</tt> exactly and that is
1762 Else, the peer <bcp14>MUST</bcp14> respond if it has a valid block
1763 that matches the key exactly and that is
1764 not filtered by the <tt>RESULT_BF</tt>. 1746 not filtered by the <tt>RESULT_BF</tt>.
1765 </li> 1747 </li>
1766 </ol> 1748 </ol>
1767 <t> 1749 <t>
1768 Any such resulting block <bcp14>MUST</bcp14> be encapsulated in a 1750 The resulting block, if any, <bcp14>MUST</bcp14> be encapsulated in a
1769 <tt>ResultMessage</tt> and <bcp14>SHOULD</bcp14> be transmitted to the 1751 <tt>ResultMessage</tt> and <bcp14>SHOULD</bcp14> be transmitted to the
1770 neighbor from which the request was received. Implementations 1752 neighbor from which the request was received.
1771 <bcp14>MAY</bcp14> drop messages if they are resource-constrained. 1753 Implementations <bcp14>MAY</bcp14> drop messages if they are resource-constrained.
1772 However, <tt>ResultMessage</tt>s <bcp14>SHOULD</bcp14> be given the 1754 However, <tt>ResultMessage</tt>s <bcp14>MUST</bcp14> be given the
1773 highest priority among competing transmissions. 1755 highest priority among competing transmissions.
1774 </t> 1756 </t>
1775 <t> 1757 <t>
@@ -1780,7 +1762,7 @@ BEGIN
1780 </t> 1762 </t>
1781 </li> 1763 </li>
1782 <li> 1764 <li>
1783 Given the value in <tt>REPL_LVL</tt>, the number of peers to forward to 1765 Using the value in <tt>REPL_LVL</tt>, the number of peers to forward to
1784 <bcp14>MUST</bcp14> be calculated using 1766 <bcp14>MUST</bcp14> be calculated using
1785 <tt>ComputeOutDegree()</tt>. 1767 <tt>ComputeOutDegree()</tt>.
1786 If there is at least one 1768 If there is at least one
@@ -1789,9 +1771,9 @@ BEGIN
1789 forward to fewer or no peers in order to handle resource constraints 1771 forward to fewer or no peers in order to handle resource constraints
1790 such as bandwidth. 1772 such as bandwidth.
1791 The peer Bloom filter <tt>PEER_BF</tt> <bcp14>MUST</bcp14> be updated with the local 1773 The peer Bloom filter <tt>PEER_BF</tt> <bcp14>MUST</bcp14> be updated with the local
1792 peer address <tt>SELF</tt>. 1774 peer address <tt>SELF</tt> for any forwarded message.
1793 For all peers with peer address <tt>P'</tt> chosen to forward the message 1775 For all peers with peer address <tt>P</tt> chosen to forward the message
1794 to, <tt>SEND(P', GetMessage')</tt> is called. Here, <tt>GetMessage'</tt> 1776 to, <tt>SEND(P, GetMessageP)</tt> is called. Here, <tt>GetMessageP</tt>
1795 is the original message with the updated fields for <tt>HOPCOUNT</tt> (incremented 1777 is the original message with the updated fields for <tt>HOPCOUNT</tt> (incremented
1796 by 1), <tt>PEER_BF</tt> and <tt>RESULT_FILTER</tt>. 1778 by 1), <tt>PEER_BF</tt> and <tt>RESULT_FILTER</tt>.
1797 </li> 1779 </li>
@@ -2448,7 +2430,7 @@ BEGIN
2448 of decreasing proximity. 2430 of decreasing proximity.
2449 </dd> 2431 </dd>
2450 </dl> 2432 </dl>
2451 <section> 2433 <section anchor="approx_search">
2452 <name>Approximate Search Considerations</name> 2434 <name>Approximate Search Considerations</name>
2453 <t> 2435 <t>
2454 Over time a peer may accumulate a significant number of blocks 2436 Over time a peer may accumulate a significant number of blocks