gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0004] 02/02: Update use of existing pending table concept.


From: gnunet
Subject: [lsd0004] 02/02: Update use of existing pending table concept.
Date: Tue, 27 Dec 2022 14:26:14 +0100

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository lsd0004.

commit de76f481524227f6c81af0428d10b6b866085378
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Tue Dec 27 22:25:35 2022 +0900

    Update use of existing pending table concept.
---
 draft-schanzen-r5n.xml | 47 +++++++++++++++++++++++++++--------------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index 200f28d..54212c4 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -829,7 +829,7 @@ BEGIN
          the peer has encountered.  To ensure that the peer does
          not run out of memory, information about older requests
          is discarded.  The value of <tt>MAX_RECENT</tt> <bcp14>MAY</bcp14> be
-         configurable and <bcp14>SHOULD</bcp14> be at least 128k.
+         configurable and <bcp14>SHOULD</bcp14> be at least 128 * 
10<sup>3</sup>.
        </t>
        <t>
          For each entry in the pending table, the DHT <bcp14>MUST</bcp14> track
@@ -1703,8 +1703,8 @@ BEGIN
                 (1) If the local peer is the closest peer
                 (cf. <tt>IsClosestPeer (SELF, QueryHash, PeerFilter)</tt>, or 
(2)
                 if the <tt>DemultiplexEverywhere</tt> flag is set, or (3)
-                if the local peer is not the closest and the 
<tt>GetRequest</tt> was answered previously
-              resulting in a cached reply (<xref 
target="p2p_result_processing"/>). 
+                if the local peer is not the closest and a similar 
<tt>GetRequest</tt> was answered previously
+                with a cached result message this request also matches (<xref 
target="p2p_result_processing"/>). 
               </t>
               <t>
                 The reply is produced (if one is available) using the following
@@ -1747,6 +1747,13 @@ BEGIN
               the request to other peers.
               </t>
             </li>
+            <li>
+              <!-- FIXME: For how long? what exactly must be stored? -->
+              The implementation <tt>SHOULD</tt> create (or merge) an entry in 
the pending table
+              <xref target="pending_table"/> for the query represented by this 
<tt>GetMessage</tt>.
+              If the peer is unable to handle an additional entry in the 
table, the message
+              <bcp14>MUST</bcp14> be discarded and processing ends.
+            </li>
             <li>
               Using the value in <tt>REPL_LVL</tt>, the number of peers to 
forward to
               <bcp14>MUST</bcp14> be calculated using
@@ -1762,9 +1769,6 @@ BEGIN
               to, <tt>SEND(P, GetMessageP)</tt> is called.  Here, 
<tt>GetMessageP</tt>
              is the original message with the updated fields for 
<tt>HOPCOUNT</tt> (incremented
               by 1), <tt>PEER_BF</tt> and <tt>RESULT_FILTER</tt>.
-              <!-- FIXME: For how long? what exactly must be stored? -->
-              The implementation <tt>MUST</tt> cache the originator peer 
address and the
-              <tt>GetMessage</tt> in order to correctly process any 
<tt>ResultMessage</tt>s.
             </li>
           </ol>
         </section>
@@ -1971,13 +1975,14 @@ BEGIN
               The implementation <bcp14>MUST</bcp14> instruct the Underlay to 
connect to all provided addresses
               using <tt>TRY_CONNECT</tt> in order to make the underlay aware 
of multiple addresses for this connection.
               When a connection is established, the signal 
<tt>PEER_CONNECTED</tt> will cause
-              the peer to be added to the respective k-bucket of the routing 
table (<xref target="routing"/>).            </li>
+              the peer to be added to the respective k-bucket of the routing 
table (<xref target="routing"/>).
+            </li>
+            <li>
+              If the <tt>QUERY_HASH</tt> of this <tt>ResultMessage</tt> does 
not match an entry in the
+              pending table (<xref target="pending_table"/>), then the message 
is discarded and processing ends.
+              Otherwise, processing continues for each entry in the table as 
follows.
+            </li>
             <li>
-             <t>
-               If the <tt>QUERY_HASH</tt> of this <tt>ResultMessage</tt> is 
found in the
-               list of pending local or remote queries, then
-               for each matching pending query:
-              </t>
              <ol type="%c)">
                <li>
                  If the <tt>FindApproximate</tt> flag was not set in the query 
and the <tt>BTYPE</tt> allowed the
@@ -2011,15 +2016,17 @@ BEGIN
                   the <tt>GETPATH_L</tt> and <tt>PUTPATH_L</tt>
                  <bcp14>MUST</bcp14> be set to zero when forwarding the result.
                 </li>
+                <li>
+                 If the result filter result is either <tt>FILTER_MORE</tt> or 
<tt>FILTER_LAST</tt>,
+                 the message is forwarded to the origin of the query as 
defined in the entry
+                  which may either be the local peer or a remote peer.
+                  In case this is a query of the local peer the result may 
have to be provided to
+                  applications through the overlay API.
+                  Otherwise, the result is forwarded using <tt>SEND(P, 
ResultMessage')</tt> where
+                  <tt>ResultMessage'</tt> is the now modified message.
+                  If the result was <tt>FILTER_LAST</tt>, the query is removed 
from the pending table.
+               </li>
               </ol>
-             <t>
-               If the result is either <tt>FILTER_MORE</tt> or 
<tt>FILTER_LAST</tt>,
-               the message is forwarded to the origin of the query through
-                either the overlay API or using <tt>SEND(P, 
ResultMessage')</tt> where
-                <tt>ResultMessage'</tt> is the now modified message.
-                If the result was <tt>FILTER_LAST</tt>, the query is removed 
from the list of pending
-               queries.
-             </t>
             </li>
            <li>
              Finally, the implementation <bcp14>SHOULD</bcp14> cache

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]