diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2022-12-26 15:37:48 +0900 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2022-12-26 15:37:48 +0900 |
commit | bb023bdbb21eed4a1002c26fd7b9b15d30fa63e3 (patch) | |
tree | 12c83e66b11efb41def278f72754d37caea82280 | |
parent | 8c8f802fe43690e284655429dfe50161973f7441 (diff) | |
download | lsd0004-bb023bdbb21eed4a1002c26fd7b9b15d30fa63e3.tar.gz lsd0004-bb023bdbb21eed4a1002c26fd7b9b15d30fa63e3.zip |
Cleanup some fixmes. Identified further unclarities.
-rw-r--r-- | draft-schanzen-r5n.xml | 60 |
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 |