diff options
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r-- | draft-schanzen-r5n.xml | 71 |
1 files changed, 46 insertions, 25 deletions
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml index 3924e41..489d2bb 100644 --- a/draft-schanzen-r5n.xml +++ b/draft-schanzen-r5n.xml | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent" [ | 2 | <!DOCTYPE rfc [ |
3 | <!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> | 3 | <!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> |
4 | <!ENTITY RFC2782 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2782.xml"> | 4 | <!ENTITY RFC2782 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2782.xml"> |
5 | <!ENTITY RFC3629 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml"> | 5 | <!ENTITY RFC3629 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml"> |
@@ -1507,19 +1507,18 @@ BEGIN | |||
1507 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1507 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1508 | | MSIZE | MTYPE | BTYPE | | 1508 | | MSIZE | MTYPE | BTYPE | |
1509 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1509 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1510 | | FLAGS | HOPCOUNT | REPL_LVL | XQ_SIZE | | 1510 | | FLAGS | HOPCOUNT | REPL_LVL | RF_SIZE | |
1511 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1511 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1512 | | PEER_BF / | 1512 | | PEER_BF / |
1513 | / (128 byte) | | 1513 | / (128 byte) | |
1514 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1514 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1515 | | QUERY_HASH / | 1515 | | QUERY_HASH / |
1516 | / (64 byte) | | 1516 | / (64 byte) | |
1517 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1517 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1518 | / BF_MUTATOR | XQUERY / | 1518 | | RESULT_FILTER / |
1519 | +-----+-----+-----+-----+ / | ||
1520 | / (variable length) / | 1519 | / (variable length) / |
1521 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1520 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1522 | / BF_RESULT (variable length) / | 1521 | / XQUERY (variable length) / |
1523 | +-----+-----+-----+-----+-----+-----+-----+-----+ | 1522 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
1524 | ]]></artwork> | 1523 | ]]></artwork> |
1525 | </figure> | 1524 | </figure> |
@@ -1553,10 +1552,10 @@ BEGIN | |||
1553 | is a 16-bit number indicating the desired replication level of | 1552 | is a 16-bit number indicating the desired replication level of |
1554 | the data. In network byte order. | 1553 | the data. In network byte order. |
1555 | </dd> | 1554 | </dd> |
1556 | <dt>XQ_SIZE</dt> | 1555 | <dt>RF_SIZE</dt> |
1557 | <dd> | 1556 | <dd> |
1558 | is a 16-bit number indicating the length of the optional | 1557 | is a 16-bit number indicating the length of the |
1559 | extended query XQUERY. In network byte order. | 1558 | result filter RESULT_FILTER. In network byte order. |
1560 | </dd> | 1559 | </dd> |
1561 | <dt>PEER_BF</dt> | 1560 | <dt>PEER_BF</dt> |
1562 | <dd> | 1561 | <dd> |
@@ -1569,6 +1568,10 @@ BEGIN | |||
1569 | The block type may use a different evaluation logic to determine | 1568 | The block type may use a different evaluation logic to determine |
1570 | applicable result blocks. | 1569 | applicable result blocks. |
1571 | </dd> | 1570 | </dd> |
1571 | <dt>RESULT_FILTER</dt> | ||
1572 | <dd> | ||
1573 | the variable-length result filter, described in <xref target="result_filter"/>. | ||
1574 | </dd> | ||
1572 | <dt>XQUERY</dt> | 1575 | <dt>XQUERY</dt> |
1573 | <dd> | 1576 | <dd> |
1574 | the variable-length extended query. Optional. | 1577 | the variable-length extended query. Optional. |
@@ -1577,10 +1580,6 @@ BEGIN | |||
1577 | <dd> | 1580 | <dd> |
1578 | The 32-bit mutator for the result filter. | 1581 | The 32-bit mutator for the result filter. |
1579 | </dd> | 1582 | </dd> |
1580 | <dt>RESULT_FILTER</dt> | ||
1581 | <dd> | ||
1582 | the variable-length result filter, described in <xref target="result_filter"/>. | ||
1583 | </dd> | ||
1584 | </dl> | 1583 | </dl> |
1585 | </section> | 1584 | </section> |
1586 | <section anchor="result_filter"> | 1585 | <section anchor="result_filter"> |
@@ -2176,18 +2175,40 @@ gnunet+tcp://12.3.4.5/ \ | |||
2176 | against the public key from the peer ID field. | 2175 | against the public key from the peer ID field. |
2177 | </t> | 2176 | </t> |
2178 | <t> | 2177 | <t> |
2179 | The result filter for HELLO blocks is implemented using a | 2178 | The RESULT_FILTER for HELLO blocks is implemented using a |
2180 | Bloom filter. The <tt>K</tt>-value for the Bloom filter | 2179 | Bloom filter. |
2181 | is always 16. The size <tt>S</tt> of the Bloom filter in bytes depends on | 2180 | </t> |
2182 | the number of elements <tt>F</tt> known to be filtered at the | 2181 | <figure anchor="hello_rf" title="The HELLO Block Result Filter."> |
2183 | initiator. If <tt>F</tt> is zero, the size <tt>S</tt> is just 8 (bytes). | 2182 | <artwork name="" type="" align="left" alt=""><![CDATA[ |
2184 | Otherwise, <tt>S</tt> is set to the minimum of | 2183 | 0 8 16 24 32 40 48 56 |
2185 | 2<sup>15</sup> and the lowest power | 2184 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
2186 | of 2 that is strictly larger than <tt>K*F/4</tt> | 2185 | | MUTATOR | HELLO_BF / |
2187 | (in bytes). The wire format of a HELLO block Bloom filter | 2186 | +-----+-----+-----+-----+ (variable length) / |
2188 | is just the resulting byte array. In particular, <tt>K</tt> | 2187 | / / |
2189 | is not transmitted. | 2188 | +-----+-----+-----+-----+-----+-----+-----+-----+ |
2190 | </t> | 2189 | ]]></artwork> |
2190 | </figure> | ||
2191 | |||
2192 | <t>where:</t> | ||
2193 | <dl> | ||
2194 | <dt>MUTATOR</dt> | ||
2195 | <dd> | ||
2196 | The 32-bit mutator for the result filter. | ||
2197 | </dd> | ||
2198 | <dt>HELLO_BF</dt> | ||
2199 | <dd> | ||
2200 | The <tt>K</tt>-value for the HELLO_BF Bloom filter | ||
2201 | is always 16. The size <tt>S</tt> of the Bloom filter in bytes depends on | ||
2202 | the number of elements <tt>F</tt> known to be filtered at the | ||
2203 | initiator. If <tt>F</tt> is zero, the size <tt>S</tt> is just 8 (bytes). | ||
2204 | Otherwise, <tt>S</tt> is set to the minimum of | ||
2205 | 2<sup>15</sup> and the lowest power | ||
2206 | of 2 that is strictly larger than <tt>K*F/4</tt> | ||
2207 | (in bytes). The wire format of HELLO_BF is the resulting byte | ||
2208 | array. In particular, <tt>K</tt> is never transmitted. | ||
2209 | </dd> | ||
2210 | </dl> | ||
2211 | |||
2191 | <t> | 2212 | <t> |
2192 | To filter results of HELLO blocks using the Bloom filter, the | 2213 | To filter results of HELLO blocks using the Bloom filter, the |
2193 | <tt>H_ADDRS</tt> field (as computed using SHA-512 over | 2214 | <tt>H_ADDRS</tt> field (as computed using SHA-512 over |