From 5a80a925265c407f0764ca29d3483283054466dd Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 29 Jun 2016 16:22:35 +0000 Subject: [PATCH] SSU: IPv6 Peer Testing updates --- i2p2www/pages/site/docs/transport/ssu.html | 11 +++++++--- .../spec/proposals/126-ipv6-peer-testing.rst | 21 ++++++++++++++++--- i2p2www/spec/ssu.rst | 9 ++++++-- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/i2p2www/pages/site/docs/transport/ssu.html b/i2p2www/pages/site/docs/transport/ssu.html index 4b5688dab..b07b7fc17 100644 --- a/i2p2www/pages/site/docs/transport/ssu.html +++ b/i2p2www/pages/site/docs/transport/ssu.html @@ -1,7 +1,7 @@ {% extends "global/layout.html" %} {% block title %}{% trans %}Secure Semireliable UDP{% endtrans %} (SSU){% endblock %} -{% block lastupdated %}{% trans %}May 2016{% endtrans %}{% endblock %} -{% block accuratefor %}0.9.26{% endblock %} +{% block lastupdated %}{% trans %}June 2016{% endtrans %}{% endblock %} +{% block accuratefor %}0.9.27{% endblock %} {% block content %} <p>{% trans transports=site_url('docs/transport'), ntcp=site_url('docs/transport/ntcp') -%} @@ -489,8 +489,8 @@ any additional information. Alice may go on to establish a session with either Bob or Charlie, but it is not required. {%- endtrans %}</p> +<h3>IPv6 Notes</h3> <p> -IPv6 Notes: Through release 0.9.26, only testing of IPv4 addresses is supported. Only testing of IPv4 addresses is supported. Therefore, all Alice-Bob and Alice-Charlie communication must be via IPv4. @@ -499,6 +499,11 @@ Alice's address, when specified in the PeerTest message, must be 4 bytes. As of release 0.9.27, testing of IPv6 addresses is supported, and Alice-Bob and Alice-Charlie communication may be via IPv6. See <a href="/spec/proposals/126-ipv6-peer-testing">Proposal 126</a> for details. +</p><p> +Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test. +When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address. +When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address. +The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type). </p> diff --git a/i2p2www/spec/proposals/126-ipv6-peer-testing.rst b/i2p2www/spec/proposals/126-ipv6-peer-testing.rst index b30b9652b..ba173ab2c 100644 --- a/i2p2www/spec/proposals/126-ipv6-peer-testing.rst +++ b/i2p2www/spec/proposals/126-ipv6-peer-testing.rst @@ -5,7 +5,7 @@ IPv6 Peer Testing :author: zzz :created: 2016-05-02 :thread: http://zzz.i2p/topics/2119 - :lastupdated: 2016-05-02 + :lastupdated: 2016-06-29 :status: Open .. contents:: @@ -40,10 +40,25 @@ and then you won't get any more (after the RI expires in everybody's netdb). Design ====== -Implement Peer Testing for IPv6. +Implement Peer Testing for IPv6, +by removing previous restrictions that peer testing was only allowed for IPv4. +The peer test message already has a field for IP length. Specification ============= -TBD, but basically, allow IPv6 addresses and connections in the Peer Testing protocol. +In the Peer Testing sections of the SSU overview and SSU specification, make the following changes: + +IPv6 Notes: +Through release 0.9.26, only testing of IPv4 addresses is supported. +Only testing of IPv4 addresses is supported. +Therefore, all Alice-Bob and Alice-Charlie communication must be via IPv4. +Bob-Charlie communication, however, may be via IPv4 or IPv6. +Alice's address, when specified in the PeerTest message, must be 4 bytes. +As of release 0.9.27, testing of IPv6 addresses is supported, and Alice-Bob and Alice-Charlie communication may be via IPv6. + +Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test. +When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address. +When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address. +The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type). diff --git a/i2p2www/spec/ssu.rst b/i2p2www/spec/ssu.rst index 4123497b5..ee929fd9b 100644 --- a/i2p2www/spec/ssu.rst +++ b/i2p2www/spec/ssu.rst @@ -3,8 +3,8 @@ SSU Protocol Specification ========================== .. meta:: :category: Transports - :lastupdated: May 2016 - :accuratefor: 0.9.26 + :lastupdated: June 2016 + :accuratefor: 0.9.27 .. contents:: @@ -1074,6 +1074,11 @@ Notes and Alice-Bob and Alice-Charlie communication may be via IPv6. See Proposal 126 for details. + Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test. + When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address. + When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address. + The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type). + * A peer must maintain a table of active test states (nonces). On reception of a PeerTest message, look up the nonce in the table. If found, it's an existing test and you know your role (Alice, Bob, or Charlie). Otherwise, if -- GitLab